Tabla de contenido:

Roll and Pitch Axis Gimbal para GoPro usando Arduino - Servo y MPU6050 Gyro: 4 pasos
Roll and Pitch Axis Gimbal para GoPro usando Arduino - Servo y MPU6050 Gyro: 4 pasos

Video: Roll and Pitch Axis Gimbal para GoPro usando Arduino - Servo y MPU6050 Gyro: 4 pasos

Video: Roll and Pitch Axis Gimbal para GoPro usando Arduino - Servo y MPU6050 Gyro: 4 pasos
Video: DIY Gimbal | Arduino and MPU6050 Tutorial 2024, Noviembre
Anonim
Roll and Pitch Axis Gimbal para GoPro con Arduino - Servo y MPU6050 Gyro
Roll and Pitch Axis Gimbal para GoPro con Arduino - Servo y MPU6050 Gyro

Este instructable fue creado en cumplimiento del requisito del proyecto de Makecourse en la Universidad del Sur de Florida (www.makecourse.com)

El objetivo de este proyecto era construir un cardán de 3 ejes para GoPro utilizando Arduino nano + 3 servomotores + giroscopio / acelerómetro MPU6050. En este proyecto, controlé 2 ejes (giro y guiñada) usando el giroscopio / acelerómetro MPU6050, el tercer eje (guiñada) se controla de forma remota y manual con la ayuda de HC-05 y la aplicación Arduino BlueControl que se encuentra en la tienda de aplicaciones de Android..

Este trabajo también incluye todos los archivos de diseño 3D de componentes mecánicos de Gimbal. Compartí archivos.stl para imprimirlos en 3D fácilmente y archivos de diseño en 3D en la parte inferior.

Al comienzo de mi proyecto, mi plan era construir un cardán de 3 ejes con 3 motores sin escobillas, porque los motores sin escobillas son suaves y más sensibles en comparación con los servomotores. Los motores sin escobillas se utilizan en aplicaciones de alta velocidad, por lo que podemos ajustar la velocidad del motor comprando ESC (controlador). Pero para poder usar un motor sin escobillas en el proyecto Gimbal, me di cuenta de que tengo que conducir un motor sin escobillas como un servo. En los servomotores, se conoce la posición del motor. Pero en el motor sin escobillas, no sabemos la posición del motor, por lo que es un inconveniente del motor sin escobillas que no pude entender cómo conducirlo. Al final, decidí usar 3 servomotores MG995 para el proyecto Gimbal de alto torque requerido. Controlé 2 servomotores para el eje de balanceo y cabeceo usando el giroscopio MPU6050, y controlé el servomotor del eje de guiñada usando la aplicación HC-05 bluetooth y Android.

Paso 1: componentes

Componentes
Componentes
Componentes
Componentes
Componentes
Componentes
Componentes
Componentes

Los componentes que utilicé en este proyecto;

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

2- Servomotores MG995 (3 unidades)

3- GY-521 MPU6050 Acelerómetro / Giroscopio de 3 ejes (1 unidad)

4- Módulo Bluetooth HC-05 (Para controlar el eje de guiñada (Servo3) de forma remota)

Cargador portátil micro usb 4-5V

Paso 2: Implementación de 3 servomotores + MPU6050 Gyro + HC-05

Implementación de 3 servomotores + MPU6050 Gyro + HC-05
Implementación de 3 servomotores + MPU6050 Gyro + HC-05
Implementación de 3 servomotores + MPU6050 Gyro + HC-05
Implementación de 3 servomotores + MPU6050 Gyro + HC-05

Cableado de servo

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

Los servomotores tienen 3 cables: VCC (rojo), GND (marrón o negro), PWM (amarillo).

D3 => Servo1 PWM (cable amarillo)

D4 => Servo2 PWM (cable amarillo)

D5 => Servo3 PWM (cable amarillo)

PIN 5V de Arduino => VCC (rojo) de 3 servomotores.

PIN GND de Arduino => GND (marrón o negro) de 3 servomotores

Cableado del giróscopo MPU6050

A4 => SDA

A5 => SCL

3.3 V PIN de Arduino => VCC de MPU6050

GND PIN de Arduino => GND de MPU6050

Cableado Bluetooth HC-05

D9 => TX

D10 => RX

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

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

Paso 3: Diseño y funcionalidad 3D

Diseño y funcionalidad 3D
Diseño y funcionalidad 3D
Diseño y funcionalidad 3D
Diseño y funcionalidad 3D
Diseño y funcionalidad 3D
Diseño y funcionalidad 3D
Diseño y funcionalidad 3D
Diseño y funcionalidad 3D

Completé el diseño 3D de Gimbal tomando como referencia otros Gimbals que se venden en el mercado. Hay tres componentes principales que giran con servomotores. Diseñé una montura para GoPro que se ajusta a su tamaño.

El archivo.step de todos los diseños 3D se comparte en la parte inferior para facilitar la edición.

Paso 4: Mecanismo de control

Image
Image

El algoritmo principal de mi proyecto Gimbal usa la rotación Quaternion, que es una alternativa a los ángulos de Euler. Usé la biblioteca helper_3dmath.h como referencia para permitir un movimiento suave usando el algoritmo Quaternion. Aunque la respuesta del eje de inclinación es suave, el eje de balanceo se retrasa para responder al movimiento de la palanca. Al usar el algoritmo Quaternion, pude controlar los servomotores Roll y Pitch. Si desea utilizar el eje de guiñada, es posible que deba utilizar un segundo MPU6050 solo para controlar el eje de guiñada. Como solución alternativa, configuré HC-05 y controlé el eje de guiñada de forma remota con la aplicación de Android usando botones. En cada pulsación para pulsar el botón, el servo del eje de guiñada gira 10 grados.

En este proyecto, las bibliotecas que tuve que importar externamente son las siguientes;

1- I2Cdev.h // Se usa con wire.h para habilitar la comunicación con MPU6050

2- "MPU6050_6Axis_MotionApps20.h" // Biblioteca de giroscopios

3- // Permite convertir pines digitales en pines RX y TX (se necesita módulo bluetooth HC-05)

4-

5- // Permite comunicarse con dispositivos I2C que utilizan dos pines de datos (SDA y SCL) => MPU6050

El código principal es creado por Jeff Rowberg, lo modifiqué de acuerdo con la funcionalidad de mi proyecto y comenté todas las funciones en el archivo ino.

Recomendado: