Делаем радиоуправляемый танк на Arduino Nano – Своими руками

Делаем радиоуправляемый танк на Arduino Nano - Своими руками Лодки

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

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

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

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

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

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

Смотрите про коптеры:  Робот sony

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

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

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

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

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

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

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

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

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

Arduino танк, управляемый акселерометром android

Добрый день, сегодня я хочу поделиться инструкцией по изготовлению игрушечного танка, управляемого акселерометром Android телефона. Основу танка будем изготавливать из покрашенной фанеры толщиной 3 мм. Гусеницы и сдвоенный мотор-редуктор известной фирмы Tamiya. Выпускающая качественные и недорогие детали.

Для танка нам понадобится:
– Tamiya 70168 сдвоенный редуктор
– Tamiya 70100 набор катков и гусениц
– Tamiya 70157
– Фанера 10 мм (небольшой кусочек)
– Arduino Pro Mini 5V AtMega 328
– DRV 8833
– Bluetooth модуль HC-06 или аналог
– USB-UART для прошивки Arduino
– Светодиоды прямоугольные красный и зеленый
– Светодиоды белые 5 мм 2шт.
– Резисторы 3х 150 Ом
– Аккумуляторы Li-ion 18650
– Коннекторs Dupont папа-мама
– Провода разных цветов
– Припой
– Канифоль
– Паяльник
– Болтики 3х40, 3х20, гайки и шайбы к ним
– Саморезы 2х10 по дереву
– Сверла по дереву 3 мм и 6 мм
– Электролобзик
– Краска акриловая

Шаг 1 Сборка мотор-редуктора.
Мне нравится использовать мотор-редукторы фирмы Tamiya. Стоят приемлемо, собираются легко. У Tamiya 70168 четыре варианта сборки. В зависимости от нужного передаточного числа и положения выходных валов.

Внутри коробки с редуктором вложена подробная инструкция. Нам необходимо, чтобы выходные валы располагались ближе к двигателям, а передаточное число 114.7:1. Выбираем нужный нам вариант и собираем все по инструкции, кроме установки моторов. Моторы удобнее поставить потом, кроме того, к ним надо припаять провода и конденсаторы, перед установкой.

Шаг 2 Изготовление деталей корпуса.
Корпус будем изготавливать из фанеры толщиной 3 мм. Скачиваем нижеследующую картинку и распечатываем ее на листе A4 в масштабе 102%.

Теперь берем два куска фанеры достаточных размеров, кладем одну на другую, сверху прикладываем нашу картинку. В местах отмеченных жирной точкой необходимо проделать отверстия 3 мм. Чтобы обе детали были одинаковы, вначале просверливаем лист и две фанеры в одной из точек, вставляем туда болтик, и скручиваем картинку и два куска фанеры вместе. Затем второе отверстие, и также вставляем туда болтик. После этого просверливаем все остальные. Обратите внимание на самое левое отверстие, ему необходимо придать форму овала. Это нужна для регулирования натяжения гусениц. Теперь берем электролобзик, и вырезаем сразу две боковые детали корпуса, следуя по жирной линии картинки. Должны получится две такие детали:

Далее необходимо проделать все выше описанное, только на этот раз вырезаем две детали прикрывающие гусеницы. Резать надо по малому овалу, нарисованному на картинке. В итоге получаем еще две детали:

Теперь берем лист фанеры в один слой и вырезаем прямоугольник размерами 168 х 54 мм. Это будет низ нашего танчика и деталь к которой крепится мотор-редуктор:

Для начала сборки нам понадобятся все описанные выше детали:

Можно оставить все детали как есть, но я предпочитаю их покрасить. Для покраски подходит акриловая краска. Она быстро сохнет и не пахнет, а значит можно красить в любом помещение не боясь отравиться. Итак, красим вырезанные детали:

Теперь нам понадобится фанера толщиной 10 мм или деревянная палочка подходящего размера. Необходимо вырезать прямоугольник размерами 54 х 15 мм и толщиной 10 мм. Эта деталь необходима для соединения корпуса воедино. Изготовив прямоугольник просверливаем два отверстия на расстоянии 15 мм от края вначале сверлом 3 мм и затем 6 мм, но не насквозь, а только на половину глубину. В полученные отверстия вставляем гайки и фиксируем их с помощью клея. Нам необходимо четыре таких детали:

Опять берем фанеру толщиной 3 мм. Вырезаем прямоугольник 107 х 60 мм. Отступая по 15 мм от краев сверли отверстия 3 мм, эту будет верхняя крышка:

Режем следующий прямоугольник размером 33 х 60 мм. Отступая по 15 мм от краев сверлим два отверстия диаметром 5 мм. Вырезав и зачистив деталь красим ее. Затем в проделанные отверстия вставляем светодиоды белые 5-ти миллиметровые. Спаиваем их параллельно и фиксируем при помощи термоклея:

Шаг 3 Сборка корпуса.
Подготовив мотор-редуктор и детали переходим к сборке всего воедино. Для начала берем нижнюю деталь корпуса и прикручиваем к нему мотор-редуктор:

И чуть покрупнее:

Затем крепим боковые детали, используя для этого уголки от детского железного конструктора и болтики 3х20 мм:

Теперь нам необходимо установить гусеницы. Берем детали закрывающие гусеницы. В отверстия вставляем болтики 3х40 мм. На передний болтик надеваем большое колесо, на три нижних маленькие, затем шайбы и накручиваем гайки, но не туго, так чтобы все катки свободно крутились. На валы мотор-редуктора надеваем большие звездочки. Совмещаем все болтики с катками с отверстиями на боковых деталях. Продев болтики накручиваем и зажимаем гайки изнутри корпуса. Надеваем гусеницы, проверяем достаточно ли они натянуты. Гусеницы не должны провисать, но и сильное натяжение им повредит. Регулировку осуществляем передним колесом, придвигая или наоборот отодвигая его от мотор-редуктора. После всех манипуляций получаем:

Берем моторчики, идущие в комплект с катками и гусеницами. Припаиваем к контактным площадкам провода, а параллельно им конденсатор 0.1 мкф. После этого устанавливаем моторчики в мотор-редуктор:

Перейдем к аккумуляторам. Спаиваем наши Li-ion 18650 аккумуляторы параллельно и выводим провода для удобства. Скручиваем их изолентой:

Размещаем их внизу корпуса, радом с моторчиками:

Для удобства, а также разделения механической и электронной частях, вырезаем из тонкого пластика или картона прямоугольник 100 на 54 мм. Размещаем его сверху мотор-редуктора и аккумуляторов:

Берем крепежные детали и устанавливаем их как показано на фото. К боковым деталям прикручиваем используя саморезы:

В задней части танчика на термоклей крепим прямоугольные светодиоды. Красный и зеленый:

Также использую термоклей крепим переднюю деталь с фарами:

Шаг 4 Электрика
Электродвигатели при своей работе создают помехи, а при пуске возникает падение напряжения. Чтобы при каждом пуске двигателей Arduino не перегружалась, разделим питание. Arduino запитаем от 9-ти вольтовой батарейки типа кроны, а моторчики от аккумуляторов. Аккумуляторы мы уже разместили, крону будем размещать в передней части танчика:

Установив батарейку закрываем ее верней крышкой:

Соединяем все вместе по схеме:

Немного поясню. Левый двигатель через драйвер подключаем к 5 и 6 pin. Правый – к 9 и 10. Плюс от красного светодиода через резистор к 3 pin, минус к GND. Плюс от зеленого светодиода, также через резистор, к 4 pin. Фары к 2 pin.

Работа Bluetooth модуль осуществляется через библиотеку SoftwareSerial. Мы будем использовать программный com-port. Контакты подключения можно изменить в скетче. Подключаем модуль следующим образом:

Arduino Pro Mini – Bluetooth
D7 – RX
D8 – TX
5V – VCC
GND –GND

Собрав все вместе размещаем электрику в центральной части:

Шаг 5 Программные средства.
Для работы со скетчем необходимо скачать Arduino IDE. Заходим на официальный сайт проекта и скачиваем последнюю версию:

Затем нужно добавить библиотеку. SoftwareSerial уже должна быть в Arduino IDE. Но на всякий случай выложу ее:

Если Arduino IDE, при компиляции скетча выдает ошибку и ругается на отсутствующую библиотеку, распаковываем скачанный архив в папку «libraries», находящуюся в папке с установленной Arduino IDE.

Шаг 6 Подготовка Bluetooth модуля.
Настройки Bluetooth модуля по умолчанию отличаются от тех, что нужны нам. Поэтому вначале необходимо установить связь Bluetooth модуля с компьютером и изменить настройки. Заливаем скетч Send_ AT_Bluetooth в Arduino:

Arduino будет выступать в роли связующего звена между Bluetooth и компьютером. Запускаем Arduino IDE, открываем Монитор порта. Для HC-06, выбираем в настройках монитора порта скорость 9600, NL и CR не нужен. Если с модулем не установлена Bluetooth соединение, он находится в режиме ввода AT команд. Возможно с первого раза модуль не отзовется. Тогда попробуйте перегрузить его, отключив и подключив снова плюсовой провод. Все команды вводятся без кавычек, не забудьте нажать enter для отправки. Вводим следующие команды:

«AT» – без кавычек, должен прийти ответ «OK».
«AT NAME<имя>» – введите имя модуля, чтобы вы смогли легко его найти. Обязательно латинским буквами, без скобок.
«AT BAUD7» – устанавливаем скорость 57600.
«AT RESET» – перегружаем модуль.

Если что-то пошло не так, или не помните настройки:
«AT ORGL» – возвращение модуля к заводским настройка.

Шаг 7 Заливка скетча.
Закончив настройку Bluetooth модуля, переходи к заливке основного скетча:

Шаг 8 Подготовка Android телефона.
Перед использование убедитесь, что у вашего Android телефона или планшета есть акселерометр. Для начала добавляем Bluetooth устройство танчика в Android. Заходим в настройки Bluetooth, находим названный вами Bluetooth модуль и подключаемся. Пароль для соединения «1234» или «0000», у разных моделей бывает по-разному. Теперь устанавливаем программу управления. Нам понадобится Arduino Bluetooth RC Car или BT Controller. Обе программы бесплатные, у них есть возможность управлять Bkuetooth устройством через акселерометр, и они есть в Google play. Скачиваем понравившуюся вам программу на телефон или планшет. В меню настройки программы вводим следующие команды:

W – вперед
S – назад
A – влево
D – вправо
F или G– стоп
K – включение фар
L – выключение фар

Также можно использовать и джойстик для управления танчиком. Его можно изготовить по другой моей инструкции.

И добавить в него Bluetooth модуль, следуя по еще одной инструкции.

Tank — твой робот на arduino

Запрограммируем робота на основе Arduino.

Начну с теории и описания всего того, что нам пригодится.

image

Напомню Arduino – это аппаратная вычислительная платформа, основными компонентам которой являются простая плата ввода/вывода и среда разработки на языке Processing/Wiring. Документация на аппаратную часть и программный код опубликованы под лицензией «copyleft» но разработчики выразили желание, чтобы название «Arduino» было торговой маркой для официального продукта и не использовалось для производных работ без разрешения. В документе об использовании названия Arduino подчеркивается, что проект открыт для всех желающих.

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

Плата Arduino состоит из микроконтроллера Atmel AVR и элементной обвязки для программирования и интеграции с другими схемами. На каждой плате обязательно присутствуют линейный стабилизатор напряжения 5 В и 16 МГц кварцевый генератор. В микроконтроллер предварительно прошит загрузчик, поэтому внешний программатор не нужен.

Проект Arduino постоянно развивается и имеет множество модификаций. На данный момент доступны 10 версий плат, но конкретно в данном проекте использовалась плата Arduino Diecimila. Она представляет собой небольшую электронную плату, ядром которой является микроконтроллер ATmega168. На плате есть: 14 цифровых входов/выходов, 6 из которых могут работать в режиме ШИМ (PWM) (а следовательно управлять аналоговыми устройствами вроде двигателей и передавать двоичные данные), 6 аналоговых входов, тактовый генератор на 16 МГц, разъёмы питания и USB, ICSP-порт (что-то вроде последовательного интерфейса для цифровых устройств), несколько контрольных светодиодов и кнопка сброса. Этого вполне достаточно, чтобы подключить плату к USB-порту компьютера, установить необходимое программное обеспечение (драйвер и среду разработки) и начать программировать.

image
Внешний вид платы Arduino Diecimila.

Краткая спецификация

Микроконтроллер: ATmega168
Рабочее напряжение: 5 В
Входное напряжение (рекомендуемое): 7-12 В
Входное напряжение (пределы): 6-20 В
Цифровые порты ввода/вывода: 14 портов (из них 6 с ШИМ-сигналом)
Аналоговые порты ввода: 6 портов
Ток для портов: 40 мА
Ток для 3.3В источника: 50 мА
ППЗУ (Flash Memory): 16 KB (из них 2 Кб используются загрузчиком)
ОЗУ (SRAM): 1 Кб
ПЗУ (EEPROM): 512 байт
Тактовая частота: 16 МГц

Что же нужно для того, чтобы сделать своего робота ?

Робота можно собрать, как это делают многие энтузиасты, но можно и переработать существующего. В качестве робота подойдет любая игрушка с подвижными деталями. В моём случае – это танк, с подвижными гусеницами, приводящимися в движение встроенными моторчиками (танк имел дистанционное управление). Вот этими моторчиками я и буду управлять с помощью платы.

Важным этапом, естественно, служит получение в своё распоряжение одной из плат Arduino. В моём случае это плата Arduino Diecimila. Также для подключения платы к компьютеру необходим USB кабель любой длины стандарта A-B. Через этот кабель будет осуществляться обмен данными между компьютером и микроконтроллером, а также подача питания на плату, т.е. внешний блок питания не обязателен. Еще один компонент, который необходим для управления моторами – это плата расширения MotorShield.

image
Плата расширения MotorShield и комплект деталей.

image
Что и как подключать к MotorShield.

Далее нужно определиться с целями: мне нужно к имеющемуся игрушечному танку приделать дистанционное управление, но не обычное «куда нажал – туда поехал», а такое, при котором танку передавались бы координаты на воображаемом поле и он самостоятельно бы их достигал. Т.е. нужно представить, что комната (или любой другой участок, по которому будет двигаться танк) разбита на квадраты, представляющие собой систему координат. Тогда танку необходимо будет передавать координаты какого-либо квадрата и он должен будет повернуться к нему и проехать необходимое расстояние, чтобы стать в этот квадрат.

image
Игрушечный танк с материнской платой.

image
Материнская плата явно больше платы Arduino :).

Есть танк с моторами, есть плата, есть плата расширения. Необходимо средство для передачи координат. Это будет программа на компьютере пользователя, которая будет передавать данный на танк посредством Wi-Fi связи. Должен заметить, что Wi-Fi не понятен плате, поэтому на танке присутствует еще и обычная материнская плата (позже заменена на ноутбук ), которая будет от адаптера Wi-Fi транслировать данные в COM-порт, через который будет связь с платой Arduino. От нее сигналы уже будут поступать на плату расширения, и моторы должны будут закрутиться. Задача сводится к написанию двух программ: одной – для передачи данных от компьютера на Wi-Fi адаптер, другой – для обработки данных внутри микроконтроллера.

image

Итак, поехали!

Программу, отвечающую за обмен данными между ПК и микроконтроллером через COM-порт, писать можно на чём угодно. Пусть это будет Delphi.

Для краткости приведу исходный код только той функции, которая будет передавать танку команды, отвечающие за поворот и передвижение на нужные угол/расстояние. Функция принимает на вход текущие координаты (x0,y0), новые координаты (x1,y1) и текущий угол поворота танка alpha. Возвращать функция будет новый текущий угол. Текущие координаты и угол хранятся вне функции. Код откомментирован в нужных местах, поэтому описывать не стану.

Copy Source | Copy HTML

  1. Function MoveTank(x0, y0, x1, y1, alpha: integer): integer;
  2. var newAlpha: integer; // новый угол
  3.     FlagsField : byte; // содержит код направления движения
  4.     angle_tmp: integer;
  5.     TmpStr: string;
  6.     angle, dist: byte; // угол и расстояние, передаваемые танку
  7. begin
  8.      // Вычисление нового текущего угла
  9.      newAlpha := Round(ArcTan(Abs((x0-x1)/(y0-y1)))); // Поворот относительно текущего положения
  10.      angle_tmp := (360 newAlpha - alpha) mod 360; // Расстояние между заданными координатами
  11.      dist := Round(10*Sqrt(Sqr(x0-x1) Sqr(y0-y1)));
  12.      FlagsField := 0; // Определение оптимального направления движения
  13.  
  14.      if angle_tmp <= 90 then FlagsField := 0 // передом, вправо
  15.      else if angle_tmp < 180 then
  16.             begin
  17.               angle_tmp := 180 - angle_tmp;
  18.               FlagsField := FlagsField or 4; // задом, вправо
  19.             end
  20.      else if angle_tmp < 270 then
  21.             begin
  22.               angle_tmp := angle_tmp - 180;
  23.               FlagsField := FlagsField or 6; // задом, влево
  24.             end
  25.      else begin
  26.               angle_tmp := angle_tmp - 270;
  27.               FlagsField := FlagsField or 2; //передом, влево
  28.             end;
  29.  
  30.      angle := angle_tmp;
  31.  
  32.      // Далее нужно отправить в COM-порт сначала флаги, затем данные.
  33.  
  34.      FlagsField:= FlagsField or 1; // для передачи угла
  35.      TmpStr := Chr(FlagsField);
  36.      ComPort_.Write(TmpStr);
  37.      TmpStr := Chr(angle);
  38.      ComPort_.Write(TmpStr);
  39.  
  40.      FlagsField:= FlagsField and 254; // для передачи расстояния
  41.  
  42.      TmpStr := Chr(FlagsField);
  43.      ComPort_.Write(TmpStr);
  44.      TmpStr := Chr(dist);
  45.      ComPort_.Write(TmpStr);
  46.  
  47.      Result := newAlpha;
  48. end;

Следующий этап — написание программы для прошивки её в плату. Всё, что нам нужно, это принять данные с последовательного порта и обработать поступившую команду, включив вращение моторов танка в нужную сторону. Моторы включаются на определенное время и длительностью этого времени достигается движение на требуемое расстояние

В программе для приёма данных используется пин №9 (TxD). Соответственно 2й контакт СОМ порта материнской платы (RxD) необходимо подключить к пину №9 на Arduino. Ещё одно требование: нужно настроить СОМ порт материнской платы на скорость 9600 бод.

Для управления движением танка будем использовать два мотора — для левой и правой гусениц (разъемы M1 и M2 на Motor Shield). Для упрощения работы с моторами используем фреймворк AFMotor, легко подключаемый к нашему проекту одной строкой «#include «AFMotor.h»». Моторы обозначим цифрами 1 для левой и 2 для правой гусениц. В коде, приведенном ниже, видно, что работа с моторами не представляет собой ничего сложного.

Copy Source | Copy HTML

  1. #include "AFMotor.h"// библиотека для удобства обращения с движками
  2.  
  3. #define TX 9// пин на Arduino, куда подключен выход из COM-порта
  4.  
  5. // кодирование команд от джойстика
  6.  
  7. #define cmdForward 1
  8. #define cmdBackward 2
  9. #define cmdRapidLeft3
  10. #define cmdRapidRight4
  11. #define cmdLeft5
  12. #define cmdRight6
  13.  
  14. // скорости вращения движков
  15. // MaxSpeed - обычное движение
  16. // MinSpeed - скорость одной из гусениц при резком повороте
  17. // HalfSpeed - скорость одной из гусениц при плавном повороте
  18.  
  19. #define MaxSpeed 200
  20. #define MinSpeed 100
  21. #define HalfSpeed 150
  22.  
  23. // движение танка со скоростями левой и правой гусениц LTS и RTS
  24. // в направлении Direction
  25.  
  26. void MoveTank(byte LTS, byte RTS, byte Direction);
  27.  
  28. // чтение одного байта с COM-порта
  29. byte COMread();
  30.  
  31. // хранит команду, полученную с COM-порта
  32. byte Command =  0;
  33.  
  34. // текущее направление движения
  35. byte CurrentDirection = FORWARD;
  36.  
  37. // выбираем 1й и 2й разъемы на Motor Shield, куда подключены движки
  38. AF_DCMotor LeftTrack(1, MOTOR12_1KHZ);
  39. AF_DCMotor RightTrack(2, MOTOR12_1KHZ);
  40.  
  41. void setup()
  42. {
  43. LeftTrack.setSpeed(MaxSpeed);
  44. RightTrack.setSpeed(MaxSpeed);
  45. pinMode(TX, INPUT);
  46. }
  47.  
  48. void loop()
  49. {
  50. Command = COMread();
  51. switch (Command)
  52. {
  53. case cmdForward:
  54. MoveTank(MaxSpeed, MaxSpeed, FORWARD);
  55. CurrentDirection = FORWARD;
  56. break;
  57. case cmdBackward:
  58. MoveTank(MaxSpeed, MaxSpeed, BACKWARD);
  59. CurrentDirection = BACKWARD;
  60. break;
  61. case cmdRapidLeft:
  62. MoveTank(MinSpeed, MaxSpeed, CurrentDirection);
  63. break;
  64. case cmdRapidRight:
  65. MoveTank(MaxSpeed, MinSpeed, CurrentDirection);
  66. break;
  67. case cmdLeft:
  68. MoveTank(HalfSpeed, MaxSpeed, CurrentDirection);
  69. break;
  70. case cmdRight:
  71. MoveTank(MaxSpeed, HalfSpeed, CurrentDirection);
  72. break;
  73. default:
  74. LeftTrack.run(RELEASE); // останавливаем двигатели
  75. RightTrack.run(RELEASE);
  76. break;
  77. }
  78. }
  79.  
  80. void MoveTank(byte LTS, byte RTS, byte Direction)
  81. {
  82. LeftTrack.setSpeed(LTS);
  83. RightTrack.setSpeed(RTS);
  84. LeftTrack.run(Direction);
  85. RightTrack.run(Direction);
  86. }
  87.  
  88. byte COMread()
  89. {
  90. byte val =  0;
  91. while (digitalRead(TX));
  92. // ждем стартовый бит
  93. if (digitalRead(TX) == LOW)
  94. {
  95. delayMicroseconds(42);
  96. for (int k = 0; k < 8; k )
  97. {
  98. delayMicroseconds(84);
  99. val |= digitalRead(TX) << k;
  100. }
  101. // ожидание 9го бита и стопового
  102. delayMicroseconds(168);
  103. return val;
  104. }
  105. }

Осталось только прошить эту программку в Arduino (а делается это нажатием одной кнопки в интерфейсе Arduino IDE) и можно развлекаться, засылая танк в тыл врага :).

Заключение

Конечно, можно не ограничиваться просто пересылкой координат. Можно добавить интерактивности, используя для управления танком джойстик. А используя веб-камеру, прикрепленную к башне танка, можно наблюдать за движением, сидя за компьютером. Но для этого понадобится дополнительное ПО. Но даже это не делает программирование Arduino чем-то непосильным. Работать с такой платой просто, легко, а главное — доступно! Хотя нет, главное — это получение море удовольствия как от результата, так и от самого процесса!

Гид для новичков по fpv

Часть, установленная на боте называется FPV-передатчиком и камерой, а то, что у вас в руках, называется FPV-приёмником. Приёмник соединяется с любым экраном — будь то LCD, TV, TFT и т.д. Всё, что нужно сделать, так это вставить в него батарейки или подключить к источнику питания.

Дальность сигнала fpv

В проекте использовался недорогой модуль, способный работать на расстоянии до 1.5 — 2 км, но это относится к использованию девайса на открытом пространстве, если вы хотите получить сигнал большей силы, то купите передатчик большей мощности, например 1000mW. Примите на заметку, что мой передатчик имеет мощность всего в 200mW и он был самым дешевым, который я смог найти.

Драйвер двигателя 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В батарея.

Прошивка для ардуино.

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

Радиоуправляемый танк на arduino nano | каталог самоделок

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

Для ее изготовления необходимы следующие комплектующие:

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

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

Радиоуправляемый танк на Arduino NanoПервоочередной задачей является закрепление приемника от джойстика на шасси.

С этой целью демонтируйте крышку.

Радиоуправляемый танк на Arduino NanoОсвободить от крышки следует и редуктор.

Радиоуправляемый танк на Arduino NanoДалее проделайте на крышке два отверстия, используемые, в последующем, для монтажа посредством винтов.

Радиоуправляемый танк на Arduino Nano
Зажатые винтами гайки следует залить клеем для предотвращения их раскрутки в процессе езды и падения в редуктор.

Радиоуправляемый танк на Arduino Nano

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

Радиоуправляемый танк на Arduino Nano

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

Радиоуправляемый танк на Arduino Nano

Радиоуправляемый танк на Arduino Nano

Радиоуправляемый танк на Arduino Nano

Приведите после этого поворотную систему в исходное состояние.

Радиоуправляемый танк на Arduino Nano

Радиоуправляемый танк на Arduino Nano

Радиоуправляемый танк на Arduino Nano

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

Радиоуправляемый танк на Arduino Nano

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

Радиоуправляемый танк на Arduino Nano

Радиоуправляемый танк на Arduino Nano

Пришла очередь пистолета, предназначенного для дула танка. Отпилите его нижнюю часть.
Радиоуправляемый танк на Arduino Nano
На сервоприводе и пистолетном корпусе проделайте по одному отверстию. Используя винт, соедините пистолет с сервоприводом.
Радиоуправляемый танк на Arduino Nano
На сервоприводе и пистолетном корпусе проделайте по одному отверстию. Используя винт, соедините пистолет с сервоприводом.
Делаем радиоуправляемый танк на Arduino Nano - Своими руками

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

Радиоуправляемый танк на Arduino Nano

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

Радиоуправляемый танк на Arduino Nano

Осуществите программирование имеющейся у вас платы Arduino Nano.
Радиоуправляемый танк на Arduino Nano
Следуя приведенной ниже схеме, произведите сборку оставшихся компонентов устройства.

Радиоуправляемый танк на Arduino Nano

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

Установите на них предназначенные для аккумуляторов отсеки.

Радиоуправляемый танк на Arduino NanoС помощью термоклея присоедините лазер к дулу.

Радиоуправляемый танк на Arduino NanoРадиоуправляемый танк готов к эксплуатации.

,

Сборка

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

Схема подключения

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

В списке показаны номера пинов ардуино и их назначение. Все прокомментировано. Контакты управления движением и башней со стволом подключаются напрямую от мостов, никакого дополнительного обвеса не требуется. Подключение аналогового входа для измерения напряжения необходимо выполнять через резистивный делитель так как бортовое напряжение ардуины составляет ПЯТЬ ВОЛЬТ!!!

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

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

Танк кв-1 с радиоуправлением на arduino #1 | пелектроника

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

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

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

Шаг 1: инструмент и материалы

Большинство запчастей я покупаю в местных магазинах для хобби, остальное нахожу онлайн — просто ищите предложения с лучшей ценой. Я использую много решений от Tamiya и моя инструкция написана с учётом этой особенности.

Запчасти и материалы я покупал в Gearbest — на тот момент у них была распродажа.

Нам понадобятся:

  • клон Ардуино УНО R3
  • Плата Pololu Dual VNH5019 Motor Shield (2x30A)
  • Пины-папы
  • 4 распорки
  • Винты и гайки
  • Модуль передачи сигнала (трансмиттер) 2.4 Ghz — читайте подробнее в шаге 13
  • Ресивер 2.4 Ghz минимум на два канала
  • 2 моторчика Tamiya Plasma Dash / Hyper dash 3
  • Набор коробки передач Tamiya Twin Motor Gearbox (стоковые моторчики в комплекте)
  • 2 универсальных платы Tamiya
  • набор гусениц и колес Tamiya
  • 3 литий-полимерных батарейки 1500mAh
  • камера с видом от первого лица с поддержкой удалённого управления направлением и зумом
  • трансмиттер и ресивер данных для FPV 5.8Ghz 200mW
  • Бутылка суперклея
  • Горячий клей

Инструмент:

  • Мультитул
  • Набор отвёрток
  • Дремель

Шаг 13: контроллер

На рынке есть разные типы контроллеров для радиоуправляемых игрушек: для воды, земли, воздуха. Они также работают на различных частотах: AM, FM, 2.4GHz, но, в конце концов, все они остаются обычными контроллерами. Я точно не знаю название контроллера, но знаю, что он используется для воздушных дронов и имеет больше каналов по сравнению с наземным или водным.

На данный момент я использую Turnigy 9XR Transmitter Mode 2 (No Module). Как вы видите, в названии говорится, что он безмодульный, это означает, что вы сами выбираете, какой модуль связи 2.4GHz в него встроить. На рынке есть дюжины брендов, у которых есть свои особенности использования, управления, расстояния и другие разные фишки.

Сейчас я использую FrSky DJT 2.4Ghz Combo Pack for JR w/ Telemetry Module & V8FR-II RX, который стоит дороговато, но просто посмотрите на его спецификацию и плюшки, тогда цена покажется не такой уж и большой за всё это добро. Плюс модуль идёт сразу с ресивером!

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

Совет: если вы новичок, то обратитесь за помощью в местные хобби-магазины или найдите группы энтузиастов-радиолюбителей, потому что этот шаг — не просто шутка и вам нужно будет выложить существенную сумму денег.

Шаг 2: сборка парной коробки передач

Время для распаковки коробки передач. Просто следуйте инструкции, и всё будет в порядке.

Важная заметка: используйте соотношение шестеренок 58:1!!!

Советы:

  • смазывайте шестерёнки перед сборкой коробки, а не после
  • не забудьте о металлических спейсерах, иначе коробка будет скрипеть
  • используйте формат шестеренок 58:1, он быстрее, чем 204:1

Шаг 3: улучшаем моторчики

Коробка передач поставляется с моторчиками, но, по моему мнению, они очень медленные. Поэтому я решил использовать в проекте моторчики Hyper dash, вместо Plasma Dash, которые потребляют больше энергии.

Тем не менее, моторчики Plasma Dash являются самыми быстрыми в серии моторчиков Tamiya’s 4WD. Моторчики стоят дорого, но вы получите лучший продукт за эти деньги. Эти моторчики с углеродным покрытием вращаются с частотой 29000 оборотов в минуту на 3V и 36000 оборотов в минуту на 7V.

Моторчики рассчитаны на работу с источниками питания на 3V и увеличение напряжения, хотя и повышает производительность, но снижает их срок службы. С драйвером Pololu 2×30 Motor Driver и двумя литий-полимерными батарейками, программа в Ардуино должна быть настроена на максимальную скорость 320/400, вскоре в шаге с кодом вы выясните что это значит.

Шаг 4: драйверы моторчиков

Я очень долго увлекаюсь робототехникой и могу сказать. что лучшим драйвером двигателей является Pololu Dual VNH5019. Если дело касается мощности и эффективности, то это лучший вариант, но когда мы говорим о цене — он явно не наш друг.

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

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

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

https://www.youtube.com/watch?v=HhkMlegQCG8

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

Оцените статью
Радиокоптер.ру
Добавить комментарий