INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hierdie instruksies is geskep ter voldoening aan die projekvereiste van die Makecourse aan die Universiteit van Suid -Florida (www.makecourse.com)
Die doel van hierdie projek was om 'n 3-as Gimbal vir GoPro te bou deur Arduino nano + 3 servomotore + MPU6050 gyro/versnellingsmeter te gebruik. In hierdie projek beheer ek 2-as (rol en gaas) met behulp van MPU6050 gyro/versnellingsmeter, die derde as (yaw) word op afstand en handmatig beheer met behulp van HC-05 en Arduino BlueControl-app, wat in die Android App Store is.
Hierdie werk bevat ook al die 3D -ontwerplêers van die meganiese komponente van Gimbal. Ek het.stl -lêers gedeel vir maklik 3D -drukwerk en 3D -ontwerplêers onderaan.
Aan die begin van my projek was my plan om 'n 3-as gimbal met 3 borsellose motors te bou, want borsellose motors is glad en reageer meer op servomotore. Borsellose motors word in hoëspoedtoepassings gebruik, sodat ons die snelheid van die motor -aankoop van ESC (kontroleerder) kan aanpas. Maar om 'n borsellose motor in die Gimbal -projek te kon gebruik, het ek besef dat ek 'n borsellose motor soos 'n servo moet bestuur. By servomotore is die posisie van die motor bekend. Maar in 'n borsellose motor weet ons nie die posisie van die motor nie, so dit is 'n nadeel van die borsellose motor, wat ek nie kon uitvind hoe om dit te bestuur nie. Aan die einde besluit ek om 3 MG995 servomotore te gebruik vir die Gimbal -projek met 'n hoë wringkrag. Ek het 2 servomotors beheer vir rol- en steekas met behulp van MPU6050-gyro, en ek het die servomotor van die yas-as beheer met behulp van HC-05 bluetooth en Android-app.
Stap 1: Komponente
Die komponente wat ek in hierdie projek gebruik het;
1- Arduino Nano (1 eenheid) (mikro-usb)
2- MG995 Servomotors (3 eenhede)
3- GY-521 MPU6050 3-as versnellingsmeter/gyroscoop (1 eenheid)
4- HC-05 Bluetooth-module (om die yaw (Servo3) as op afstand te beheer)
4- 5V draagbare mikro usb-laaier
Stap 2: Implementering van 3 servomotore + MPU6050 Gyro + HC-05
Servo bedrading
Servo1 (rol), Servo2 (toonhoogte), Servo3 (yaw)
Servomotore het drie drade: VCC (rooi), GND (bruin of swart), PWM (geel).
D3 => Servo1 PWM (geel draad)
D4 => Servo2 PWM (geel draad)
D5 => Servo3 PWM (geel draad)
5V PIN van Arduino => VCC (rooi) van 3 servomotors.
GND PIN van Arduino => GND (bruin of swart) van 3 servomotors
MPU6050 gyro bedrading
A4 => SDA
A5 => SCL
3.3 V PIN van Arduino => VCC van MPU6050
GND PIN van Arduino => GND van MPU6050
HC-05 Bluetooth bedrading
D9 => TX
D10 => RX
3.3 V PIN van Arduino => VCC van HC-05 Bluetooth
GND PIN van Arduino => GND van HC-05 Bluetooth
Stap 3: 3D -ontwerp en funksionaliteit
Ek het die 3D -ontwerp van Gimbal voltooi deur te verwys na ander Gimbals wat op die mark verkoop word. Daar is drie hoofkomponente wat met servomotors draai. Ek het 'n GoPro -houer ontwerp wat by sy grootte pas.
Die.step -lêer van alle 3D -ontwerp word onderaan gedeel om makliker te redigeer.
Stap 4: Beheermeganisme
Die hoofalgoritme van my Gimbal -projek gebruik Quaternion -rotasie, wat alternatief is vir Euler -hoeke. Ek het die helper_3dmath.h -biblioteek as verwysing gebruik om gladde beweging moontlik te maak deur die Quaternion -algoritme te gebruik. Alhoewel Pitch -as se reaksie glad is, vertraag die rolas om die beweging van die stok te reageer. Deur die Quaternion -algoritme te gebruik, kon ek Roll- en Pitch -servomotore beheer. As u die gaasas wil gebruik, moet u moontlik die tweede MPU6050 gebruik net om die as te beheer. As 'n alternatiewe oplossing, het ek die HC-05 en die yaw-as op afstand beheer met die Android-app met behulp van knoppies. In elke druk om die knoppie te druk, draai die servo van die as 10 grade.
In hierdie projek is die biblioteke wat ek ekstern moes invoer, soos volg;
1- I2Cdev.h // Gebruik met wire.h om kommunikasie met MPU6050 moontlik te maak
2- "MPU6050_6Axis_MotionApps20.h" // Gyroscope-biblioteek
3- // Dit maak dit moontlik om digitale penne om te skakel in RX- en TX-penne (dit is nodig vir 'n HC-05 Bluetooth-module)
4-
5- // Dit maak dit moontlik om te kommunikeer met I2C-toestelle wat twee datapennetjies gebruik (SDA en SCL) => MPU6050
Die hoofkode word deur Jeff Rowberg geskep, en ek het dit aangepas volgens my projekfunksionaliteit en kommentaar gelewer op alle funksies in die ino -lêer.