Как держать форму. Массаж. Здоровье. Уход за волосами

Строим роботанк с управлением по Wifi, камерой, пушкой, блекджеком и т.д. Arduino танк с bluetooth управлением Arduino танк с bluetooth управлением — сборка


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лазер приклеиваем к дулу термоклеем.

Наш радиоуправляемый танк готов.

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

Материалы и инструменты:
- Шасси для танка
- Arduino Uno
- Перемычки и макетная плата
- Драйвер двигателя интегральный SN754410NE
- Обычный сервопривод
- Дальномер ультразвуковой
- Батарея 9В с разъёмом для неё
- Батарейки типа D
- USB кабель для Arduino
- Основа для шасси
- Отвёртки
- Термопистолет и клей для него
- Паяльник и припой

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

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

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

Шаг третий. Установка дальномера.
Ультразвуковой датчик позволяет роботу избегать препятствий на его пути при движении. Датчик расположен на стандартном сервоприводе, и будет установлен на передней части робота. В тот момент когда в пределах 10 см робот замечает препятствие, сервопривод начнёт поворачиваться в обе стороны, тем самым ища проход. Arduino считывает информацию с датчика и решает какая сторона более благоприятна для дальнейшего движения.
Первым делом к датчику прилепляют сервопривод. Сервопривод автор закрепляет так чтоб он мог повернуться только на 90 градусов в каждую сторону, иначе говоря, полный оборот сервопривода составит 180 градусов.

Датчик имеет три контакта GND, сигнал и 5В. Питание 5В подключают к питанию 5В Arduino, GND к GND, а сигнал к 7 контакту Arduino.

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

Шаг пятый. Сборка робота.
После завершения всех предыдущих шагов настало время собрать все детали вместе. В первую очередь Arduino крепится на основу танка. После этого, на переднюю часть робота с помощью термоклея прикрепляют ультразвуковой дальномер. Затем, автор закрепляет батареи рядом с 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 градусов.
Программу можно скачать ниже. Вы можете модифицировать и дополнять её.

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

UPD: добавлено видео.


Для начала маленькое видео для привлечения внимания. Звук идет из колонки танка.

С чего все начиналось

Давным-давно была у меня мечта сделать робота на гусеничном шасси, которым можно было бы удаленно рулить. Основной проблемой было отсутствие непосредственно гусеничного шасси. В конце концов я уже решился купить радиоуправляемый танк на разборку, но мне повезло, в магазине среди хлама нашелся танк Snow Leopard (Pershing) - USA M26 с погоревшей электроникой, но полностью исправной механической частью. Это было ровно то, что нужно.

Вдогонку к шасси были докуплены два регулятора напряжения для коллекторных двигателей, штатив для камеры из двух сервоприводов, веб-камера с аппаратной поддержкой mjpeg и внешняя WiFi карточка TP-LINK TL-WN7200ND. Чуть позже к списку устройств добавились портативная колонка, USB звуковуха Creative SoundBlaster Play и простенький микрофон, а также пара USB хабов, чтоб все это подключить к модулю управления, которым стал Raspberry Pi. Башня с танка была демонтирована, рулить ею было очень неудобно, так как вся штатная механика была построена на обычных двигателях без обратной связи.

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

Питание и проводка


В батарейный отсек я запихал самую большую Li-Po батарею, которая туда влезла. Ей оказалась двухбаночная батарейка на 3300 mAh в твердом корпусе, которая обычно используется в модельках машин. Паять мне было лень, поэтому для всей коммутации была использована стандартная макетная плата с шагом 2.54. Позже появилась вторая на верхней крышке и шлейф, который их соединял. На каждый из двух двигателей у меня был свой регулятор напряжения, который в виде бонуса выдает стабилизированное питание около 5.6 вольт. С одного регулятора был запитан Raspberry и WiFi карта, питание со второго пошло на сервоприводы и USB хаб с периферией.

Надо заставить это двигаться

Надо было как-то это завести. Raspberry был выбран не случайно. Во-первых он позволяет поставить нормальный полноценный линух, а во-вторых имеет кучу GPIO ног, которые в том числе могут генерировать импульсный сигнал для сервоприводов и регуляторов хода. Генерировать такой сигнал можно с помощью утилиты ServoBlaster . После запуска она создает файл /dev/servoblaster, в который можно писать что-то типа 0=150, где 0 - номер канала, а 150 - длина импульса в десятках микросекунд, то есть 150 - это 1.5 миллисекунды (у большинства сервоприводов диапазон значений 700-2300 мс).
Итак, подключаем регуляторы на 7 и 11 GPIO пины и запускаем servoblaster командой:

# servod --min=70 --max=230 --p1pins=7,11
Теперь, если записать в /dev/servoblaster строки 0=230 и 1=230, то танк рванет вперед.

Наверное, для первого раза хватит. Если статья понравится, буду потихоньку писать детали в следующих постах. И еще немного фоток напоследок, а также свежеснятое видео. Правда, качество получилось не очень, так что у эстетов заранее прошу прощения.