Inhoudsopgave:

Roll and Pitch Axis Gimbal voor GoPro met Arduino - Servo en MPU6050 Gyro - Ajarnpa
Roll and Pitch Axis Gimbal voor GoPro met Arduino - Servo en MPU6050 Gyro - Ajarnpa

Video: Roll and Pitch Axis Gimbal voor GoPro met Arduino - Servo en MPU6050 Gyro - Ajarnpa

Video: Roll and Pitch Axis Gimbal voor GoPro met Arduino - Servo en MPU6050 Gyro - Ajarnpa
Video: Handheld gopro servo gimbal 2024, November
Anonim
Roll and Pitch Axis Gimbal voor GoPro met Arduino - Servo en MPU6050 Gyro
Roll and Pitch Axis Gimbal voor GoPro met Arduino - Servo en MPU6050 Gyro

Deze instructable is gemaakt om te voldoen aan de projectvereiste van de Makecourse aan de University of South Florida (www.makecourse.com)

Het doel van dit project was om een 3-assige Gimbal voor GoPro te bouwen met behulp van Arduino nano + 3 servomotoren + MPU6050 gyro/versnellingsmeter. In dit project heb ik 2-assige (Roll en yaw) bestuurd met behulp van MPU6050 gyro / accelerometer, de derde as (yaw) wordt op afstand en handmatig bestuurd met behulp van de HC-05 en Arduino BlueControl-app die zich in de Android App Store bevindt.

Dit werk omvat ook alle 3D-ontwerpbestanden van mechanische componenten van Gimbal. Ik deelde.stl-bestanden voor eenvoudig 3D-printen en 3D-ontwerpbestanden onderaan.

Aan het begin van mijn project was mijn plan om een 3-assige gimbal te bouwen met 3 borstelloze motoren, omdat borstelloze motoren soepel zijn en beter reageren in vergelijking met servomotoren. Borstelloze motoren worden gebruikt in toepassingen met hoge snelheid, dus we kunnen de snelheid van het kopen van motoren ESC (controller) aanpassen. Maar om de borstelloze motor in het Gimbal-project te kunnen gebruiken, realiseerde ik me dat ik de borstelloze motor als een servo moest aandrijven. Bij servomotoren is de positie van de motor bekend. Maar bij een borstelloze motor kennen we de positie van de motor niet, dus het is een nadeel van een borstelloze motor, ik kon er niet achter komen hoe ik hem moest besturen. Uiteindelijk besloot ik om 3 MG995-servomotoren te gebruiken voor het Gimbal-project met een hoog koppel. Ik bestuurde 2 servomotoren voor de rol- en steekas met behulp van de MPU6050-gyro, en ik bestuurde de yaw-asservomotor met behulp van de HC-05 bluetooth- en Android-app.

Stap 1: Componenten

Componenten
Componenten
Componenten
Componenten
Componenten
Componenten
Componenten
Componenten

De componenten die ik in dit project heb gebruikt;

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

2- MG995 servomotoren (3 stuks)

3- GY-521 MPU6050 3-assige versnellingsmeter/gyroscoop (1 eenheid)

4- HC-05 Bluetooth-module (om de yaw (Servo3) -as op afstand te bedienen)

4-5V draagbare micro-usb-oplader

Stap 2: Implementatie van 3 servomotoren + MPU6050 Gyro + HC-05

Implementatie van 3 servomotoren + MPU6050 Gyro + HC-05
Implementatie van 3 servomotoren + MPU6050 Gyro + HC-05
Implementatie van 3 servomotoren + MPU6050 Gyro + HC-05
Implementatie van 3 servomotoren + MPU6050 Gyro + HC-05

Servo bedrading

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

Servomotoren hebben 3 draden: VCC (rood), GND (bruin of zwart), PWM (geel).

D3 => Servo1 PWM (gele draad)

D4 => Servo2 PWM (gele draad)

D5 => Servo3 PWM (gele draad)

5V PIN van Arduino => VCC (rood) van 3 servomotoren.

GND PIN van Arduino => GND (bruin of zwart) van 3 servomotoren

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 functionaliteit

3D-ontwerp en functionaliteit
3D-ontwerp en functionaliteit
3D-ontwerp en functionaliteit
3D-ontwerp en functionaliteit
3D-ontwerp en functionaliteit
3D-ontwerp en functionaliteit
3D-ontwerp en functionaliteit
3D-ontwerp en functionaliteit

Ik heb het 3D-ontwerp van Gimbal voltooid door te verwijzen naar andere Gimbals die op de markt worden verkocht. Er zijn drie hoofdcomponenten die draaien met servomotoren. Ik ontwierp een GoPro mount die past bij zijn grootte.

Het.step-bestand van alle 3D-ontwerpen wordt onderaan gedeeld om het bewerken gemakkelijker te maken.

Stap 4: Besturingsmechanisme

Image
Image

Het belangrijkste algoritme van mijn Gimbal-project maakt gebruik van Quaternion-rotatie, een alternatief voor Euler-hoeken. Ik heb de bibliotheek helper_3dmath.h als referentie gebruikt om vloeiende bewegingen mogelijk te maken met behulp van het Quaternion-algoritme. Hoewel de respons van de pitch-as soepel verloopt, blijft de rol-as achter om op de beweging van de stick te reageren. Door het Quaternion-algoritme te gebruiken, kon ik Roll- en Pitch-servomotoren besturen. Als u de gier-as wilt gebruiken, moet u mogelijk de tweede MPU6050 gebruiken om de gier-as te bedienen. Als alternatieve oplossing heb ik HC-05 geconfigureerd en de gier-as op afstand bediend met de Android-app met behulp van knoppen. Bij elke druk om op de knop te drukken, draait de gier-as-servo 10 graden.

In dit project zijn de bibliotheken die ik extern moest importeren als volgt;

1- I2Cdev.h // Gebruikt met wire.h om communicatie met MPU6050. mogelijk te maken

2- "MPU6050_6Axis_MotionApps20.h" // Gyroscoopbibliotheek

3- // Hiermee kunnen digitale pinnen worden omgezet in RX- en TX-pinnen (er is een HC-05 Bluetooth-module nodig)

4-

5- // Hiermee kan worden gecommuniceerd met I2C-apparaten die twee datapinnen gebruiken (SDA en SCL) => MPU6050

De hoofdcode is gemaakt door Jeff Rowberg en ik heb deze aangepast aan mijn projectfunctionaliteit en heb alle functies in een ino-bestand van commentaar voorzien.

Aanbevolen: