Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä ohje on luotu täyttämään Etelä -Floridan yliopiston Makecourse -projektin vaatimus (www.makecourse.com)
Tämän projektin tavoitteena oli rakentaa 3-akselinen Gimbal GoProlle käyttämällä Arduino nano + 3 servomoottoria + MPU6050 gyro/kiihtyvyysmittari. Tässä projektissa hallitsin 2-akselista (rullausta ja kääntymistä) käyttämällä MPU6050 gyro-/kiihtyvyysmittaria, kolmatta akselia (yaw) ohjataan etänä ja manuaalisesti HC-05: n ja Arduino BlueControl -sovelluksen avulla, joka on Android App Storessa.
Tämä työ sisältää myös kaikki Gimbalin mekaanisten komponenttien 3D -suunnittelutiedostot. Jaoin.stl -tiedostot helposti 3D -tulostusta varten ja 3D -suunnittelutiedostot alareunassa.
Projektin alussa suunnitelmani oli rakentaa 3-akselinen kardaani kolmella harjattomalla moottorilla, koska harjattomat moottorit ovat sileitä ja reagoivampia verrattuna servomoottoreihin. Harjatonta moottoria käytetään nopeissa sovelluksissa, joten voimme säätää moottorin oston nopeutta ESC (ohjain). Mutta voidakseni käyttää harjatonta moottoria Gimbal -projektissa, tajusin, että minun on ajettava harjatonta moottoria servon tavoin. Servomoottoreissa moottorin sijainti tiedetään. Mutta harjattomassa moottorissa emme tiedä moottorin sijaintia, joten se on harjaton moottorin haittapuoli, jota en voinut selvittää, kuinka sitä ajaa. Lopulta päätin käyttää 3 MG995 -servomoottoria suuren vääntömomentin vaatimaan Gimbal -projektiin. Ohjasin kahta servomoottoria rulla- ja piki-akselille käyttämällä MPU6050-gyroskooppia ja ohjain kääntöakselin servomoottoria käyttämällä HC-05 bluetoothia ja Android-sovellusta.
Vaihe 1: Komponentit
Komponentit, joita käytin tässä projektissa;
1- Arduino Nano (1 yksikkö) (Micro usb)
2- MG995 Servomoottorit (3 kpl)
3- GY-521 MPU6050 3-akselinen kiihtyvyysanturi/gyroskooppi (1 yksikkö)
4- HC-05 Bluetooth-moduuli (Ohjauksen (Servo3) akselin etäohjaukseen)
4- 5 V: n kannettava micro usb -laturi
Vaihe 2: Ota käyttöön 3 servomoottoria + MPU6050 Gyro + HC-05
Servo -johdotus
Servo1 (rulla), servo2 (nousu), servo3 (kääntyminen)
Servomoottoreissa on 3 johtoa: VCC (punainen), GND (ruskea tai musta), PWM (keltainen).
D3 => Servo1 PWM (keltainen lanka)
D4 => Servo2 PWM (keltainen lanka)
D5 => Servo3 PWM (keltainen lanka)
Arduinon 5V PIN => 3 servomoottorin VCC (punainen).
Arduinon GND -PIN => 3 servomoottorin GND (ruskea tai musta)
MPU6050 gyro -johdotus
A4 => SDA
A5 => SCL
3.3 Arduinon PIN -koodi => MPU6050: n VCC
Arduinon GND -PIN => MPN6050: n GND
HC-05 Bluetooth-johdotus
D9 => Lähetys
D10 => RX
3.3 V Arduinon PIN-koodi => HC-05 Bluetoothin VCC
Arduinon GND-PIN => HC-05 Bluetoothin GND
Vaihe 3: 3D -suunnittelu ja toiminnallisuus
Valmistin Gimbalin 3D -suunnittelun ottamalla huomioon muut markkinoilla olevat Gimbals -tuotteet. Servomoottoreiden kanssa pyörii kolme pääkomponenttia. Suunnittelin GoPro -telineen, joka sopii sen kokoon.
Kaiken 3D -suunnittelun.step -tiedosto jaetaan alareunassa, jotta muokkaaminen olisi helpompaa.
Vaihe 4: Ohjausmekanismi
Gimbal -projektini pääalgoritmi käyttää Quaternion -kiertoa, joka on vaihtoehto Euler -kulmille. Käytin helper_3dmath.h -kirjastoa viitteenä mahdollistamaan sujuvan liikkeen Quaternion -algoritmin avulla. Vaikka Pitch -akselin vaste on tasainen, rullan akselin viive vastaa tikun liikettä. Quaternion -algoritmin avulla pystyin ohjaamaan Roll- ja Pitch -servomoottoreita. Jos haluat käyttää kääntöakselia, sinun on ehkä käytettävä toista MPU6050 -laitetta vain kääntöakselin ohjaamiseen. Vaihtoehtoisena ratkaisuna määritin HC-05: n ja ohjain kääntöakselia etänä Android-sovelluksella painikkeilla. Kussakin painikkeen painalluksessa kääntöakselin servo pyörii 10 astetta.
Tässä projektissa kirjastot, jotka minun piti tuoda ulkoisesti, ovat seuraavat;
1- I2Cdev.h // Käytetään wire.h: n kanssa kommunikaation mahdollistamiseksi MPU6050: n kanssa
2- "MPU6050_6Axis_MotionApps20.h" // Gyroskooppikirjasto
3- // Sen avulla voidaan muuntaa digitaaliset nastat RX- ja TX-nastoiksi (tarvitaan HC-05-Bluetooth-moduuli)
4-
5- // Sen avulla voidaan kommunikoida I2C-laitteiden kanssa, jotka käyttävät kahta datanasta (SDA ja SCL) => MPU6050
Pääkoodin on luonut Jeff Rowberg, ja muutin sitä projektini toiminnallisuuden mukaan ja kommentoin kaikkia toimintoja ino -tiedostoon.