Roll and Pitch Axis Gimbal pour GoPro utilisant Arduino - Servo et gyroscope MPU6050 : 4 étapes
Roll and Pitch Axis Gimbal pour GoPro utilisant Arduino - Servo et gyroscope MPU6050 : 4 étapes
Anonim
Roll and Pitch Axis Gimbal pour GoPro utilisant Arduino - Servo et MPU6050 Gyro
Roll and Pitch Axis Gimbal pour GoPro utilisant Arduino - Servo et MPU6050 Gyro

Cette instructable a été créée pour répondre aux exigences du projet du Makecourse à l'Université de Floride du Sud (www.makecourse.com)

Le but de ce projet était de construire un cardan à 3 axes pour GoPro en utilisant Arduino nano + 3 servomoteurs + gyroscope/accéléromètre MPU6050. Dans ce projet, j'ai contrôlé 2 axes (roulis et lacet) à l'aide du gyroscope/accéléromètre MPU6050, le troisième axe (lacet) est contrôlé à distance et manuellement à l'aide de HC-05 et de l'application Arduino BlueControl qui se trouve dans l'App Store d'Android..

Ce travail comprend également tous les fichiers de conception 3D des composants mécaniques de Gimbal. J'ai partagé des fichiers.stl pour une impression 3D facilement et des fichiers de conception 3D en bas.

Au début de mon projet, mon plan était de construire un cardan à 3 axes avec 3 moteurs brushless, car les moteurs brushless sont plus fluides et plus réactifs que les servomoteurs. Les moteurs sans balais sont utilisés dans les applications à grande vitesse, nous pouvons donc ajuster la vitesse d'achat du moteur ESC (contrôleur). Mais pour pouvoir utiliser un moteur sans balais dans le projet Gimbal, j'ai réalisé que je devais piloter un moteur sans balais comme un servo. Dans les servomoteurs, la position du moteur est connue. Mais dans le moteur brushless, nous ne connaissons pas la position du moteur, c'est donc un inconvénient du moteur brushless que je n'arrivais pas à comprendre comment le conduire. À la fin, j'ai décidé d'utiliser 3 servomoteurs MG995 pour le projet Gimbal à couple élevé. J'ai contrôlé 2 servomoteurs pour l'axe de roulis et de tangage à l'aide du gyroscope MPU6050 et j'ai contrôlé le servomoteur de l'axe de lacet à l'aide de l'application Bluetooth HC-05 et Android.

Étape 1: Composants

Composants
Composants
Composants
Composants
Composants
Composants
Composants
Composants

Les composants que j'ai utilisés dans ce projet;

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

2- Servomoteurs MG995 (3 unités)

3- Accéléromètre/Gyroscope 3 axes GY-521 MPU6050 (1 unité)

4- Module Bluetooth HC-05 (pour contrôler l'axe de lacet (Servo3) à distance)

4- Chargeur portable micro usb 5V

Étape 2: Implémentation de 3 servomoteurs + gyroscope MPU6050 + HC-05

Implémentation de 3 servomoteurs + MPU6050 Gyro + HC-05
Implémentation de 3 servomoteurs + MPU6050 Gyro + HC-05
Implémentation de 3 servomoteurs + MPU6050 Gyro + HC-05
Implémentation de 3 servomoteurs + MPU6050 Gyro + HC-05

Câblage servo

Servo1 (rouleau), Servo2 (tangage), Servo3 (lacet)

Les servomoteurs ont 3 fils: VCC (rouge), GND (marron ou noir), PWM (jaune).

D3 => Servo1 PWM (fil jaune)

D4 => Servo2 PWM (fil jaune)

D5 => Servo3 PWM (fil jaune)

PIN 5V d'Arduino => VCC (rouge) de 3 servomoteurs.

GND PIN d'Arduino => GND (marron ou noir) de 3 servomoteurs

Câblage du gyroscope MPU6050

A4 => SDA

A5 => SCL

3.3 V PIN d'Arduino => VCC de MPU6050

GND PIN d'Arduino => GND de MPU6050

Câblage Bluetooth HC-05

D9 => TX

D10 => RX

3.3 V PIN d'Arduino => VCC de HC-05 Bluetooth

GND PIN d'Arduino => GND de HC-05 Bluetooth

Étape 3: Conception et fonctionnalité 3D

Conception et fonctionnalité 3D
Conception et fonctionnalité 3D
Conception et fonctionnalité 3D
Conception et fonctionnalité 3D
Conception et fonctionnalité 3D
Conception et fonctionnalité 3D
Conception et fonctionnalité 3D
Conception et fonctionnalité 3D

J'ai terminé la conception 3D de Gimbal en me référant à d'autres Gimbals vendus sur le marché. Il y a trois composants principaux qui tournent avec des servomoteurs. J'ai conçu un support GoPro qui s'adapte à sa taille.

Le fichier.step de toutes les conceptions 3D est partagé en bas pour permettre une édition plus facile.

Étape 4: Mécanisme de contrôle

Image
Image

L'algorithme principal de mon projet Gimbal utilise la rotation Quaternion qui est une alternative aux angles d'Euler. J'ai utilisé la bibliothèque helper_3dmath.h comme référence pour permettre un mouvement fluide en utilisant l'algorithme Quaternion. Bien que la réponse de l'axe de tangage soit fluide, l'axe de roulis est en retard pour répondre au mouvement du manche. En utilisant l'algorithme Quaternion, j'ai pu contrôler les servomoteurs de roulis et de tangage. Si vous souhaitez utiliser l'axe de lacet, vous devrez peut-être utiliser le deuxième MPU6050 juste pour contrôler l'axe de lacet. Comme solution alternative, j'ai configuré HC-05 et contrôlé l'axe de lacet à distance avec l'application Android à l'aide de boutons. À chaque pression sur le bouton, le servo de l'axe de lacet tourne de 10 degrés.

Dans ce projet, les librairies que j'ai du importer en externe sont les suivantes;

1- I2Cdev.h // Utilisé avec wire.h pour permettre la communication avec le MPU6050

2- "MPU6050_6Axis_MotionApps20.h" // Bibliothèque Gyroscope

3- // Il permet de convertir les broches numériques en broches RX et TX (il faut le module bluetooth HC-05)

4-

5- // Il permet de communiquer avec les appareils I2C qui utilisent deux broches de données (SDA et SCL) => MPU6050

Le code principal est créé par Jeff Rowberg, et je l'ai modifié en fonction des fonctionnalités de mon projet et j'ai commenté toutes les fonctions dans le fichier ino.