Desk Pet´s TankBot, превращение в робота

Обсуждаем рождающиеся мысли и результаты экспериментов.

Desk Pet´s TankBot, превращение в робота

Сообщение Scorpio » 09 авг 2013, 00:02

TB_top.jpg

Собственно, моему критерию робота эта милая игрушка уже соответствует: имеет средства для получения информации (кнопка, ИК приемник), средства ее программной обработки, имеет средства воздействия (движение, звук, свет), и не является бытовой техникой. :)
К тому же это почти тот робот, который «размером со спичечный коробок».
TB_front.jpg
TB_back.jpg

ТТХ:
Заряжается через USB 30 минут,
Зарядки хватает на 20 минут движения,
TB_USB.jpg

В комплекте преобразователь кодированного звука в ИК-излучение, вставляющийся в разъем для наушников и, в совокупности со смартфоном или ПК, представляющий собой ПДУ танчика.
IR_adapter.jpg

Что умеет:
У базовой модели (зеленый,оранжевый, голубой, золотой,серый) есть 3 режима работы, выбираемых единственной кнопкой управления:
1. «Лабиринт» - Машинка урча, с деловым видом, объезжает препятствия, стараясь продвигаться вперед.
2. «Прогулка» - Тыкмыкается из стороны в сторону, помигивая и посвистывая. Всем своим видом изображая беспечность. Однако реагирует на препятствия и старается гулять по кругу, чтобы не сразу навернуться. Игрушка всетаки позиционируется, как настольная.
3. Режим дистанционного управления. Ожидает ИК команды управления движением. Бегает довольно шустро. На препятствия не реагирует, т.е. прет дуром. Команд для управления звуком и светом вроде нет, а жаль. Если команда не поступает в течении минуты – засыпает, изображая храп. Машинки разного цвета реагируют только на «свои» комманды. Т.е. надо соответственно настраивать свой пульт управления.
У продвинутой модели, с «пушкой» (Синий, зеленый, серый, красный, белый) существует еще и четвертый режим - «Танковый бой». В этом режиме можно устраивать сражения между танчиками разных цветов. На ПУ появляется дополнительная кнопка управления – «Огонь». Танчик (хотя что это за танк без ствола!?) мне достался без этой опции, но суть ее в следующем: по команде «огонь», Танкбот генерирует код выстрела дополнительным ИК светодиодом. Если он стоит более-менее напротив танка противника, то попадает в зону его ИК приемника. И противник фиксирует попадание и изображает подбитость. После 3-х попаданий танк выключается. Благодаря тому, что танки разных цветов имеют разные коды команд управления, игроки не мешают друг другу.

Что внутри:
2 микромоторчика с редукторами обеспечивают вращение гусениц. Т.к. каждый из моторов может стоять либо вращаться вперед или назад, имеем 8 возможных вариантов движения. Регулировка скорости моторчиков не предусмотрена.
TB_Mot.jpg
TB_red.jpg

Литиевый аккумулятор на 3.7V, 70 mAh,
TB_Acc.jpg

USB папа для зарядки,
Динамик,
TB_desarm.jpg

И, собственно, платка с электроникой.
TB_Din.jpg

Выковыривать я ее не стал, т.к. добрые люди уже сделали это за меня и выложили качественные фотки.
Единственным датчиком является TSOP, использующийся как приемник комманд от ИК пульта, так и как детектор препятствий (принимает отраженный сигнал от ИК- излучателей, установленных в «фарах» танчика.
Еще один ИК- светодиод , по центру, добавлен в «версиях», способных вести «танковый бой».
Два голубых глазка – светодиода помогают в выражении эмоций.
МК без опозновательных знаков, кучка транзисторов и прочих конденсаторов.
Цветозависимость малышей определяется комбинацией перемычек на плате. Т.е, чтобы получить танк с пушкой из обычного, достаточно запаять светодиод и перемычки.

На кой он нам?
Под «нам» я подразумеваю сообщество робостроителей, а вовсе не детей и скучающих офисных работников, для которых эта игрушка предназначена. Действительно, робот то он робот, но под капот к нему не залезть, программу не переделать, датчиков не добавить.
Тут есть 2 варианта:
1. Выбросить к едреной фене всю штатную требуху, кроме моторов и акума. Вставить что-нибудь типа ентого и насладится результатом. Но, тут возникают вопросы о наличии свободного места в корпусе, хилого питания и т.д.
2. Наладить автоматическое управление малышом с помощью ПК или смартфона. А что? Раз управляется, фактически, звуком, то программку управления навалять проще паренной репы. А в качестве обратной связи использовать камеру с видом сверху. Машинка то маленькая. Значит, смартфон, например, при хорошем разрешении может охватить достаточно большое поле деятельности для танкбота.
Второй вариант мне кажется проще реализуем и дает возможность пофантазировать.

Вот, например, такой концепт игры:
Белая игровая площадка размером примерно 1х0.5 метра. С бортиками и 2-мя воротами. Над площадкой смартфон, закрепленный на штативе. 2 танкбота, помеченные специальными визуальными метками, пытаются загнать шайбу в ворота. Управление каждым может быть как автоматическим, так и ручным. В автоматическом режиме программа управления имеет широкие возможности настройки стратегии. Так же программа выполняет роль арбитра, фиксируя голы, положения вне игры и т.д. После периода в 10 минут, боты разъезжаются заряжаться каждый в свои ворота, которые являются одновременно и зарядной станцией.
В результате из недорогой игрушки получаем широкое поле для творческой деятельности.
Эх! Мне бы времени свободного побольше, сам бы занялся. Заодно бы и разобрался, как работать с изображением в Андроиде.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Desk Pet´s TankBot, превращение в робота

Сообщение AndreiSk » 09 авг 2013, 06:12

Да, неплохая игрушка. Для нас было бы интересно иметь открытое API для управления
скажем с ПК. Есть там такое?
Поглядел, эти tankbot на амазоне от 10 до 50 баксов...
Я тут подумал, а у меня же есть аналог, правда за чуть большие деньги.
Идея в том чтобы скомбинировать
4 мотора, двухканальный драйвер двигателей с управлением по UART,
WiFi на UART модуль, зарядку для акка и сам акк.
Если ТС разрешит, могу фото показать и видео. Такой робот мне удобен тем,
что он включенный может часами на поле стоять, акка хватит на целый день,
и при этом робот маленький (10x10x8см).
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Desk Pet´s TankBot, превращение в робота

Сообщение Scorpio » 09 авг 2013, 10:58

AndreiSk писал(а):Если ТС разрешит, могу фото показать и видео.

Конечно. Ждем с нетерпением!

Добавлено спустя 4 минуты 6 секунд:
AndreiSk писал(а):Да, неплохая игрушка. Для нас было бы интересно иметь открытое API для управления
скажем с ПК. Есть там такое?

API нет, но управлять с ПК через ИК адаптер никто не мешает.

Добавлено спустя 3 часа 26 минут 47 секунд:
Забыл указать размеры Танкбота: 6 х 5.5 х 6 См (Д х Ш х В)

Добавлено спустя 39 минут 50 секунд:
Блин! Совсем забыл, что на плате танкбота выведены 4 дорожки с названиями VDD, SDA, SDK, GND. Что очень смахивает на порт I2C. (Слева на фотке)
I2c.jpg

Про его назначение в сети ничего не нашел. Надо будет пощупать осциллографом на досуге.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Desk Pet´s TankBot, превращение в робота

Сообщение elmot » 09 авг 2013, 18:32

[[Blutle]] Влезет?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Desk Pet´s TankBot, превращение в робота

Сообщение Aseris » 09 авг 2013, 22:27

VDD, SDA, SDK, GND
Ет на програмирование разьем...
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

Re: Desk Pet´s TankBot, превращение в робота

Сообщение Scorpio » 10 авг 2013, 00:57

Скорее всего платки клепаются уже прошитые. Тем более, что это только разводка под разъем. Возможно разработчики заложили возможности расширения. Там еще подтягивающие резисторы не запаяны.
elmot писал(а):[[Blutle]] Влезет?

Надо будет померить, а заодно померить ток потребления штатного контроллера в разных режимах.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Desk Pet´s TankBot, превращение в робота

Сообщение AndreiSk » 10 авг 2013, 01:32

Выкладываю фото и видео
в_доке.PNG
В доке
в_доке.PNG (187.38 КиБ) Просмотров: 5432

в_доке2.PNG
В доке 2
в_доке2.PNG (212.41 КиБ) Просмотров: 5428

спереди.PNG
Спереди
спереди.PNG (79.32 КиБ) Просмотров: 5439

робот.PNG
Сбоку
робот.PNG (72.34 КиБ) Просмотров: 5440


Размер 10x10x6 см. Видео покатушек (то что нашел из архива)




Набор для сборки выглядит так:
a) механика
4x Mini Metal Gearmotor 100:1 ( https://www.sparkfun.com/products/8912 )
4x Wheel 42x19mm ( https://www.sparkfun.com/products/8899 )
4x Pololu Mini Metal Gearmotor Bracket Pair ( http://www.pololu.com/catalog/product/1080 )
2x текстолитовые пластины верхняя (10x10см) и нижняя крышки (7x10) :)
4x столбика для соединения верхней и нижней пластин

б) электроника
1x Pololu TReX Jr Dual Motor Controller DMC02 ( http://www.pololu.com/catalog/product/767 )
1x WiFi UART ( http://www.ebay.com/itm/UART-WiFi-Serve ... 1e64edb34f )
1x PicoUPS-120 ( http://www.ebay.com/itm/PicoUPS-120-12V ... 2c54c81fc8 )
1x DC-DC 3.3V ( http://www.dimensionengineering.com/products/de-sw033 )
1x 3S 2200 ( http://www.hobbyking.com/hobbyking/stor ... P_30C.html )
2x выключатель на вход UPS от батареи и на выход UPS к электронике
1x светодиод на вход UPS от зарядки.
1x вольтметр ( http://www.hobbyking.com/hobbyking/stor ... oduct=6589 )
Male/female JST 2pin для батарейки

Замечания
a) WiFi UART модуль мне показался тормознутым, по крайней мере ответ от модуля идет неспешно,
а отсылка на него быстро. Т.е. я отсылаю команду роботу, а ответ не жду..
И вообще, он от 3.3в питается, но его TTL дружит с драйвером двигателя
б) Пойдет любая другая батарейка от 1000мАч, например ( http://www.hobbyking.com/hobbyking/stor ... P_20C.html )
в) PicoUPS он вообще для LiPo не рассчитан (нет балансирных разьемов). Это как бы не хорошо,
батарейка может долго не прослужить. У меня на фотке батарейка пухленькая, 4 года ей уже.
Может от старости пучит ее, а может неправильно заряжается.. но в любом случае расходный материал,
заменил и работает дальше
г) моторы соединены параллельно, хотя они номинально на 6в, но от 12в они тоже резво бегают и пока
еще не сгорел ни один.
д) Есть особенность питания от UPS. У этого модуля есть вход от батареи и вход от внешнеого питания (зарядка),
и выход. Если робот стоит не в доке,
то на входе UPS от зарядки все равно будет напряжение, но это наводка от батарейки.
По яркости можно определить тыкнулся от в зарядку или нет. От зарядки светит ярче.

Управление роботом очень простое, нет никаких API.
Открываем порт 7020 по адресу 192.168.0.151 (конфигурится через настройку WiFi UART)
Посылаем команду из трех байт (команда и два параметра).
Стоп: { 0xD0, 0, 0 }
Движение
public Byte[] GetMotors(Int32 speed1, Int32 speed2) {
speed1 = Number.KeepRange(speed1, -127, 127);
speed2 = Number.KeepRange(speed2, -127, 127);
Byte dir1 = (Byte) (speed1 больше равно 0 ? 0x04 : 0x08);
Byte dir2 = (Byte) (speed2 больше равно 0 ? 0x02 : 0x01);
Byte cmd = (Byte) (0xD0 + dir2 + dir1);
Послать в порт: { cmd, (Byte) Math.Abs(speed2), (Byte) Math.Abs(speed1)) }
}
Скорость регулируется от - 127 до + 127 для каждого из каналов.
Как то так...
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Desk Pet´s TankBot, превращение в робота

Сообщение elmot » 10 авг 2013, 02:52

вайфай-уарт фтоппку, ставить роутер.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Desk Pet´s TankBot, превращение в робота

Сообщение Scorpio » 10 авг 2013, 03:46

AndreiSk писал(а):Выкладываю фото и видео

ну, по сравнению с танкботом, это внедорожник (у того просвет 2 мм) и другая весовая категория :)

Blutle в танкбот входит и выходит! Размер штатной платы 35х50 мм. Максимальный размер кабинки по высоте - 20мм.
Так что можно смело ставить.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Desk Pet´s TankBot, превращение в робота

Сообщение Scorpio » 15 сен 2013, 04:33

Появилось пару свободных часов, решил сделать собственный пульт управления для ТанкБота на Андроиде. Для отличия от существующих, навоял простенький скрипт голосового управления на Питоне:
Код: Выделить всё
#_*_ coding: utf-8 _*_
import android
import sys

droid = android.Android()
droid.vibrate()
dir='/sdcard/sl4a/scripts/TankBot/TankbotCmd/'
droid.makeToast('Жду команду')

while (1):
  results = ""
  results = droid.recognizeSpeech("test",None,None)
  if (results.result==u'стой'):
    droid.mediaPlay(dir+'Stop.wma')
  elif (results.result==u'вперед'):
    droid.mediaPlay(dir+'Fvd.wma')
  elif (results.result==u'назад'):
    droid.mediaPlay(dir+'Bvd.wma')
  elif (results.result==u'влево'):
    droid.mediaPlay(dir+'Ll.wma')
  elif (results.result==u'вправо'):
    droid.mediaPlay(dir+'Rr.wma')
  elif (results.result==u'выход'):
    sys.exit('Bay!')
  droid.makeToast(results.result)

Скрипт не претендует на совершенство. По идее надо было задавать словари со сходными по звучанию словами. Гуглевская распознавалка всеже не идеальная. Иногда ошибается.
Про Python для Android можно почитать здесь и здесь.
Звуковые файлы комманд управления захватил аудиоредактором. Команда "стоп" повторяется 4 раза подряд для надежности в самом звуковом файле, остальные по 2.

Если у кого есть оранжевый таннчик, то в приложении архив с командами и скриптом :)
OrangeTankBot.zip
(47.5 КиБ) Скачиваний: 0
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке


Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron