/

Танк на радиоуправлении ардуино

Arduino танк с bluetooth управлением — прекрасный пример того, как легко и без особых знаний можно превратить обычный радиоуправляемый танчик в крутую игрушку управляемую с android устройства. Причем при этом даже код редактировать не придется, все сделает специализированный софт. Возможно вы читали мою предыдущую статью Машинка на arduino и Bluetooth Android, посвященную переделке радиоуправляемой модели автомобиля на управление. С танком все почти то же самое, только он еще умеет вращать башней и меняет угол подъема ствола.

Для начала представляю краткий обзор возможностей моей поделки:

Теперь давайте разберем все по порядку.

Самое главное в аппаратной части это шасси, то есть корпус. Без самого танчика у нас ничего не выйдет. При выборе корпуса обратите внимание на свободное место внутри. Нам придется разместить там внушительное количество компонентов. Мне в руки попался вот такой вариант, с ним и будем работать.

Донор для нашего проекта.

Изначально он был неисправен. Хотел восстановить, однако ужаснувшись качеством сборки рабочей платы, решил что переделка будет надежнее. Да и детей порадую старым гаджетом управляемым по-новому.

Габариты: 330х145х105 миллиметров без учета ствола. Корпус оснащен четырьмя двигателями: два для движения, один для башни и один для ствола. Изначально танк умел стрелять резиновыми пулями, но механизм был сломан, поэтому я его попросту срезал со ствола. После этого места для размещения начинки стало достаточно.

Следующий компонент это Н-мост на микросхеме L298N . Нам их понадобится два: один для гусениц и один для башни и ствола. Подключение весьма банальное, думаю для вас не составит особого труда разобраться.

Данный модуль моста работает от напряжения 5-35 вольт и имеет выход 5 вольт для подключения логики, что весьма удобно. Кроме того его можно приобрести в Китае за смешные деньги. На момент написания статьи цена составляла около ста рублей.

Еще нам понадобится Bbluetooth модуль HC-06. Он так же прост в подключении и обладает низкой стоимостью.

HC-06 Bluetooth for arduino

Рассматривать его подробно нет необходимости. Этот bluetooth модуль для arduino очень популярен и широко применяется уже довольно давно.

Ну и конечно всем этим «хозяйством» будет управлять плата ардуино. В моем случае это arduino nano V3 ATmega328/ch340g, можно приобрести по ссылке. Тут даже фото выкладывать нет смысла. Подойдет любая плата ардуино, не принципиально.

Еще нам понадобятся провода, холдер для аккумуляторов и сами аккумуляторы, микровыключатель. Выбор аккумуляторов для питания поделки, а точнее их количество, зависит от питающего напряжения двигателей модели. Можно и простыми пальчиковыми батарейками запитать.

Arduino танк с bluetooth управлением — прошивка для ардуино.

.Как я уже писал в начале, мы не будем копаться в коде. Для составления скетча воспользуемся специализированным софтом, а именно программой FLProg. Это целый комбайн для работы с контроллерами ATmega. Поддерживает практически все платы ардуино и датчики к ним. В программу интегрирована Scada для управления микроконтроллерами с персонального компьютера, написанная автором программы.

Вот мой проект для Arduino танка с bluetooth управлением, созданный в программе FLProg: скачать с ЯндексДиска

Скачиваете и устанавливаете программу с официального сайта и устанавливаете, портативную версию можно просто распаковать. Далее открываете в ней мой файл проекта и нажимаете на кнопку прошивки в верхней части интерфейса (седьмая слева).

Откроется ArduinoIDE, ну а в ней вы работать умеете 😀 .

Arduino танк с bluetooth управлением — схема подключения

Подключение периферийных элементов к плате, в нашем случае блютуза, мостов и светодиодов выполняем по проекту.

Список использованных пинов

В списке показаны номера пинов ардуино и их назначение. Все прокомментировано. Контакты управления движением и башней со стволом подключаются напрямую от мостов, никакого дополнительного обвеса не требуется. Подключение аналогового входа для измерения напряжения необходимо выполнять через резистивный делитель так как бортовое напряжение ардуины составляет ПЯТЬ ВОЛЬТ. Это очень важно, при превышении порогового напряжения микросхемы контроллер отправляется в мир иной. Так что будьте внимательны. В моем случае использованы два li-ion аккумулятора формата 18650, делитель на резисторах 1 КОм и 680 Ом. Если ваше рабочее напряжение отличается от моего, то идете на любой онлайн-калькулятор для расчета резистивного делителя и рассчитываете самостоятельно, исходя из того что выходное его напряжение должно быть равно пяти вольтам. Если сомневаетесь в своих силах, то можете вообще не использовать измерение напряжения на аккумуляторе, работать будет и так. Перестал так ездить — пора на зарядку.

Читайте также:  Белая краска для шин white tire paint

Светодиоды, если таковые имеются, необходимо подключать через токоограничивающие резисторы.

Arduino танк с bluetooth управлением — программа для планшета или смартфона.

Как и в предыдущей модели мы будем использовать программу для android-устройств под названием HmiKaskada. Выкладываю бесплатную версию этой программы, скачать которую можно с ЯндексДиска. Мой проект выполнен в платной версии и он не совместим с фрее-версией программы. Так что дальнейший материал посвящен созданию проекта в фрее-версии.

В готовом проекте на планшете присутствует еще индикатор уровня заряда батареи, а это — подложка для проекта. Итак, приступим…

Для начала создадим проект с одним рабочим экраном, нам больше не понадобится. Далее подключим наш модуль блютуз к планшету. Для этого переходим в редактирование списка серверов и жмем плюс в правом верхнем углу. Выбираем из списка наш bluetooth и даем ему имя. Теперь он настроен и готов к работе. Следующий шаг это установка подложки для рабочей области. Для этого идем в меню «прочее — фон» основной рабочей области и загружаем картинку интерфейса. Можете использовать мою или создать свое изображение. На самом деле работать будет и без настройки фона, он только для красоты.

Теперь приступим к размещению органов управления. Идем в меню «задатчики» и перетягиваем кнопку в рабочую область. В меню кнопки кликаем на адрес и вводим например 1#0.12. Где 1 — адрес платы ардуино, а 12 — адрес переменной из проекта. Переменные использованные в проекте можно посмотреть в дереве проектов.

Список адресов флагов

Используются адреса в диапазоне 0-16. Далее подгоняете размер кнопки бод рабочую область и делаете кнопку прозрачной. Это позволит при запуске проекта лицезреть красивую кнопку подложки.

С настройкой индикатора заряда аккумулятора точно так же. Создаем регистр хранения в формате Integer в проекте ардуино и присваиваем индикатору его адрес. Например 1#10, настраиваете индикатор на свой вкус.

Когда все органы управления созданы, настроены и расположены по своим местам кликаем на запуск проекта. Андроид подключится к танку, и вы сможете насладиться проделанной работой.

Arduino танк с bluetooth управлением — сборка.

Сборка поделки отняла часа два моего времени, но результат превзошел все ожидания. Танк получился довольно шустрый, откликается на команды моментально. Пришлось повозиться с редуктором, приводящим в движение гусеницы танка. Он рассыпался, но к моему счастью шестеренки не повредились и немного клея, солидола и прямые руки вернули его в строй. Штатный аккумулятор пришлось заменить на два, подключенных последовательно, li-ion аккумулятора формата 18650 в холдере. Итоговое питающее напряжение получилось равно 6 — 8,4 вольта, в зависимости от уровня заряда батарей. Так же пришлось заменить моторчик, приводящий в движение башню, он был закорочен.

Заменил диоды на фарах моей игрушки. Желтые слаботочные абсолютно не радовали и были перепаяны на яркие белые из зажигалок с фонариками 🙂 . Теперь этим гусеничным чудом комфортно управлять даже в полной темноте. Фото до и после:

Итог финальной сборки выглядит не очень аккуратно, я решил не тратить дополнительное время на проектирование шилдов и прокладку проводов. И так все замечательно работает.

Вот такая получилась «начинка»

Arduino танк с bluetooth управлением — заключение.

Как видно из вышеизложенного материала, никаким копанием в коде при создании танка под управлением блютуз и не пахнет. Никаких сверх углубленных познаний в электронике нам тоже не потребуется. Все операции интуитивно понятны и ориентированы на новичков. Изначально программа HMIKaskada была разработана как альтернатива дорогущим промышленным HMI панелям, но пригодилась и в создании игрушки. Надеюсь что помог вам развеять миф о сложности создания многозадачных проектов на ардуино.

Читайте также:  Замена сапуна на бензопиле

Буду рад любого рода комментариям к статье, а так же замечаниям. Ведь я тоже вместе с вами учусь…

Опубликовано 07.04.2014 8:39:00

Сегодня был чудесный весенний день, мы выбрались на природу, отлично провели время, проверили работу написанной нами программки Z-Controller.

И самое главное — протестировали на дальность работы блютуз модуль HC-06, а также радиомодули APC220.

Ну, обо всем по порядку.

Компоненты для повторения (купить в Китае):

• Управляющая плата

Arduino UNO 16U2, либо более дешевая Arduino UNO CH340G,

Arduino Nano CH340G, либо Arduino MEGA 16U2, либо более дешевая Arduino MEGA CH340G,

• Плата управления моторами

Плата расширения L293D, либо Модуль L298N, либо Плата расширения L298P (нет в статье)

Z- Motor Shield L293D (прекращен выпуск)

• Радиомодули

• Соединительные провода

Интересные платформы:

Платформа1 (акрил 2 колеса)

Платформа2 (металл гусеничная)

Платформа3 (металл гусеничная)

Итак, начнем с железной части. Сборка машинки производится элементарно. Одним движением руки вставляем шилд в плату Arduino, затем подключаем к винтовым клеммникам моторы и подаем на плату питание от аккумулятора либо батареек.

Остается только подключить блютуз или радиомодуль с помощью джамперов "папа-мама".

Bluetooth HC-06 Arduino
VCC +5V
GND GND
TX RX
RX TX

Дистанционное управление на bluetooth модуле HC-06

Начнем с блютуза. Про соединение с компьютером можно прочитать здесь

Управление будет производиться с компьютера через написанную нами программку Z-Controller. Скачать её можно здесь, руководство пользователя здесь.

Программка получилась функциональной. В неё можно добавлять свои кнопки, называть их как хочешь, привязывать к ним какие хочешь клавиши на реальной клавиатуре, посылать в порт задаваемые значения при нажатии и отпускании клавиши. Иными словами — дай двум людям программу и у каждого она будет со своим интерфейсом.

В связи с этим, для управления танком необходимо будет загрузить в программу файл настроек под наш код (скачать).

Главной особенностью Z-Controller’а от других приложений является наличие контрольного символа спамящегося с задаваемой частотой, о его назначении мы расскажем далее, а пока рассмотрим самый простой способ.

Управление танком без контрольного символа

Возьмем, к примеру, простой до безобразия код без контрольного символа.

В случае если вы не рассчитываете работать на предельном для блютуза расстоянии, где возможен обрыв связи либо обрыв связи не столь критичен, то можно остановится на этом легком скетче.

Как мы видим из скетча, при получении символа "W", наш танк поедет вперед и остановится когда мы отпустим клавишу и в порт будет послан символ "T" (т.к. символ "T" у нас задан на отпускание клавиши W).

А теперь представим, что произошел обрыв связи после отправки символа ‘W’ (или устройство вышло из радиуса действия) и последующие символы ‘T’ уже не получить. Как результат — наш робот едет вперед до победного, например, куда-нибудь в воду 🙂

На приведенно ниже видео мы и продемонстрируем потерю управляемости при выходе из радиуса действия блютуза.

Открываем Z-controller, подключаемся к порту которым отпределился блютуз и едем.

Управление такном с контрольным символом

Перейдем к управлению с контрольным символом. Z-Controller по настройкам из конфигурационного файла спамит контрольный символ "P" каждые 100 мс. Теперь, если связь оборвалась, и в течении 150мс на контроллер не пришел сигнал "P", то танк остановится.

Код будет одинаковым и для HC-06 и для APC220

Как мы можем наблюдать, дистанция управления с контрольным символом стала меньше чем без него. Это обуславливается тем, что в первом случае танк "залипал", бесконтрольно уезжал вперед, потом снова пробивался сигнал, он входил в штатный режим и снова терял связь.

На втором видео уже видно, что устойчивая, без обрывов дистанция работы блютуза лежит в пределах 15 метров. Затем сигнал очень плохой, как видно на видео, сигнал все-таки будет местами доходить, и танк будет выполнять действия, но это уже не тот сигнал, который нужен для полноценного управления.

Дистанционное управление на радиомодуле APC220

Подключение модуля и программный код для работы точно такие же как и у bluetooth HC-06.

Читайте также:  Расческа из какого дерева лучше

Руководство пользователя данного модуля с компьютером здесь

Радиомодули APC220 Arduino
VCC +5V
GND GND
TX RX
RX TX

Маневрирование танком на APC220

Управление танком на APC220 на дальней дистанции ( примерно 70-80м)

Хочется сказать пару слов об APC220. Радиомодули отличные, но есть некоторые особенности при работе. При расположении модуля на танке, он находился на высоте 5 см от земли ( т.е. на него распространялся фактор поглощения радиосигнала подстилающей поверхностью), и максимальная дистанция управления танком составила метров 100. Ради интереса я взял танк в руки, поднял на уровень груди и пошел дальше, зашел в лес, прошелся еще метров 200-250 и сигнал ловил отлично. Дальше не пошел т.к. тропка начала закругляться. В итоге можно прийти к выводу, что для получения хорошей дистанции, радиопередатчики следует крепить как можно выше от земли.

Сборка идентичной дистанционно управляемой машинки,

но на базе Arduino и модуля драйвера двигателей L298N

При сборке машинки на модуле L298N так же ничего сложного нет. Просто придется соединить модуль с платой Arduino с помощью джамперов "папа-мама" как показано на картинке.

пример программного кода:

Сборка идентичной дистанционно управляемой машинки,

но на базе Arduino и Adafruit Motor Shield

При сборке машинки на Adafruit motor shield могут возникнуть некоторые трудности если вы не умете паять. Производители шилда не комплектуют плату гребенками "папа-мама", по-этому соединить шилд с блютуз модулем с помощью джамперов не выйдет — придется подпаиваться.

Пример программного кода:

А как же комментарии?

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.

В прошлых материалах мы сделали обзоры видеороликов по изготовлению разных игрушек на радиоуправлении. Продолжим эту тематику. На этот раз предлагаем ознакомиться с процессом изготовления радиоуправляемого танка.

Начнем с авторского видеоролика

Нам понадобится:
— готовое шасси;
— Arduino Nano;
— 3 сервопривода;
— поворотная система;
— игрушечный пистолет;
— джойстик PS2;
— приемник к джойстику;
— коробка для аккумуляторов;
— аккумуляторные батарейки;
— провода;
— лазер.

В готовом шасси, ссылка на покупку которого представлена в конце материала, присутствует два двигателя, два редуктора, есть переключатель и отсек для аккумуляторных батареек. По словам автора идеи, покупка готового шасси обойдется дешевле собственноручного изготовления. Если аккумуляторы, которые вы планируете использовать, не помещаются в отсеке шасси, как в случае автора, можно спрятать туда драйвер двигателя.

Первым делом нужно закрепить на шасси приемник от джойстика. Для этого снимаем с него крышку.

Также снимаем крышку с редуктора.

Проделываем на крышке два отверстия, которые будут использованы для крепления крышки винтами.

Гайки, которыми зажали винты, заливаем клеем, чтобы они не раскрутились при езде и не упали в редуктор.

Теперь нужно закрепить драйвер двигателя. По словам автора, при использовании проводов со специальными коннекторами отсек не будет полностью закрываться, поэтому нужно откусить коннекторы, зачистить провода и припаять непосредственно к выходам на драйвере.

Перед установкой драйвера необходимо позаботиться о поворотной системе для дула танка. Для этого разбираем пластиковую поворотную систему и устанавливаем в ней два сервопривода. Первый будет отвечать за горизонтальные движения, а второй – за вертикальные.

Собираем поворотную систему обратно.

Устанавливаем систему на корпусе танка.

В корпусе нужно проделать 3 дополнительных отверстия. Два из них нужны для проводов двигателя, а широкое отверстие понадобится для шины в управлении драйвера двигателя.

Далее отпиливаем нижнюю часть пистолета, который будет выполнять роль дула будущего танка.

Пистолет нужно соединить с сервоприводом. Для этого достаточно проделать по отверстию на сервоприводе и корпусе пистолета и соединить винтом.

Следующим делом нужно соединить курок пистолета к сервоприводу. Для этого просверливаем отверстия на курке и насадке на сервоприводе. Соединяем элементы куском проволоки.

В верхней части поворотной системы нужно проделать два сквозных отверстия, которые также должны проходить через дуло пистолета. Эти отверстия будут использованы для установки дула на поворотную систему.

Перейдем к программированию платы Arduino Nano.

Собираем оставшиеся компоненты по представленной ниже схеме.

На верхней части шасси устанавливаем куски линейки, которые будут служить крыльями. На крыльях устанавливаем отсеки для аккумуляторов.

Оцените статью
Добавить комментарий