Innholdsfortegnelse:

Roll and Pitch Axis Gimbal for GoPro Using Arduino - Servo and MPU6050 Gyro: 4 Steps
Roll and Pitch Axis Gimbal for GoPro Using Arduino - Servo and MPU6050 Gyro: 4 Steps

Video: Roll and Pitch Axis Gimbal for GoPro Using Arduino - Servo and MPU6050 Gyro: 4 Steps

Video: Roll and Pitch Axis Gimbal for GoPro Using Arduino - Servo and MPU6050 Gyro: 4 Steps
Video: DIY Gimbal | Arduino and MPU6050 Tutorial 2024, November
Anonim
Roll and Pitch Axis Gimbal for GoPro Using Arduino - Servo and MPU6050 Gyro
Roll and Pitch Axis Gimbal for GoPro Using Arduino - Servo and MPU6050 Gyro

Denne instruksen ble opprettet for å oppfylle prosjektkravet til Makecourse ved University of South Florida (www.makecourse.com)

Målet med dette prosjektet var å bygge en 3-akset Gimbal for GoPro ved å bruke Arduino nano + 3 servomotorer + MPU6050 gyro/akselerometer. I dette prosjektet kontrollerte jeg 2-aksen (Roll and yaw) ved å bruke MPU6050 gyro/akselerometer, den tredje aksen (yaw) styres eksternt og manuelt ved hjelp av HC-05 og Arduino BlueControl-appen som er i Android App Store.

Dette arbeidet inkluderer også alle 3D -designfilene til mekaniske komponenter i Gimbal. Jeg delte.stl -filer for enkelt 3D -utskrift og 3D -designfiler nederst.

I begynnelsen av prosjektet var planen min å bygge 3-akset gimbal med 3 børsteløse motorer, fordi børsteløse motorer er jevne og mer responsive sammenlignet med servomotorer. Børsteløse motorer brukes i høyhastighetsapplikasjoner, slik at vi kan justere hastigheten på motorkjøp av ESC (kontroller). Men for å kunne bruke børsteløs motor i Gimbal -prosjektet innså jeg at jeg må kjøre børsteløs motor som en servo. I servomotorer er motorens posisjon kjent. Men i børsteløs motor vet vi ikke posisjonen til motoren, så det er en ulempe med børsteløs motor som jeg ikke kunne finne ut hvordan jeg skulle kjøre den. På slutten bestemte jeg meg for å bruke 3 MG995 servomotorer for Gimbal -prosjektet med høyt dreiemoment. Jeg kontrollerte 2 servomotorer for rull- og pitch-aksen ved å bruke MPU6050 gyro, og jeg kontrollerte servomotoren med yaw-aksen ved å bruke HC-05 bluetooth og Android-app.

Trinn 1: Komponenter

Komponenter
Komponenter
Komponenter
Komponenter
Komponenter
Komponenter
Komponenter
Komponenter

Komponentene som jeg brukte i dette prosjektet;

1- Arduino Nano (1 enhet) (Micro usb)

2- MG995 Servomotorer (3 enheter)

3- GY-521 MPU6050 3-akset akselerometer/gyroskop (1 enhet)

4- HC-05 Bluetooth-modul (For å kontrollere yaw (Servo3) akse eksternt)

4- 5V bærbar mikro usb lader

Trinn 2: Implementering av 3 servomotorer + MPU6050 Gyro + HC-05

Implementering av 3 servomotorer + MPU6050 Gyro + HC-05
Implementering av 3 servomotorer + MPU6050 Gyro + HC-05
Implementering av 3 servomotorer + MPU6050 Gyro + HC-05
Implementering av 3 servomotorer + MPU6050 Gyro + HC-05

Servo ledninger

Servo1 (Roll), Servo2 (Pitch), Servo3 (Yaw)

Servomotorer har 3 ledninger: VCC (rød), GND (brun eller svart), PWM (gul).

D3 => Servo1 PWM (gul ledning)

D4 => Servo2 PWM (gul ledning)

D5 => Servo3 PWM (gul ledning)

5V PIN for Arduino => VCC (rød) for 3 servomotorer.

GND PIN for Arduino => GND (brun eller svart) for 3 servomotorer

MPU6050 gyro ledninger

A4 => SDA

A5 => SCL

3.3 V PIN for Arduino => VCC for MPU6050

GND PIN for Arduino => GND for MPU6050

HC-05 Bluetooth-ledninger

D9 => TX

D10 => RX

3.3 V PIN for Arduino => VCC for HC-05 Bluetooth

GND PIN for Arduino => GND for HC-05 Bluetooth

Trinn 3: 3D -design og funksjonalitet

3D -design og funksjonalitet
3D -design og funksjonalitet
3D -design og funksjonalitet
3D -design og funksjonalitet
3D -design og funksjonalitet
3D -design og funksjonalitet
3D -design og funksjonalitet
3D -design og funksjonalitet

Jeg fullførte 3D -design av Gimbal ved å referere til andre Gimbals som selges på markedet. Det er tre hovedkomponenter som roterer med servomotorer. Jeg designet et GoPro -feste som passer til størrelsen.

. Step -filen for all 3D -design deles nederst for å gjøre det enklere å redigere.

Trinn 4: Kontrollmekanisme

Image
Image

Hovedalgoritmen for mitt Gimbal -prosjekt bruker Quaternion -rotasjon som er alternativ til Euler -vinkler. Jeg brukte biblioteket helper_3dmath.h som referanse for å muliggjøre jevn bevegelse ved å bruke Quaternion -algoritmen. Selv om Pitch -aksens respons er jevn, forsinkes rulleaksen for å svare på pinnebevegelsen. Ved å bruke Quaternion -algoritmen var jeg i stand til å styre Roll and Pitch servomotorer. Hvis du vil bruke gaffelaksen, må du kanskje bruke den andre MPU6050 bare for å kontrollere gaffelaksen. Som en alternativ løsning konfigurerte jeg HC-05 og kontrollerte yaw-aksen eksternt med Android-appen ved hjelp av knapper. I hvert trykk for å trykke på knappen, roterer aksen servo 10 grader.

I dette prosjektet er bibliotekene som jeg måtte importere eksternt som følger;

1- I2Cdev.h // Brukes med wire.h for å muliggjøre kommunikasjon med MPU6050

2- "MPU6050_6Axis_MotionApps20.h" // Gyroskopbibliotek

3- // Det gjør det mulig å konvertere digitale pinner til RX- og TX-pinner (det er behov for HC-05 Bluetooth-modul)

4-

5- // Det gjør det mulig å kommunisere med I2C-enheter som bruker to datapinner (SDA og SCL) => MPU6050

Hovedkoden er opprettet av Jeff Rowberg, og jeg endret den i henhold til prosjektfunksjonaliteten min og kommenterte alle funksjonene i ino -filen.

Anbefalt: