Большинство роботов, которые я построил до сих пор, были 4-мя колесными роботами грузоподъемностью в несколько килограммов. На этот раз я решил построить более крупный робот, который будет легко преодолевать различные препятствия на своем пути и сможет двигаться с грузом не менее десятка килограммов. Я также предположил, что робот должен иметь возможность справляться с трудными условиями, такими как песок, снег и щебень. Чтобы это стало возможным, я построил шестиколесное шасси, оснащенное 6 двигателями достаточной мощности и подходящим двигателем . Я также хотел, чтобы мой робот контролировался на большом расстоянии (не менее 200 метров), поэтому я использовал высококачественный передатчик и приемник с частотой 2,4 ГГц.
Как только все вышеуказанные требования были выполнены, и первые тесты были успешными, я решил расширить проект с помощью манипулятора и двух камер. Благодаря изображению с камеры можно управлять роботом, даже если он скрыт из виду. Эта функция позволяет оператору выполнять задачи удаленного контроля в тех областях, которые труднодоступны или опасны для людей.
Решенные задачи:
- построить 6-колесное шасси робота, способное транспортировать не менее десятка килограммов
- возможно коммерческое использование, а не только робот как игрушка!
- дистанционно управлять таким роботом с большой дистанции
- связать передатчик 2,4 ГГц с приемником
- читать команды от приемника 2,4 ГГц через Arduino
- контролировать положение робота
- установить предварительный просмотр с камер на вашем компьютере или смартфоне
- внедрит беспроводную передачу данных на большие расстояния на частоте 5,8 ГГц
Параметры робота:
Внешние размеры (ДxШxВ): 405x340x120 мм
Общий вес: 5 кг
Дорожный просвет: 45 мм
Расширенная версия (с манипулятором и камерами):
Внешние размеры (ДxШxВ): 405x340x220 мм (робот, подготовленный для транспортировки)
Общий вес: 6,5 кг
Список деталей и материалов
Шасси робота полностью изготовлены из алюминия и дюралюминия. В этом проекте я использовал 6 колес Monster Truck диаметром 125 мм, что позволяет легко преодолевать небольшие препятствия. Робот управляется 6 мощными 12-вольтовыми моторами постоянного тока (180 об/мин, 27 кгс) с металлическими передачами. В качестве драйвера двигателя вы можете использовать любой драйвер, способный обеспечить непрерывный ток не менее 10А на двигатель, например: VNH2SP30, BTS7960B.
Детали, необходимые для проекта:
- Высокомоментный редуктор постоянного тока 12V 180RPM x6
- Шестигранная муфта 6mm Hex DC Gear Motor Connector x6
- Аварийный выключатель x1
- Встраиваемая кнопка из нержавеющей стали x2
- Аккумулятор 7.4V 2700mAh 10C Lipox1
- Аккумулятор 11.1V 5500mAh 3S 45C Lipo x1
- Драйвер двигателя, например: VNH2SP30 x6 или BTS7960B x2
- Arduino mega 2560 x1
- Колесо обода и шины HSP 1:10 Monster Truck x2
- Плата Micro USB x1
Управление:
- FrSky TARANIS Q X7 2.4GHz 7CH передатчик x1
- FrSky V8FR-II 2.4GHz приемник x1
Материалы (шасси):
- Дюралюминиевый лист толщиной 2 мм (ДхШ): 345x190 мм x2
- L-образный алюминиевый угловой кронштейн толщиной 2 мм: 190x40x20 мм x2
- C-образный алюминиевый угловой кронштейн толщиной 2 мм: 341x40x20 мм x2
- Гайки и болты: M3 10 мм x10, M2 6 мм x8
Для расширенной версии:
- Разделенная камера RunCam x1
- 2-осевой кардан х1
- Роботизированная рукоятка x1
- Металлический захват робота x1
- VL53L0X Laser ToF Sensor x1
Сборка шасси робота
Сборка шасси роботов довольно проста. Все шаги показаны на фотографиях. Порядок основных операций следующий:
- Просверлите 3 отверстия диаметром 13 мм в боковых алюминиевых профилях (отверстия для вала двигателя)
- Просверлите 6 отверстий диаметром 3 мм в боковых алюминиевых профилях (Отверстия, которые крепят двигатели к профилю)
- Прикрутите двигатели постоянного тока к боковым алюминиевым профилям
- Привинтите боковые алюминиевые профили с двигателями постоянного тока к основанию
- Привинтите передний и задний профиль к основанию
- Установите необходимые выключатели питания и другой электронный компонент (см. Следующий раздел)
Подключение электронных компонентов
Основным контроллером в этой электронной системе является Arduino Mega 2560. Для управления шестью моторами я использовал два двигателя BTS7960B (H-Bridges). Три двигателя с каждой стороны подключены к одному двигателю. Каждый из драйверов двигателя может быть загружен током до 43А, что дает достаточный запас мощности даже для подвижного робота, движущегося по пересеченной местности. Электронная система оснащена двумя источниками питания. Один для питания двигателей и сервомоторов постоянного тока (LiPo аккумулятор 11,1 В, 5500 мАч), а другой для питания Arduino, bluetooth-модуля, fpv-камеры и датчиков (LiPo аккумулятор 7.4V, 2700 мАч).
Соединения электронных модулей следующие:
- BTS7960 -> Arduino Mega 2560
- MotorRight_R_EN - 22
- MotorRight_L_RU - 23
- MotorLeft_R_EN - 26
- MotorLeft_L_RU - 27
- Rpwm1 - 2
- Lpwm1 - 3
- Rpwm2 - 4
- Lpwm2 - 5
- VCC - 5V
- GND - GND
- Приемник FMSky V8FR-II 2.4GHz -> Arduino Mega 2560
- ch2 - 7 // Элерон
- ch3 - 8 // Лифт
- VCC - 5V
- GND - GND
Проводные соединения между приемником 2,4 ГГц и Arduino показаны на приведенной выше схеме подключения. Подключите провода питания 5V и GND от Arduino к контактам приемника + (VCC) и - (GND) соответственно. Кроме того, вы должны подключить используемые каналы приемника (ch2 и ch3) к цифровым выводам Arduino (например, 7 и 8, как в программе). Если вы только начинаете изучать электронику, и вы не знаете, как подключить источник питания, переключатели и драйвер двигателя, эта схема подключения из моего аналогичного проекта будет полезна. Перед запуском управления роботом с 2,4-ГГц передатчика Taranis Q X7 2,4 ГГц вы должны предварительно связать передатчик с приемником.
Код Arduino Mega
Программа «RC 2.4GHz Receiver Test» позволит вам легко запустить и проверить приемник 2,4 ГГц, подключенный к Arduino, второй «6WD Robot Control» позволяет управлять движением робота. Перед компиляцией и загрузкой примерной программы убедитесь, что вы выбрали «Arduino Mega 2560» в качестве целевой платформы, как показано выше (Arduino IDE -> Tools -> Board -> Arduino Mega или Mega 2560). Команды от передатчика Taranis Q X7 2,4 ГГц отправляются в приемник. Каналы 2 и 3 приемника подключены к цифровым выводам Arduino 7 и 8 соответственно. В стандартной библиотеке Arduino мы можем найти функцию «pulseIn ()», которая возвращает длину импульса в микросекундах. Мы будем использовать его для считывания сигнала PWM (широтно-импульсной модуляции) из приемника, который пропорционален наклону передатчика управляющая палочка. Функция pulseIn () принимает три аргумента (вывод, значение и таймаут):
- pin (int) - номер булавки, на которой вы хотите прочитать импульс
- value (int) - тип импульса для чтения: либо HIGH, либо LOW
- timeout (int) - дополнительное количество микросекунд, чтобы ждать завершения импульса
Затем значение длины импульса считывания преобразуется в значение от -255 до 255, которое представляет скорость вперед / назад («moveValue») или поворачивает вправо / влево («turnValue»). Так, например, если мы полностью выталкиваем управляющую палку, мы должны получить «moveValue» = 255 и полностью вернуться назад, получить «moveValue» = -255. Благодаря этому типу управления мы можем регулировать скорость движения робота в полном диапазоне.