Roll- und Pitch-Achsen-Gimbal für GoPro mit Arduino - Servo und MPU6050 Gyro - Gunook
Roll- und Pitch-Achsen-Gimbal für GoPro mit Arduino - Servo und MPU6050 Gyro - Gunook
Anonim
Roll- und Pitch-Achsen-Gimbal für GoPro mit Arduino - Servo und MPU6050 Gyro
Roll- und Pitch-Achsen-Gimbal für GoPro mit Arduino - Servo und MPU6050 Gyro

Dieses instructable wurde in Erfüllung der Projektanforderung des Makecourse an der University of South Florida (www.makecourse.com) erstellt

Das Ziel dieses Projekts war es, einen 3-Achsen-Gimbal für GoPro unter Verwendung von Arduino Nano + 3 Servomotoren + MPU6050 Gyro/Beschleunigungsmesser zu bauen. In diesem Projekt habe ich 2-Achsen (Rollen und Gieren) mit dem MPU6050-Gyro/Beschleunigungsmesser gesteuert, die dritte Achse (Gieren) wird mit Hilfe von HC-05 und der Arduino BlueControl-App, die sich im Android App Store befindet, ferngesteuert und manuell gesteuert.

Diese Arbeit umfasst auch alle 3D-Konstruktionsdateien der mechanischen Komponenten von Gimbal. Ich habe.stl-Dateien für den einfachen 3D-Druck und 3D-Designdateien unten geteilt.

Zu Beginn meines Projekts war mein Plan, 3-Achsen-Gimbal mit 3 bürstenlosen Motoren zu bauen, da bürstenlose Motoren im Vergleich zu Servomotoren glatt und reaktionsschneller sind. Bürstenlose Motoren werden in Hochgeschwindigkeitsanwendungen verwendet, sodass wir die Geschwindigkeit des Motorkaufs von ESC (Controller) anpassen können. Aber um einen bürstenlosen Motor im Gimbal-Projekt verwenden zu können, wurde mir klar, dass ich einen bürstenlosen Motor wie ein Servo antreiben muss. Bei Servomotoren ist die Position des Motors bekannt. Aber beim bürstenlosen Motor kennen wir die Position des Motors nicht, daher ist dies ein Nachteil des bürstenlosen Motors, den ich nicht herausfinden konnte, wie man ihn antreibt. Am Ende entschied ich mich, 3 MG995-Servomotoren für das Gimbal-Projekt mit hohem Drehmoment zu verwenden. Ich habe 2 Servomotoren für die Roll- und Nickachse mit dem MPU6050-Gyro gesteuert, und ich habe den Gierachsen-Servomotor mit HC-05 Bluetooth und Android-App gesteuert.

Schritt 1: Komponenten

Komponenten
Komponenten
Komponenten
Komponenten
Komponenten
Komponenten
Komponenten
Komponenten

Die Komponenten, die ich in diesem Projekt verwendet habe;

1- Arduino Nano (1 Einheit) (Micro-USB)

2- MG995 Servomotoren (3 Einheiten)

3- GY-521 MPU6050 3-Achsen-Beschleunigungsmesser/Gyroskop (1 Stück)

4- HC-05 Bluetooth-Modul (zur Fernsteuerung der Gierachse (Servo3))

4- 5V tragbares Micro-USB-Ladegerät

Schritt 2: Implementieren von 3 Servomotoren + MPU6050 Gyro + HC-05

Implementieren von 3 Servomotoren + MPU6050 Gyro + HC-05
Implementieren von 3 Servomotoren + MPU6050 Gyro + HC-05
Implementieren von 3 Servomotoren + MPU6050 Gyro + HC-05
Implementieren von 3 Servomotoren + MPU6050 Gyro + HC-05

Servoverkabelung

Servo1 (Rollen), Servo2 (Neigung), Servo3 (Gieren)

Servomotoren haben 3 Drähte: VCC (rot), GND (braun oder schwarz), PWM (gelb).

D3 => Servo1 PWM (gelbes Kabel)

D4 => Servo2 PWM (gelbes Kabel)

D5 => Servo3 PWM (gelbes Kabel)

5V PIN von Arduino => VCC (rot) von 3 Servomotoren.

GND PIN von Arduino => GND (braun oder schwarz) von 3 Servomotoren

MPU6050 Kreiselverkabelung

A4 => SDA

A5 => SCL

3,3 V PIN von Arduino => VCC von MPU6050

GND PIN von Arduino => GND von MPU6050

HC-05 Bluetooth-Verkabelung

D9 => TX

D10 => RX

3,3 V PIN von Arduino => VCC von HC-05 Bluetooth

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

Schritt 3: 3D-Design und Funktionalität

3D-Design und Funktionalität
3D-Design und Funktionalität
3D-Design und Funktionalität
3D-Design und Funktionalität
3D-Design und Funktionalität
3D-Design und Funktionalität
3D-Design und Funktionalität
3D-Design und Funktionalität

Ich habe das 3D-Design von Gimbal abgeschlossen, indem ich auf andere Gimbals Bezug genommen habe, die auf dem Markt verkauft werden. Es gibt drei Hauptkomponenten, die mit Servomotoren rotieren. Ich habe eine GoPro-Halterung entworfen, die zu ihrer Größe passt.

Die.step-Datei aller 3D-Designs wird unten geteilt, um die Bearbeitung zu erleichtern.

Schritt 4: Kontrollmechanismus

Image
Image

Der Hauptalgorithmus meines Gimbal-Projekts verwendet eine Quaternion-Rotation, die eine Alternative zu Euler-Winkeln ist. Ich habe die Bibliothek helper_3dmath.h als Referenz verwendet, um eine reibungslose Bewegung mit dem Quaternion-Algorithmus zu ermöglichen. Obwohl die Pitch-Achsen-Reaktion glatt ist, reagiert die Rollachse auf die Knüppelbewegung. Durch die Verwendung des Quaternion-Algorithmus konnte ich Roll- und Pitch-Servomotoren steuern. Wenn Sie die Gierachse verwenden möchten, müssen Sie möglicherweise die zweite MPU6050 verwenden, um die Gierachse zu steuern. Als alternative Lösung habe ich HC-05 konfiguriert und die Gierachse mit der Android-App über Tasten ferngesteuert. Bei jedem Drücken zum Drücken der Taste dreht sich das Gierachsen-Servo um 10 Grad.

In diesem Projekt waren die Bibliotheken, die ich extern importieren musste, wie folgt;

1- I2Cdev.h // Wird mit wire.h verwendet, um die Kommunikation mit MPU6050 zu ermöglichen

2- "MPU6050_6Axis_MotionApps20.h" // Gyroskop-Bibliothek

3- // Es ermöglicht die Umwandlung von digitalen Pins in RX- und TX-Pins (es wird für das Bluetooth-Modul HC-05 benötigt)

4-

5- // Ermöglicht die Kommunikation mit I2C-Geräten, die zwei Datenpins verwenden (SDA und SCL) => MPU6050

Der Hauptcode wurde von Jeff Rowberg erstellt, und ich habe ihn entsprechend meiner Projektfunktionalität modifiziert und alle Funktionen in einer ino-Datei kommentiert.