Sommario:

Gimbal Roll and Pitch Axis per GoPro con Arduino - Servo e giroscopio MPU6050: 4 passaggi
Gimbal Roll and Pitch Axis per GoPro con Arduino - Servo e giroscopio MPU6050: 4 passaggi

Video: Gimbal Roll and Pitch Axis per GoPro con Arduino - Servo e giroscopio MPU6050: 4 passaggi

Video: Gimbal Roll and Pitch Axis per GoPro con Arduino - Servo e giroscopio MPU6050: 4 passaggi
Video: Подвес своими руками | Учебное пособие по Arduino и MPU6050 2024, Dicembre
Anonim
Gimbal dell'asse di rollio e beccheggio per GoPro con Arduino - Servo e giroscopio MPU6050
Gimbal dell'asse di rollio e beccheggio per GoPro con Arduino - Servo e giroscopio MPU6050

Questo istruttivo è stato creato in adempimento del requisito del progetto del Makecourse presso la University of South Florida (www.makecourse.com)

L'obiettivo di questo progetto era costruire un Gimbal a 3 assi per GoPro utilizzando Arduino nano + 3 servomotori + giroscopio/accelerometro MPU6050. In questo progetto, ho controllato 2 assi (rollio e imbardata) utilizzando il giroscopio/accelerometro MPU6050, il terzo asse (imbardata) è controllato in remoto e manualmente con l'aiuto dell'HC-05 e dell'app Arduino BlueControl che si trova nell'App Store Android.

Questo lavoro include anche tutti i file di progettazione 3D dei componenti meccanici di Gimbal. Ho condiviso file.stl per una facile stampa 3D e file di progettazione 3D in basso.

All'inizio del mio progetto, il mio piano era di costruire un gimbal a 3 assi con 3 motori brushless, perché i motori brushless sono fluidi e più reattivi rispetto ai servomotori. I motori brushless sono utilizzati in applicazioni ad alta velocità, quindi possiamo regolare la velocità dell'acquisto del motore ESC (controller). Ma per poter utilizzare il motore brushless nel progetto Gimbal, mi sono reso conto che devo guidare il motore brushless come un servo. Nei servomotori la posizione del motore è nota. Ma nel motore brushless, non conosciamo la posizione del motore, quindi è un inconveniente del motore brushless che non sono riuscito a capire come guidarlo. Alla fine ho deciso di utilizzare 3 servomotori MG995 per il progetto Gimbal ad alta coppia richiesta. Ho controllato 2 servomotori per l'asse di rollio e beccheggio utilizzando il giroscopio MPU6050 e ho controllato il servomotore dell'asse di imbardata utilizzando il bluetooth HC-05 e l'app Android.

Passaggio 1: componenti

Componenti
Componenti
Componenti
Componenti
Componenti
Componenti
Componenti
Componenti

I componenti che ho utilizzato in questo progetto;

1- Arduino Nano (1 unità) (Micro usb)

2- Servomotori MG995 (3 unità)

3- GY-521 MPU6050 Accelerometro/giroscopio a 3 assi (1 unità)

4- Modulo Bluetooth HC-05 (per controllare l'asse di imbardata (Servo3) a distanza)

4- 5V caricatore portatile micro usb

Passaggio 2: implementazione di 3 servomotori + giroscopio MPU6050 + HC-05

Implementazione di 3 servomotori + giroscopio MPU6050 + HC-05
Implementazione di 3 servomotori + giroscopio MPU6050 + HC-05
Implementazione di 3 servomotori + giroscopio MPU6050 + HC-05
Implementazione di 3 servomotori + giroscopio MPU6050 + HC-05

Cablaggio servo

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

I servomotori hanno 3 fili: VCC (rosso), GND (marrone o nero), PWM (giallo).

D3 => Servo1 PWM (filo giallo)

D4 => Servo2 PWM (filo giallo)

D5 => Servo3 PWM (filo giallo)

PIN 5V di Arduino => VCC(rosso) di 3 servomotori.

GND PIN di Arduino => GND (marrone o nero) di 3 servomotori

Cablaggio giroscopio MPU6050

A4 => SDA

A5 => SCL

PIN 3.3 V di Arduino => VCC di MPU6050

GND PIN di Arduino => GND di MPU6050

Cablaggio Bluetooth HC-05

D9 => TX

D10 => RX

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

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

Passaggio 3: design e funzionalità 3D

Design 3D e funzionalità
Design 3D e funzionalità
Design 3D e funzionalità
Design 3D e funzionalità
Design 3D e funzionalità
Design 3D e funzionalità
Design 3D e funzionalità
Design 3D e funzionalità

Ho completato la progettazione 3D di Gimbal prendendo come riferimento altri Gimbal venduti sul mercato. Ci sono tre componenti principali che ruotano con servomotori. Ho progettato un supporto GoPro che si adatta alle sue dimensioni.

Il file.step di tutti i progetti 3D è condiviso in basso per consentire la modifica più semplice.

Passaggio 4: meccanismo di controllo

Image
Image

L'algoritmo principale del mio progetto Gimbal utilizza la rotazione Quaternion che è alternativa agli angoli di Eulero. Ho usato la libreria helper_3dmath.h come riferimento per consentire un movimento fluido utilizzando l'algoritmo Quaternion. Sebbene la risposta dell'asse di beccheggio sia uniforme, l'asse di rollio è in ritardo per rispondere al movimento dello stick. Utilizzando l'algoritmo Quaternion, sono stato in grado di controllare i servomotori Roll e Pitch. Se si desidera utilizzare l'asse di imbardata, potrebbe essere necessario utilizzare il secondo MPU6050 solo per controllare l'asse di imbardata. Come soluzione alternativa, ho configurato HC-05 e controllato l'asse di imbardata da remoto con l'app Android utilizzando i pulsanti. Ad ogni pressione del pulsante, il servo dell'asse di imbardata ruota di 10 gradi.

In questo progetto, le librerie che ho dovuto importare esternamente sono le seguenti;

1- I2Cdev.h // Utilizzato con wire.h per abilitare la comunicazione con MPU6050

2- "MPU6050_6Axis_MotionApps20.h" // Libreria giroscopio

3- // Consente di convertire i pin digitali in pin RX e TX (è necessario il modulo bluetooth HC-05)

4-

5- // Permette di comunicare con dispositivi I2C che utilizzano due pin dati (SDA e SCL) =>MPU6050

Il codice principale è stato creato da Jeff Rowberg e l'ho modificato in base alla funzionalità del mio progetto e ho commentato tutte le funzioni nel file ino.

Consigliato: