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

Страницы: 1 2  ... 4  ОТВЕТИТЬ НОВАЯ ТЕМА
VampirBFW 2 дек 2014 в 13:57
Главный Сапиосексуал Япа.  •  На сайте 16 лет
Сообщений: 21 802
317
Всем привет. У меня таки возникло непреодолимое желание поделиться с миром своим достижением. Достижением является танк, который рулится по WiFi с геймпада, транслирует на пульт видео в реальном времени, передает с пульта и на пульт звук, а также имеет пушку с лазерным прицелом, из которой можно в кого-нибудь пострелять.

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

6 фото и несколько видео.

Строим роботанк с управлением по Wifi
Yap 27.04.2026 - 10:43
Продам слона  •  На сайте 21 год
Для начала маленькое видео для привлечения внимания. Звук идет из колонки танка.

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

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


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

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

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



Строим роботанк с управлением по Wifi
В батарейный отсек я запихал самую большую 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, то танк рванет вперед.

Подключаем камеру

Кататься взад-вперед было классно, но хотелось делать это хотя бы в соседней комнате, а в идеале вообще через интернет, поэтому надо было наладить видео в реальном времени. На просторах интернета нашелся простенький проект tinycamd. проект представляет собой сервис, который управляется по http, может делать скриншоты и менять настройки камеры. Не густо, но ничего лучше я не нашел, поэтому пришлось вспоминать С и дописывать то, чего не реализовал автор, а именно, трансляцию потока MJPEG по HTTP(кстати, как поделиться доработанным исходником с миром?). Здесь критически важно, чтобы JPEG приходил с самой камеры, процессора Raspberry на такое не хватит. В итоге я подключился к танку по ssh, открыл видеопоток через браузер, покатался по дому и был счастлив до тех пор, пока не просел канал. Было очень забавно сначала смотреть на застывший кадр, а потом получить все, что застряло в ускоренном режиме. Стриминг realtime видео через TCP — это зло.

Апгрейды, улучшения и т.п.

Далее шел долгий процесс написания серверной и клиентской части на Python'е c использованием библиотеки pygame для получения событий от геймпада, допиливание tinycamd, чтоб он посылал видео поток по UDP и установка камеры на штатив из сервоприводов, чтобы была возможность оглядеться. После чего танк отправился в первое путешествие по офису за пределы прямой видимости. И в этот момент пришло понимание, что хочется не только смотреть видео, но и иметь двусторонний аудио канал, чтобы, например, попросить коллег открыть дверь или вызвать лифт.

Звук

Для воспроизведения звука была использована дешевая карманная USB колонка, купленная в супермаркете по акции. Она была подключена вместе с простеньким микрофоном через USB звуковуху. Для работы со звуком пригодилась библиотека pyalsaaudio. После допиливания сервера и клиента появилась возможность в процессе рассекания на танке говорить и слушать.

Свет

Следующей фичей оказалась фара. В какой-то момент стало понятно, что чувствительности камеры может легко не хватать и есть шанс заехать в темноту и не выехать. Первой идеей была инфракрасная подсветка. Была собрана линейка инфракрасных светодиодов, но, как показала практика, толку от них ноль. Светят очень плохо и мало. А готовые инфракрасные прожекторы требуют 12в питание (а у меня всего 2 банки, то есть 8в максимум), много жрут тока, громоздкие и стоят дорого. В итоге было решено перейти в видимый диапазон, были куплены два мощных белых SMD светодиода и линзы к ним. Для питания фары коллегами по работе был сотворен драйвер с регуляцией по току, который включался через полевой транзистор подачей единицы на GPIO ногу Raspberry. Отныне темные комнаты перестали быть препятствием.

Батарея, точнее уровень ее заряда

На всех этапах оставалось непонятным, сколько еще можно кататься, не убив батарейку (Li-Po нельза разряжать ниже чем 3.3в на банку). Я не нашел способа замерить напряжение с помощью GPIO ног Raspberry, поэтому в качестве измерителя поставил Arduino Nano, к которому на будущее сразу подключил LCD экран c I2C адаптером. Батарейка подключается через половинный делитель на аналоговую ногу Arduino, после чего остается только откалибровать показания. Arduino по традиции общается с основным модулем через COM порт, который у Raspberry также выведен на GPIO ноги.

Какой же танк без пушки

Одной из последних деталей танка стала пушка. Пушка была куплена там же, в магазине радиоуправляемых моделей в виде запчасти. Она, правда, предназначалась для другой модели танка, но суть ее от этого не изменилась. Пушка пневматическая, имеет двигатель, взводящий пружину поршня, и контакт, который замыкается при выстреле. От горизонтального поворота пушки я пока что отказался, чтоб не снести ей весь обвес, который прицеплен на верхнюю крышку, а для вертикального использовал мощный сервопривод. Чтоб было проще рулить, я сделал поворот пушки по синхронным с поворотом камеры. То есть куда смотрим (по вертикали), туда и стреляем. Для прицеливания на ствол пушки был примотан лазерный светодиод от указки. Чтоб лишний раз не тратить батарею и не светить лазером куда не надо, нужно было сделать пушку отключаемой. Процесс выстрела также не совсем прост. Надо включить питание двигателя и ждать замыкания контакта, после чего двигатель выключить. В итоге управление выстрелом и питанием сервы и лазера было повешено на ардуину, а сигнал для сервы генерирует Raspberry. Для двигателя пушки также пришлось проводить отдельный силовой провод и включать его постепенно, используя ШИМ, так как иначе прилетает помеха по питанию и Arduino уходит в ребут. Для подачи снарядов, то есть шариков, была использована коробочка от драже TicTac с дыркой в дне.

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

Строим роботанк с управлением по Wifi
5.

Строим роботанк с управлением по Wifi
6.

Строим роботанк с управлением по Wifi
И несколько видео с данным девайсом
Включение

Подсветка

Пушка

Опять пушка

Управление


По традиции было скомунизженно с Любимой хабры.
Все комментарии:
komplekt2000 2 дек 2014 в 14:04
Ярила  •  На сайте 11 лет
104
ТС зелень, теперь мне объясните накуя нам Сколково. Вот кому гранды выдовать надо.
nalik1209 2 дек 2014 в 14:05
Умберто  •  На сайте 13 лет
3
Тс, дык ты еще и женского пола?(или кто танк включает?)
Ежели так-выньте мну из под стола!!!
Браво!!!

Это сообщение отредактировал nalik1209 - 2 дек 2014 в 14:05
VampirBFW автор 2 дек 2014 в 14:06
Главный Сапиосексуал Япа.  •  На сайте 16 лет
34
Цитата (nalik1209 @ 2.12.2014 - 14:05)
Тс, дык ты еще и женского пола?(или кто танк включает?)
Ежели так-выньте мну из под стола!!!
Браво!!!

Не надо разговаривать со мной Я КОПИПАСТА!
REMember 2 дек 2014 в 14:07
Ворчун  •  На сайте 13 лет
2
офигенно! Но надо в нормальную капсулу запихать кишки.
+P.S> мне одному кажется или это можно весьма неплохо продавать?
Liam02 2 дек 2014 в 14:07
Ярила  •  На сайте 12 лет
0
отдача пушки танк не переворачивает? ))

А так то классная задумка, вон в 404, механизированные тележки (типа их роботы) с проводами перед сапером ползут, а тут прям автономный робот!

Петрушка!

Это сообщение отредактировал Liam02 - 2 дек 2014 в 14:09
Леснид 2 дек 2014 в 14:09
я вам приглючился  •  На сайте 12 лет
3
штука конечно прикольная, но не вижу особого смысла использовать землянику. реализовать те же возможности и оставить запас для хотелок на будущее можно было на Arduino, или ещё лучше спаять контроллер на базе ATMega128.
nalik1209 2 дек 2014 в 14:09
Умберто  •  На сайте 13 лет
52
Бля, кота наверное гонять охуенно!!!
mixasRND 2 дек 2014 в 14:10
Ярила  •  На сайте 14 лет
0
моя мечта!
DmitrySistor 2 дек 2014 в 14:13
Шутник  •  На сайте 15 лет
4
дистанционно управляемая машинка???
всего лишь?
а распознавалку образов, чтоб сама ориентировалась?

"Здесь критически важно, чтобы JPEG приходил с самой камеры, процессора Raspberry на такое не хватит."

на меге 8-й простейшее распознавание реализуют, а тут Raspberry с 700Мгц!

ардуина полностью справляется с твоими задачами!

Это сообщение отредактировал DmitrySistor - 2 дек 2014 в 14:14
Diesel38 2 дек 2014 в 14:15
Шутник  •  На сайте 12 лет
4
Так вот ты какая армата biggrin.gif
цурюкиванов 2 дек 2014 в 14:15
дэрвиш  •  На сайте 12 лет
0
держи лаврушку bravo.gif
Барбитурат 2 дек 2014 в 14:15
Приколист  •  На сайте 19 лет
0
Особливо порадовала коробочка от конфет "Tic-Tac". Походу приспособлена под бункер для "снарядов"
globus450000 2 дек 2014 в 14:22
Шутник  •  На сайте 17 лет
1
ЗЕЛЕНЬ!!!!

Строим роботанк с управлением по Wifi
Lyaomba 2 дек 2014 в 14:25
Приколист  •  На сайте 12 лет
0
Браво!
Теперь Армату без экипажа сделают.
Admt 2 дек 2014 в 14:30
Приколист  •  На сайте 12 лет
0
это ж волшебство какое-то :) Помимо прямых рук нужен и мозг многоядерный походу
marselio 2 дек 2014 в 14:40
Шутник  •  На сайте 12 лет
3
Такой хорошо отправить вместо себя к клиенту, чтобы на месте осмотреться, проверить, правильно ли воткнуты кабеля или комп перезагрузить...
VampirBFW автор 2 дек 2014 в 14:51
Главный Сапиосексуал Япа.  •  На сайте 16 лет
8
Цитата (marselio @ 2.12.2014 - 14:40)
Такой хорошо отправить вместо себя к клиенту, чтобы на месте осмотреться, проверить, правильно ли воткнуты кабеля или комп перезагрузить...

А если клиент ебанутый, то можно его из пушки пулькой окуячить.
Понравился пост? Ещё больше интересного в ЯП-Телеграм и ЯП-Max!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 32 321
0 Пользователей:
Страницы: 1 2  ... 4  ОТВЕТИТЬ НОВАЯ ТЕМА

 
 

Активные темы



Наверх