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

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (4) [1] 2 3 ... Последняя »  К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
VampirBFW
2.12.2014 - 13:57
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
317
Всем привет. У меня таки возникло непреодолимое желание поделиться с миром своим достижением. Достижением является танк, который рулится по WiFi с геймпада, транслирует на пульт видео в реальном времени, передает с пульта и на пульт звук, а также имеет пушку с лазерным прицелом, из которой можно в кого-нибудь пострелять.

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

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

Строим роботанк с управлением по Wifi
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
VampirBFW
2.12.2014 - 13:57
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Для начала маленькое видео для привлечения внимания. Звук идет из колонки танка.

 
[^]
VampirBFW
2.12.2014 - 13:58
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
С чего все начиналось

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


Строим роботанк с управлением по Wifi
 
[^]
VampirBFW
2.12.2014 - 13:58
Статус: Offline


Главный Сапиосексуал Япа.

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

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

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



Строим роботанк с управлением по Wifi
 
[^]
VampirBFW
2.12.2014 - 13:59
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
В батарейный отсек я запихал самую большую 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 с дыркой в дне.

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

Это сообщение отредактировал VampirBFW - 2.12.2014 - 14:00

Строим роботанк с управлением по Wifi
 
[^]
VampirBFW
2.12.2014 - 14:01
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
5.

Строим роботанк с управлением по Wifi
 
[^]
VampirBFW
2.12.2014 - 14:01
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
6.

Строим роботанк с управлением по Wifi
 
[^]
VampirBFW
2.12.2014 - 14:03
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
И несколько видео с данным девайсом
Включение

Подсветка

Пушка

Опять пушка

Управление


По традиции было скомунизженно с Любимой хабры.
 
[^]
komplekt2000
2.12.2014 - 14:04
104
Статус: Offline


Ярила

Регистрация: 5.06.14
Сообщений: 1824
ТС зелень, теперь мне объясните накуя нам Сколково. Вот кому гранды выдовать надо.
 
[^]
nalik1209
2.12.2014 - 14:05
3
Статус: Offline


Умберто

Регистрация: 18.09.12
Сообщений: 1810
Тс, дык ты еще и женского пола?(или кто танк включает?)
Ежели так-выньте мну из под стола!!!
Браво!!!

Это сообщение отредактировал nalik1209 - 2.12.2014 - 14:05
 
[^]
VampirBFW
2.12.2014 - 14:06
34
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Цитата (nalik1209 @ 2.12.2014 - 14:05)
Тс, дык ты еще и женского пола?(или кто танк включает?)
Ежели так-выньте мну из под стола!!!
Браво!!!

Не надо разговаривать со мной Я КОПИПАСТА!
 
[^]
REMember
2.12.2014 - 14:07
2
Статус: Offline


Ворчун

Регистрация: 26.05.12
Сообщений: 353
офигенно! Но надо в нормальную капсулу запихать кишки.
+P.S> мне одному кажется или это можно весьма неплохо продавать?
 
[^]
Liam02
2.12.2014 - 14:07
0
Статус: Offline


Ярила

Регистрация: 2.07.13
Сообщений: 1093
отдача пушки танк не переворачивает? ))

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

Петрушка!

Это сообщение отредактировал Liam02 - 2.12.2014 - 14:09
 
[^]
Леснид
2.12.2014 - 14:09
3
Статус: Offline


я вам приглючился

Регистрация: 16.01.14
Сообщений: 817
штука конечно прикольная, но не вижу особого смысла использовать землянику. реализовать те же возможности и оставить запас для хотелок на будущее можно было на Arduino, или ещё лучше спаять контроллер на базе ATMega128.
 
[^]
nalik1209
2.12.2014 - 14:09
52
Статус: Offline


Умберто

Регистрация: 18.09.12
Сообщений: 1810
Бля, кота наверное гонять охуенно!!!
 
[^]
mixasRND
2.12.2014 - 14:10
0
Статус: Offline


Балагур

Регистрация: 22.07.11
Сообщений: 984
моя мечта!
 
[^]
DmitrySistor
2.12.2014 - 14:13
4
Статус: Offline


Шутник

Регистрация: 7.05.10
Сообщений: 0
дистанционно управляемая машинка???
всего лишь?
а распознавалку образов, чтоб сама ориентировалась?

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

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

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

Это сообщение отредактировал DmitrySistor - 2.12.2014 - 14:14
 
[^]
Diesel38
2.12.2014 - 14:15
4
Статус: Offline


Шутник

Регистрация: 5.12.13
Сообщений: 27
Так вот ты какая армата biggrin.gif
 
[^]
цурюкиванов
2.12.2014 - 14:15
0
Статус: Offline


дэрвиш

Регистрация: 20.11.13
Сообщений: 216
держи лаврушку bravo.gif
 
[^]
Барбитурат
2.12.2014 - 14:15
0
Статус: Offline


Приколист

Регистрация: 19.04.07
Сообщений: 233
Особливо порадовала коробочка от конфет "Tic-Tac". Походу приспособлена под бункер для "снарядов"
 
[^]
globus450000
2.12.2014 - 14:22
1
Статус: Offline


Шутник

Регистрация: 30.12.08
Сообщений: 71
ЗЕЛЕНЬ!!!!

Строим роботанк с управлением по Wifi
 
[^]
Lyaomba
2.12.2014 - 14:25
0
Статус: Offline


Приколист

Регистрация: 27.02.14
Сообщений: 275
Браво!
Теперь Армату без экипажа сделают.
 
[^]
Admt
2.12.2014 - 14:30
0
Статус: Offline


Приколист

Регистрация: 31.10.13
Сообщений: 350
это ж волшебство какое-то :) Помимо прямых рук нужен и мозг многоядерный походу
 
[^]
marselio
2.12.2014 - 14:40
3
Статус: Offline


Шутник

Регистрация: 12.04.14
Сообщений: 20
Такой хорошо отправить вместо себя к клиенту, чтобы на месте осмотреться, проверить, правильно ли воткнуты кабеля или комп перезагрузить...
 
[^]
VampirBFW
2.12.2014 - 14:51
8
Статус: Offline


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Цитата (marselio @ 2.12.2014 - 14:40)
Такой хорошо отправить вместо себя к клиенту, чтобы на месте осмотреться, проверить, правильно ли воткнуты кабеля или комп перезагрузить...

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


 
 



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






Наверх