Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Ovo uputstvo nastalo je u skladu sa zahtjevima projekta Makecourse na Univerzitetu Južne Floride (www.makecourse.com)
Cilj ovog projekta bio je izgraditi troosni Gimbal za GoPro upotrebom Arduino nano + 3 servo motora + žiroskop/akcelerometar MPU6050. U ovom projektu kontrolirao sam 2-osi (Roll and yaw) pomoću žiroskopa/akcelerometra MPU6050, trećom osi (yaw) upravlja se daljinski i ručno uz pomoć HC-05 i Arduino BlueControl aplikacije koja se nalazi u Android App Store-u.
Ovaj rad također uključuje sve datoteke 3D dizajna mehaničkih komponenti Gimbala. Podelio sam.stl datoteke za jednostavno 3D štampanje i datoteke za 3D dizajn na dnu.
Na početku mog projekta, moj plan je bio izgraditi troosni gimbal sa 3 motora bez četkica, jer su motori bez četkica glatki i osjetljiviji u usporedbi sa servo motorima. Motori bez četkica koriste se u aplikacijama velike brzine, tako da možemo prilagoditi brzinu motora kupujući ESC (kontroler). Ali da bih mogao koristiti motor bez četkica u projektu Gimbal, shvatio sam da moram voziti motor bez četkica kao servo. U servo motorima položaj motora je poznat. Ali u motoru bez četkica ne znamo položaj motora, pa je to nedostatak motora bez četkica za koji nisam mogao shvatiti kako ga voziti. Na kraju sam odlučio koristiti 3 servo motora MG995 za Gimbal projekt potreban za veliki okretni moment. Kontrolirao sam 2 servo motora za osovinu valjanja i nagiba pomoću žiroskopa MPU6050, a servo motor osi zakretanja upravljao sam pomoću HC-05 bluetooth i Android aplikacije.
Korak 1: Komponente
Komponente koje sam koristio u ovom projektu;
1- Arduino Nano (1 jedinica) (mikro usb)
2- MG995 Servo motori (3 jedinice)
3- GY-521 MPU6050 troosni akcelerometar/žiroskop (1 jedinica)
4- Bluetooth modul HC-05 (Za daljinsko upravljanje osi zakretanja (Servo3))
Prijenosni punjač 4- 5V micro usb
Korak 2: Implementacija 3 servo motora + MPU6050 žiroskopa + HC-05
Servo ožičenje
Servo1 (Roll), Servo2 (Pitch), Servo3 (Yaw)
Servo motori imaju 3 žice: VCC (crvena), GND (smeđa ili crna), PWM (žuta).
D3 => Servo1 PWM (žuta žica)
D4 => Servo2 PWM (žuta žica)
D5 => Servo3 PWM (žuta žica)
5V PIN za Arduino => VCC (crveni) od 3 servo motora.
GND PIN za Arduino => GND (smeđi ili crni) od 3 servo motora
Ožičenje žiroskopa MPU6050
A4 => SDA
A5 => SCL
3.3 V PIN za Arduino => VCC za MPU6050
GND PIN za Arduino => GND za MPU6050
HC-05 Bluetooth ožičenje
D9 => TX
D10 => RX
3.3 V PIN za Arduino => VCC za HC-05 Bluetooth
GND PIN za Arduino => GND za HC-05 Bluetooth
Korak 3: 3D dizajn i funkcionalnost
Završio sam 3D dizajn Gimbala uzimajući u obzir ostale Gimbale koji se prodaju na tržištu. Tri su glavne komponente koje se okreću sa servo motorima. Dizajnirao sam GoPro nosač koji odgovara njegovoj veličini.
Datoteka.step svih 3D dizajna dijeli se na dnu radi lakšeg uređivanja.
Korak 4: Mehanizam upravljanja
Glavni algoritam mog projekta Gimbal koristi kvaternionsku rotaciju koja je alternativa Eulerovim kutovima. Koristio sam biblioteku helper_3dmath.h kao referencu kako bih omogućio glatko kretanje koristeći Quaternion algoritam. Iako je odziv na pomak osi gladak, os kotrljanja zaostaje kako bi odgovorila na kretanje štapa. Korištenjem Quaternion algoritma uspio sam kontrolirati Roll i Pitch servo motore. Ako želite koristiti os zakretanja, možda ćete morati upotrijebiti drugi MPU6050 samo za kontrolu osi zakretanja. Kao alternativno rješenje, konfigurirao sam HC-05 i daljinski upravljao osi zakretanja pomoću android aplikacije pomoću gumba. Svakim pritiskom na dugme servo servo ose se okreće za 10 stepeni.
U ovom projektu biblioteke koje sam morao vanjski uvoziti su sljedeće;
1- I2Cdev.h // Koristi se sa wire.h za omogućavanje komunikacije s MPU6050
2- "MPU6050_6Axis_MotionApps20.h" // Biblioteka žiroskopa
3- // Omogućava pretvaranje digitalnih pinova u RX i TX pinove (potrebno je za HC-05 bluetooth modul)
4-
5- // Omogućuje komunikaciju s I2C uređajima koji koriste dva podatkovna pina (SDA i SCL) => MPU6050
Glavni kôd kreira Jeff Rowberg, a ja sam ga izmijenio u skladu sa svojim projektnim funkcionalnostima i komentirao sve funkcije u ino datoteci.