Как сделать танк на ардуино

Как сделать танк на ардуино

Робот состоит из шасси от радиоуправляемого танка и нескольких других компонентов, список которых приведён ниже. Это мой первый проект на Arduino, и платформа Arduino мне понравилась. При создании этого робота и пользовался материалами из книг и интернета.

Необходимые материалы
1. Шасси от радиоуправляемого танка.
2. Arduino Uno.
3. Макетная плата и перемычки.
4. Интегральный драйвер моторов SN754410NE.
5. Стандартный сервопривод.
6. Ультразвуковой дальномер.
7. 9В батарея и разъём для неё.
8. 4 батарейки D и разъем для них.
9. Кабель USB A-B.
10. Основа 6"х 6".

Инструменты
1. Набор отверток.
2. Термопистолет с клеем.
3. Припой и паяльник.

Шасси

Шасси я взял из танка, купленного за 10$. Основу можно прикрепить к нему в любом месте, но я прикрепил её посередине.

Драйвер двигателя SN754410NE

Для управления двигателями я использовал драйвер SN754410NE. Я применил его, потому что он у меня был, но вы можете использовать другой, например L293.

Теперь о подключении драйвера к Arduino Uno. Все выводы GND (4,5,12,13) подключите к GND макетной платы. Контакты драйвера 1 и 16 подключите к выводам 9 и 10 Arduino. Контакты драйвера 2 и 7 подключите к контактам 3 и 4 Arduino, это контакты управления левого двигателя. Контакты драйвера 10 и 15 подключите к выводам 5 и 6 Arduino, это контакты управления правого двигателя. Контакты 3 и 6 подключите к левому мотору, а контакты 14 и 11 к правому. Контакты 8 и 16 должны быть подключены к питанию на макетной плате. Источник питания: 9В батарея.

Установка дальномера

Ультразвуковой дальномер помогает роботу избегать препятствий при движении. Он располагается на стандартном сервоприводе, который расположен на передней части робота. Когда робот замечает объект на расстоянии 10 см, сервопривод начинает крутиться, ища проход, а затем Arduino решает, какая сторона наиболее приятна для передвижения.
Прикрепите к нему разъём для подключения. Ограничьте сервопривод так, чтобы он не мог повернуться больше чем на 90 градусов в каждую сторону.

На датчике есть три контакта GND, 5В и сигнал. GND подключите к GND, 5В к 5В Arduino и сигнал подключите на 7 контакт Arduino.

Питание

Arduino питается от батарейки 9В через соответствующий разъём. Для питания двигателей я использовал 4 батарейки размера D и соответствующий разъём. Для питания двигателей подключите провода от держателя к плате с SN754410NE.

Сборка

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

Программа

Итак, после сборки робота настало время написать для него программу. Потратив несколько дней, я написал её.
Робот будет двигаться по прямой пока объект на расстоянии более 10 см. Когда он замечает объект, он начинает вращать датчиком, ища путь. Когда сканирование завершено, программа выбирает оптимальную сторону для движения. Если робот в тупике, он разворачивается на 180 градусов.
Программу можно скачать ниже. Вы можете модифицировать и дополнять её.

Опубликовано 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 танк с 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 Ом. Если ваше рабочее напряжение отличается от моего, то идете на любой онлайн-калькулятор для расчета резистивного делителя и рассчитываете самостоятельно, исходя из того что выходное его напряжение должно быть равно пяти вольтам. Если сомневаетесь в своих силах, то можете вообще не использовать измерение напряжения на аккумуляторе, работать будет и так. Перестал так ездить — пора на зарядку.

Читайте также:  Как отключить звездочку на экране телефона

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

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 панелям, но пригодилась и в создании игрушки. Надеюсь что помог вам развеять миф о сложности создания многозадачных проектов на ардуино.

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

Ссылка на основную публикацию
Как сделать нумерацию страницы в ворде
Microsoft Word — одна из самых часто используемых программ для работы с текстовыми документами. Когда текст слишком большой, для комфортной...
Как сбросить графический ключ на xiaomi
Что такое графический пароль? Графический пароль – аналог обычного пароля, который был создан для удобства ввода на мобильных телефонах с...
Как сбросить защитный код на нокиа
Секретные коды Nokia для сброса, проверки и настроек. На этой странице собраны все полезные секретные и не секретные коды для...
Как сделать обратную матрицу в excel
Приложение Excel выполняет целый ряд вычислений, связанных с матричными данными. Программа обрабатывает их, как диапазон ячеек, применяя к ним формулы...
Adblock detector