Моторизированное шасси
Этот проект задумывался для обучения и ознакомления с существующими технологиями для удаленного управления устройствами, а также попытка понять, как можно в будущем создать автономное робототехническое устройство, взаимодействующее с человеком.
На блошином рынке за копейки была приобретена часть детской игрушки от радиоуправляемого автомобиля. Это выглядело так (в игрушке была своя китайская электроника).
Шаг 1. Управление двигателем.
Шасси было разобрано и снят двигатель постоянного тока DC. Управление маломощным двигателем можно осуществлять непосредственно с самой платы Arduino. Вот как может выглядеть схема:
Скетч Arduino IDE:
const int M0T0R=9; // Вывод 9 Arduino для подключения двигателя const int РОТ=0; // Вывод A0 Arduino для подключения потенциометра int val = 0; void setup() { pinMode (MOTOR, OUTPUT); } void loop() { val = analogRead(POT); val = map(val, 0, 1023, 0, 255); analogWrite(MOTOR, val) }Чтобы управлять скоростью вращения двигателя нужно регулировать положение ручки потенциометра. При полностью выведенном движке потенциометра двигатель остановлен, при полностью введенном — вал двигателя вращается с максимальной скоростью. Не забывайте, что контроллер Arduino работает очень быстро, цикл повторяется несколько тысяч раз в секунду! Поэтому малейшее изменение положения движка потенциометра сразу же сказывается на частоте вращения двигателя.Пример работы с сервоприводом «Радиальный датчик расстояния»
Мне в изучении очень помогла книга Джереми Блюма «Изучаем Arduino». Всем советую!
Шаг 2. Подключение драйвера двигателей и радиоуправление.
На AliExpress был заказан драйвер двигателей Arduino Motor Shield V.1.
Характеристики:
Микросхема
L293D
Напряжение питания
+4,5...+ 25 В
Номинальный ток для каждого канала
0,6 А
Пиковый ток для каждого канала
1.2 А
Количество одновременно подключаемых двигателей
4 шт
Количество одновременно подключаемых шаговых двигателей
2 шт
Количество подключаемых сервомоторов
2 шт
Реверс каждого двигателя
да
Независимое управления всеми каналами
да
Плата очень просто подключается к Arduino и в интернете полно примеров как управлять двигателями используя этот драйвер (вставить ссылку).Для управления движущейся моделью будем использовать аппаратуру радиоуправления. Передача команд к модели происходит по радиоканалу с помощью модуляции FM (Frequency Modulation). Аппаратура радиоуправления состоит из передатчика RadioLink AT9 и размещенной на модели приемника R9D. Arduino получает и обрабатывает команды от приемника.
Характеристики:
Передатчик RadioLink AT9
Частота
2.4ГГц
Количество каналов
10
Напряжения питания
8.6~15В
Время отклика
3 мс
Дальность действия
900м по земле, более 1500м по воздуху
Экран
2.8" 16 цветов , разрешение 240х320
Приемник RadioLink R9D
Модуляция
DSSS
Частота
2.4ГГц
Рабочее напряжение
до 10В
Ток потребления:
38-45mA
Скетч для Arduino IDE:
#include
После того, как я подсоединил все двигатели к MotorShield, стало понятно, что плате не хватает мощности и она сильно греется. Сравнив характеристики с Arduino MotorShield v.2, плату пришлось поменять.
Arduino MotorShield v.2
Микросхема
TB6612
Используемый протокол управления
I2C
Напряжение питания
5 – 12 В
Номинальный ток для каждого канала
1,2 А
Пиковый ток для каждого канала
3 А
Количество одновременно подключаемых двигателей
4 шт
Количество одновременно подключаемых шаговых двигателей
2 шт
Количество подключаемых сервомоторов
2 шт
Реверс каждого двигателя
да
Независимое управления всеми каналами
да
Чтобы занимать меньше места в коробке модели решил переделать плату под Arduino Micro.
Параметры платы:
Микроконтроллер
ATmega32u4
Рекомендуемое напряжение питания
7-12 В
Цифровых вводов/выводов
20
ШИМ
7
Аналоговые выводы
12
Максимальная сила тока
40 mAh
Flash память
32 КБ
SRAM
2,5 КБ
EEPROM
1 КБ
Тактовая частота
16 МГц
Двигатель заработали нормально, также пришлось подключить второй канал радиоприемника для управления поворотом колес.
ШАГ 3. Собираем всю конструкцию.
Схема подключения.
Полный скетч:
Система стабилизации и управления камерой
В качестве системы стабилизации был выбран 3-х осевой мотоподвес на базе контроллера BGC Storm32.
Питание: 11,1-16,8 в
Процессор: STM32F103RC на 72 МГц
Рабочий ток: 350mA
Драйвер двигателя: DRV8313 с защитой от короткого замыкания, от перегрева
Двигатель: 2 шт. 2204 260kv и 1 шт. 2805 145kv бесщёточного типа
Встроенный гироскоп и датчик ускорения MPU6050
Шаг: от-90 ° до + 90 °
Рулон: от-25 ° до + 25 °
Рыскания: от-90 ° до + 90 °
Процесс прошивки.
Базовая станция управления
Для передачи видео на расстоянии технология WI-FI на 2.4 ГГц не подходит, т.к. не позволяет передавать потоковое видео без задержки, поэтому была выбрана система на Boscam RC805 FPV 5.8 GHz и TS351.
Boscam RC805 FPV 5.8 GHz
TV тюнер EasyCAP
Мощность: 12 В ± 5%
Получают ток: 100mA
Приемник канал: 8 каналов
Камера и передатчик
Камера Clestech CVBS
TS351
Питание: 12 в.
Встроенный микрофон аудио устройство захвата
Светочувствительная матрица: SONY
Двойной выход AV
Подключение: CCTV
Источник питания: 12 В постоянного тока
Угол обзора: 90
Видео: PAL/NTSC
Формат сжатия: H.264
Вес: 55 г (с антенной)
Объектив: 3.6 мм
8 Каналы по выбору
Тип камеры: аналоговая
Как выглядит станция управления
В итоге у меня получилась такая конструкция:
Смета:
Шасси
200
Arduino MotorShield v.2.0
300
Arduino Micro
150
RadioLink AT9 + R9D
6000*
3 axis gimbal + storm32
3000
Boscam RC805 + TS351
1500
TV тюнер Easycap
500
Камера 1200 tvl Clestech CVBS Camera
1000
Аккумулятор 3S 11.1 в
350
ИТОГО
13000
*Данное устройство планирую использовать для управления квадрокоптером.