Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Это руководство было создано во исполнение требований проекта Makecourse в Университете Южной Флориды (www.makecourse.com).
Целью этого проекта было создание 3-осевого кардана для GoPro с использованием Arduino nano + 3 серводвигателя + гироскоп / акселерометр MPU6050. В этом проекте я управлял 2-осями (крен и рыскание) с помощью гироскопа / акселерометра MPU6050, третья ось (рыскание) управляется дистанционно и вручную с помощью приложения HC-05 и Arduino BlueControl, которое находится в Android App Store..
Эта работа также включает в себя все файлы 3D-дизайна механических компонентов Gimbal. Я поделился файлами.stl для удобной 3D-печати и файлов 3D-дизайна внизу.
В начале моего проекта я планировал построить 3-осевой подвес с 3-мя бесщеточными двигателями, потому что бесщеточные двигатели более плавные и более отзывчивые по сравнению с серводвигателями. Бесщеточные двигатели используются в высокоскоростных приложениях, поэтому мы можем регулировать скорость двигателя, покупая ESC (контроллер). Но чтобы использовать бесщеточный двигатель в проекте Gimbal, я понял, что мне нужно управлять бесщеточным двигателем как сервоприводом. В серводвигателях положение двигателя известно. Но в бесщеточном двигателе мы не знаем положение двигателя, поэтому это недостаток бесщеточного двигателя, из-за которого я не мог понять, как им управлять. В конце концов, я решил использовать 3 серводвигателя MG995 для проекта Gimbal с высоким крутящим моментом. Я управлял двумя серводвигателями для оси крена и тангажа с помощью гироскопа MPU6050, и я управлял серводвигателем оси рыскания с помощью Bluetooth HC-05 и приложения для Android.
Шаг 1: Компоненты
Компоненты, которые я использовал в этом проекте;
1- Arduino Nano (1 шт.) (Micro USB)
2- Серводвигатели MG995 (3 шт.)
3- GY-521 MPU6050 3-осевой акселерометр / гироскоп (1 шт.)
4- Модуль Bluetooth HC-05 (для дистанционного управления осью рыскания (Servo3))
Портативное зарядное устройство с микро-usb на 4-5 В
Шаг 2: Внедрение 3 серводвигателей + гироскоп MPU6050 + HC-05
Серво проводка
Servo1 (крен), Servo2 (шаг), Servo3 (рыскание)
Серводвигатели имеют 3 провода: VCC (красный), GND (коричневый или черный), PWM (желтый).
D3 => Servo1 PWM (желтый провод)
D4 => Servo2 PWM (желтый провод)
D5 => Servo3 PWM (желтый провод)
5V PIN Arduino => VCC (красный) 3 серводвигателей.
GND PIN Arduino => GND (коричневый или черный) 3 серводвигателей
Электропроводка гироскопа MPU6050
A4 => SDA
A5 => SCL
3.3 В PIN Arduino => VCC MPU6050
GND PIN Arduino => GND MPU6050
Проводка Bluetooth HC-05
D9 => TX
D10 => RX
3.3 В PIN Arduino => VCC HC-05 Bluetooth
GND PIN Arduino => GND HC-05 Bluetooth
Шаг 3: 3D-дизайн и функциональность
Я завершил 3D-дизайн кардана со ссылкой на другие карданы, которые продаются на рынке. Есть три основных компонента, которые вращаются вместе с серводвигателями. Я разработал крепление для GoPro, которое соответствует его размеру.
Файл.step всего 3D-дизайна находится внизу, чтобы облегчить редактирование.
Шаг 4: механизм управления
Основной алгоритм моего проекта Gimbal использует вращение Quaternion, которое является альтернативой углам Эйлера. Я использовал библиотеку helper_3dmath.h в качестве справочника, чтобы обеспечить плавное перемещение с помощью алгоритма Quaternion. Хотя реакция оси тангажа плавная, ось крена отстает, чтобы реагировать на движение ручки. Используя алгоритм Quaternion, я смог управлять серводвигателями Roll и Pitch. Если вы хотите использовать ось рыскания, вам может потребоваться второй MPU6050 только для управления осью рыскания. В качестве альтернативного решения я настроил HC-05 и дистанционно управлял осью рыскания с помощью приложения для Android с помощью кнопок. При каждом нажатии кнопки сервопривод оси рыскания поворачивается на 10 градусов.
В этом проекте библиотеки, которые мне пришлось импортировать извне, следующие:
1- I2Cdev.h // Используется с wire.h для включения связи с MPU6050
2- «MPU6050_6Axis_MotionApps20.h» // библиотека гироскопа
3- // Позволяет преобразовывать цифровые пины в пины RX и TX (требуется для модуля Bluetooth HC-05)
4-
5- // Он позволяет общаться с устройствами I2C, которые используют два вывода данных (SDA и SCL) => MPU6050
Основной код создан Джеффом Роубергом, и я модифицировал его в соответствии с функциональностью моего проекта и прокомментировал все функции в ino-файле.