12 декабря 2010 в 02:05

Nokia N900 + Q-steer = Fun

Бродя однажды по рунетовским просторам, наткнулся я как-то раз на самый банальный блок яндекс.директа. Но что-то меня там заинтересовало, и попал я на некий сайт. Где торговали управляемыми машинками. Вроде бы ничего особенного, но в итоге это привело к довольно интересным вещам и к этому топику.

Называются эти машинки Takara-Tomy Q-Steer (известные так-же в США под именами Microsizers и ZipZap). Радикальное отличие машинок Q-steer (а именно ими торговали на том сайте) в том что они маленькие. Очень маленькие. Очень-очень. Длина 4 см, ширина 2.7 см, если быть точным. Но, не смотря на это, машинки полностью управляемые. Понимают команды вперёд-назад, влево-вправо. И ещё форсаж есть (!) А ещё интересный момент — канал управления — ИК. Инфракрасное излучение. Есть у них вроде машинки (чуть побольше размером, но ненамного) на радиоуправлении, но для моих надобностей они не подходят.

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

В Москве такие машинки найти не удалось, так что заказал на найденом сайте. Доставка заняла несколько дней, но меня в первый же день после заказа уволили с моей нынешней работы, так что в беготне оставшееся время до прибытия посылки пролетело очень быстро. Про unboxing рассказывать не буду — сорвал обёртку, разорвал пластик, достал машинку и пульт. Всё просто.



При первом личном контакте с машинкой испытал небольшой шок — «такая мелкая, неужели поедет?». Правда, сразу поехать не удалось — в комплекте не было батареек. А батарейки там под стать машинке — тоже мелкие, «часовые» LR44. Только через некоторое время, прочитав инструкцию и выяснив что машинку надо включить поворотом незаметного рычажка, оказалось что батарейки есть и в пульте и в машинке. Так что можно гонять.

Ну, я и погнал :-) Первый опыт микровождения запечатлел на набольшом видеоролике.



В общем, машинка идеальна для офиса — можно прекрасно гонять по столу, по стульям, по ноутбуку… Короче, даже по ободу унитаза можно гонять.



Но ручное управление машинкой — это банально и неинтересно. Хочется управления с чего-нибудь айтишного (не люблю я это слово, но всё-таки приходится привыкать). Я уже успел узнать что для Sony PSP есть софтина для управления машинками Q-steer. Однако работает только на старых моделях PSP, где есть ИК. У меня же PSP Slim, а там ИК-порта нет на борту :-(

Из гаджетов с ИК-портом под рукой у меня сейчас есть только Nokia N900. Правда, там ИК-порт немного кастрированый — умеет только передавать сигналы, но не получать. Но для управления машинкой принимать-то ничего и не надо, так что N900 подходит. Готовых программ для N900, которые могли бы управлять моей машинкой, нигде не нашлось, так что пришлось делать самому.

Весь процесс написания софтинки состоял из этапов:
  • Определение управляющих ИК-сигналов из родного пультика машинки
  • Воспроизведение управляющих ИК-сигналов на N900
  • Написание скрипта для N900, преобразующего какие-то действия с телефоном в управляющие сигналы для машинки
  • Распитие бутылочки нефильтрованного
  • Фотографирование и видеосъёмка всего ездящего и управляющего безобразия
  • Торжественная запись в блоге о том что всё заработало
  • Рассылка ссылки на запись всем знакомым дабы похвастаться




В итоге эти этапы затянулись на два дня (а точнее, на две ночи). Первая была посвящена попыткам раскодировки ИК-сигналов пульта. У меня на десктопе давно уже используется самодельный ИК-приёмник для WinLIRC, вот для приёма сигналов пульта он подошёл идеально. Но всплыла проблемка — WinLIRC не хотел обучаться командам пульта. Перепробовал все варианты настроек — не помогло. И RAW-коды тоже не захотели записываться, так что пришлось вручную выдирать их из тестового окна приёма RAW-сигналов.

Немного не айс, но удалось поймать все нужные коды для основных типов движения. Только вот кнопочку форсажа я не использовал. Сведение всех кодов в один настроечный файл привёл к появлению вот такого — файл настроек для пульта Q-steer. Правда, полностью настройки есть только для диапазона B, в диапазон A я пока не лез, у меня ведь всего одна машинка :-)

В общем, это и была первая часть сабжа после равенства — «сначала Fuck». Ибо потрахался с кодами реально. И ещё предстоит потрахаться — пока немного дёрганое управление получилось, надо ковырять дальше.

С воспроизведением полученных сигналов на N900 проблем не было. Ибо на этой мобило-таблетке стоит вполне себе обычный lirc, для которого очень даже подошёл сформированный мною файлик настроек пульта Q-steer. Осталось только подсунуть его лирцу.

В файл /etc/lircd.conf дописываем инклуд нашего файлика с конфигом (у меня он лежит в /home/user/MyDocs/DISTR/Q-STEER/qsteer)

include "/home/user/MyDocs/DISTR/Q-STEER/qsteer"

Рестартуем лирц. Само собой, это надо проделывать под рутом.

sudo gainroot
/etc/init.d/lirc restart

Итак, демон управления ИК-портом запущен, осталось чем-то передавать ему команды. И вообще, как будем управлять?

А управлять будем наклонами телефона. Зря что-ль в нём акселерометр есть? Наклоняем телефон сильно вперёд — машинка едет вперёд. Наклоняем слегка вперёд — едет назад. Наклоняем слегка назад — машинка останавливается. Почти то же самое с поворотами. Наклон влево — машинка влево, наклон вправо — машинка туда же. Почему было не сделать движение машинки назад при таком же наклоне телефона — просто сигнал ИК-передатчика телефона послабее чем у родного пульта, так что лучше чтоб ИК-светодиод был направлен в сторону машинки, а так получается только когда наклон телефона вперёд. Кстати, забегая вперёд — если телефон вертикально поставить — это выход из программы.

За основу получения координат поворота телефона взял довольно известный скрипт shake.py by Niklas Tanskanen. Для образца взаимодействия с lirc — скрипт некоего Blubbi с форума Maemo. Я раньше ни разу не сталкивался с Python, а тут вот хороший повод появился попробовать покодить на этом языке. Кстати, ппц как непривычно после C/C++, PHP, JavaScript, etc. IMHO, особенно дико условия IF выглядят :-) Да просят меня питоновцы.

Короче, что в итоге получилось? А получилось вот что.

Скрипт qsteer.py — управление машинкой Q-steer с таблетки Nokia N900 путём издевательств над акселерометром.

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


Движение пока дёрганое, эт надо управляющие сигналы корректирвать. И мелкие косяки устранить (иногда повторяется посылка испульсов, когда они уже посылаются, из-за этого в конце ролика сообщение об ошибке видно). Но в целом — всё работает!!!

Осталось сделать обучение маршруту — чтоб можно было задать команды и телефон сам бы в цикле их машинке скармливал. Но это уже детали, доделать труда не составит.

Нид хелп!
Управление RAW кодами отстой. Ибо рывками ездит. Нужно эмулировать нормальные управляющие сигналы. Мож кто подскажет, как узнать параметры протокола управления для LIRC? WinLIRC обучаться отказывается, видимо нестандартные последовательности импульсов.

UPD> Да, кстати. Не сочтите за рекламу, тот магазинчик называется mikrogonki.ru. Если вдруг соберётесь заказать там машинку — в поле «Примечания к заказу» напишите «Я от лысого». Вдруг, глядишь, мне машинку подарят :-)

UPD> Нашёл где мой косяк! Под пиво думается лучше, щас вот уже назад машинка двигается без рывков, всего-то надо было стартовый бит выкинуть нафиг. Сейчас подкорректирую остальные коды и выложу новое пруфвидео.

UPD> Коды подкорректировал, теперь без дёрганий движется. Хотя изредка, всё-таки, притормаживает. Но это уже из-за того что у N900 не очень мощный ИК-передатчик и довольно направленный. Файл с настройкой LIRC перезалил.

Вот новый видеоролик, примерно демонстрирующий движение с пофиксеными управляющими сигналами



UPD> Q-steer, оказывается, сняты с производства. Им на смену пришли машинки Choro-Q. Небольшое вскрытие устроил вот тут. Тоже через ИК управляются, но коды другие, щас вот разбираюсь.
+77
3540
42
Gol 134,3

Комментарии (93)

+15
PaGrom, #
сколько раз машинка в унитаз свалилась?
+1
Gol, #
Из-за этого видеоролика я машинку и купил :-) Насчёт падений не знаю, в описании не написано.
0
easyman, #
Вроде, сухая на видео ездит :)
+3
Desser, #
Стеклом закрыт :)
+8
Antelle, #
Программеры учили машинку ползать по унитазу. За каждый баг было суровое наказание.
+2
Z5M, #
по унитазу ездит машинка другого цвета
+5
odiszapc, #
Не стал смотреть второй ролик по причине волнения за машинку.
+6
Kolicher, #
У меня же есть дома КОТ! хотеть машинку!
+2
braintorch, #
Может проглотить.
+8
ssve, #
Трудовая книжка — символично
0
Gol, #
Нужен мостик был, вот трудовая как раз и пригодилась :-)
+1
GreenAngel, #
Я то же такую заказал, правда на e-bay.
С доставкаой вышло 15$
0
ilyadelphin, #
А «тюнинговые» запчасти к ним кто нибудь видел?

Я себе Эво X заказал.
0
xget, #
Ну вот, придется теперь покупать! :-)
0
ilyadelphin, #
Продавец написал мне, что раньше НГ смысла ждать нет — почта лежит :(
0
makaroff, #
Хабраэффект?
0
xget, #
Санта-эффект
0
Gol, #
Я вот, кстати, ещё ни разу не пробовал за бугром заказывать. Оттуда вроде как довольно долго идёт, а тут два дня и заказ пришёл.
+3
oguretz, #
Эх, вспомнил вечера за Micro Machines 2. Страшно хотеть вдруг!
0
irsick, #
… но меня в первый же день после заказа уволили с моей нынешней работы...

Надеюсь, это событие не связано с самим фактом заказа машинок?:-)
0
Gol, #
Нее, машинка с увольнением никак не связана.
0
ValdikSS, #
ЕЕеей! Вы можете в микромашинки играть в реальной жизни! Это мой любимый уровень — по ободу унитаза и ванны гонять!
0
ValdikSS, #
0
DIHALT, #
Ыы а я давно хотел такое сам сварганить. Движок от вибры мобильника, колесики и шасси от такой же, но инерционной. Управление я уж на контроллере сколхозю без особых проблем.
0
Gol, #
Ждём соответствующий топик!!!
0
DIHALT, #
Пока заказал готовую. На ее шасси попрактикуюсь. Движок там все же помощней чем в мобиле. такой сложно найти. А вот управление ни к черту: Е Буду делать пропорциональное, чтобы можно было полноценно управлять, а не рывками.
–1
Gol, #
У меня рывками получилось ибо коряво последовательнось сигналов перехватил. Плавное (в смысле чуть наклонил — едет медленно, чуть сильнее наклонил — едет быстрее) фиг получится ибо там такое не предусмотрено. Либо стоит, либо едет. Правда, ещё форсаж есть, но это немного не то. То же самое с поворотами — колёса либо прямо, либо влево до упора, либо вправо до упора.
0
DIHALT, #
C твоей реализацией то понятно. Но вот судя по пульту, поворт колес идет там до упора туда и обратно, без промежуточных положений. Вот это надо решать. Впрочем, вначале надо конструктив посмотреть.
0
AlexanderYastrebov, #
Там соленоид скорей всего
0
Gol, #
Привет. Тебе, наверное, вот такая понравится
0
DIHALT, #
Угу. Я на нее уже зубы точу. Кстати, мне же тоже машинки прихеали. осциллограммы снять с передатчика?
0
Gol, #
Не, спасибо. Мне хватило приёмника WinLIRC. Побитово получилось, как и хотел, для любого канала.
0
Gol, #
К тебе кустиры приехали или хороку?
0
DIHALT, #
кустиры

хороку мне визуально не прут. Какие то плоские. Старый дизайн куда прикольней был.
0
Gol, #
Ну, визуально я даже как-то и не выбирал :-) У кустиров плюс в том что они на батарейках — надолго хватает. Плюс можно сразу заменить. А хороки на аккумах, быстрее садятся, а поменять хрен получится. Ещё у хороку скорость на форсаже писец высокая, как блохи носятся. Так что и у тех, и у других свои плюсы/минусы, как оказалось.
0
Gol, #
Единственные машинки, которые полностью не понравились — эт которые «в пивной банке». Хрень.
0
iv1, #
Огромное спасибо за пост! Вы дали мне отличную идею подарить брату на НГ такую же только Subaru Impreza WRX. Он субарист, думаю будет счастлив :))))
0
Gol, #
Велкам!
0
puffofsmoke, #
Самый приятный момент, это конечно: создать что-то, чем и управлять-то ещё не умеешь )
0
Gol, #
Ну, я вот только скрипт наваял, с управлением ещё не до конца освоился. Я хоть на гитаре и играю немного, но у меня руки не настолько привыкшие независимо работать. В итоге сложно левой рукой крутить телефон, а правой в то же время управлять видеокамерой. Опять же, я показал возможность такого управления, дальше уж можно развивать как угодно.
0
fishbone, #
Спасибо за отличную идею подарка на НГ!
Заказал на e-bay парочку Mitsubishi Evolution X. Одну, естественно, себе. Надеюсь успеют долететь из Гонконга.
0
prxms, #
Если вы заказали авиапочтой, то не успеют… там завал
0
fishbone, #
Успели чергяги. Сегодня забрал с почты. А если судить по трэкингу, то посылка прибыла еще 26 числа.
0
aml, #
А за что уволили-то?
+1
kibizoidus, #
За машинки на рабочем экране, судя по всему.
0
Z5M, #
как я понял из текста, уволили ДО получения посылки с машинкой
«Доставка заняла несколько дней, но меня в первый же день после заказа уволили с моей нынешней работы»
0
Gol, #
Тут ноу комментс, извиняйте :-) Но одно могу сказать — не за машинки.
+1
Berghoff, #
Одного не пойму, почему в упомянутом инет магазине купить набор машинка + пульт дороже, чем у них же купить такой набор по отдельности: пульт отдельно и машинку отдельно? Profit 90 руб :)
0
Gol, #
Может быть из-за батареек. Когда набор приходит то уже укомплектован батарейками, а если по-отдельности, то может быть без. Точно не знаю, надо на сайте уточнять.
0
woopler, #
Суровое руководство у Вас было. Всего-то заказал машинку. И на тебе — уволен!
0
omsknews, #
видимо слух прошел типа «а он купил себе тачку крутую, да из Америки, да круче директорской жиги» — вот и результат
+1
corsarmega, #
С первых строк не покидала назойливая мысль, что в посте банальная джинса. Отсутствие ссылки на магазин в начале успокоило, но в конце нате — прямой линк плюс советы автора в треде «покупайте, за 2 дня доставят».

Колись, Лысый, сколько за статью на Хабре нынче платят?)
0
Gol, #
Я ждал этого коммента! Чувствую себя Бумбурумом :-)
Если бы я просто написал что «есть сайт где продают то-то», они такие молодцы и т.д., и т.п. то эт как раз джинсой и было. Сам заказные посты терпеть не могу. Я на эти машинки наткнулся случайно, написал у себя в блоге. Ибо те кто его читают такими штуками тоже интересуются, так что я просто поделился интересной находкой. Я искал машинки в Москве, но тупо не нашёл ибо нигде ими не торгуют, вот и пришлось заказывать на том сайте. Заказывать на e-bey или ещё где-то за бугром я просто не умею (ибо ещё ни разу не пробовал, да и вроде как долго там доставляют). Когда пришло письмо с подтверждением заказа, там было написано что «спасибо за упоминание о нас в блоге» и что если с блога будет много заказов то мне выдадут машинку в подарок.

Я как раз хочу вторую такую же машинку, чтоб гонки устраивать, так что я и добавил в пост пароль «я от лысого», чтоб в магазине могли идентифицировать.

Так что пост стоит дико дорого — целая машинка :-) И то, если реально кто-то этот пароль в заказе укажет.

Кстати, в этом топике, если вы заметили, главное не сама машинка, или сайт ими торгующий. А управление не со стандартного пульта, а с другого устройства через ИК-порт. Следующий пост будет про управление с Arduino :-)
0
ZUZ, #
да ну вас со всякой джинсой — машинки ОФИГЕННЫЕ — надо брать!
мне понравились те, что 7-ми сантимитровые на радиоуправлении по 650 р. — купить «пачку» и гонять с друзьями на НГ — мечта детства же
0
Gol, #
Вот хоть бы кто-нибудь написал коммент по делу. А конкретно — как вычленить управляющие сигналы не RAW а нормальные? Подозреваю что просто байт надо передавать, 2 бита — номер канала (их всего 4 — A, B, C, D), 2 бита отвечают за движение (стоп, вперёд, назад), 2 бита за поворот (прямо, влево, вправо). И 1 бит — форсаж (есть или нет). Итого получаем 7 бит. Но засада с протоколом передачи этих бит, ибо вроде параметры gap и всё остальное при обучении WinLIRC не ловятся :-(
0
DIHALT, #
Осциллографом. Приедут попробую посылки по человечески захавать.
0
Gol, #
Эх, вот осциллографа у меня нет под рукой :-( Надеюсь на вашу помощь. Ибо тогда можно будет и управление вертолётиком сделать. Мне жена когда-то давно подарила. Но при управлении им рывками возможны плохие последствия для вертолётика.
+1
Nastradamus, #
Что-то на и-бэй дофига предложений по 3 бакса.

shop.ebay.com/?_from=R40&_trksid=m570&_nkw=Q-Steer
+1
NeOn4eG, #
и доставка на 15…

// я взял багги с передней и задней подвеской за $20 ^_^
0
TiGR, #
Ну и саунд вы, конечно поставили на первый ролик… Вас же дети читают :)
0
Gol, #
Была идея поставить Сектор Газа «Самые лучшие тачки», но решил на LB остановиться :-)
0
Psih, #
И правильно, по моему ИМХО очень даже хорошо получилось. Контрастно :)
+2
ilyadelphin, #
Вертолет мы в офисе дружно убили, теперь будем в машинки играть.
0
Xpeh, #
Помню 4 года назад на LOR обсуждался игрушечный автомобиль с управлением на основе телефона Siemens S75:

www.linux.org.ru/forum/talks/1765280

www.robohobby.com/ — осторожно, заходите если действительно надо, так как сайт, судя по сообщениям автора на LOR, может не выдержать хабраэффекта, да и от проекта там остались в основном фотографии как часть оформления.
0
Xpeh, #
Под «с управлением на основе» имеется в виду, что телефон Siemens использовался как мозги и глаза робота, будучи установлен в его корпус и подключён через RS-232.

У сименсов COM-порт выведен на разъем телефона и доступен программно на платформах SGOLD и SGOLD2, то есть практически во всех представителях 65-й и 75-й серий, а также у BenQ-Siemens E71/M81/C81/EL71/S68.
0
IT_Tux_Droid, #
www.robohobby.com/portable_notebook_table.jsp — годное изобретение! =)
+1
Gol, #
Мне с этого сайта больше понравилось Куда деваются программисты после 35. Грустно :-(
0
xget, #
Да капец как грустно, хорошо я это 2 года назад уже осознал…
0
Gol, #
А у меня сейчас все карты на руках, чтобы это осознать, ибо я свежеуволенный :-) Просто работу искать, похоже, смысла уже нет (мне уже 30), надо что-то придумывать :-(
0
xget, #
Гол, 30 это еще молодость, не падай духом! ;-) Думай об этом, как об открывающейся возможности изменить свою жизнь к лучшему. В любом случае хотя бы выспишься, а весна не за горами ;-)
0
stoune, #
0
Gol, #
Вы заголовок топика читали??? Вот если бы вы ссылку дали на управление машинкой с какого-нибудь устройства (кроме PSP) с исходниками, было бы клёво. А так… Я уж понял что на eBay дофига этих машинок и дешевле. Суть не в этом.

Кстати, откуда 60$? Моя машинка обошлась в 990 руб. + 250 руб доставка.
0
stoune, #
Не знаю может для отстутствующих моделей у них неправильные цены.
mikrogonki.ru/content/mikromashinka-baggi-q-steer-tamiya-ts-07-mashinka-pult Цена: 1,850.00руб.
0
Gol, #
Нашёл где мой косяк! Под пиво думается лучше, щас вот уже назад машинка двигается без рывков, всего-то надо было стартовый бит выкинуть нафиг. Сейчас подкорректирую остальные коды и выложу новое пруфвидео.
0
Didjeru, #
Хабраэффект, сайт лежит. Попробую заказать себе и про пароль не забуду.
0
Didjeru, #
Быстро отцепило. Сайтик то на дрюпале )
0
Didjeru, #
Лысый, жди машинку ))) Поди пришлют.
0
Gol, #
Ну и какая зараза так ломиком минусиками прошлась? Почти сотню слили, демоны. Хоть бы мотивировали.
0
yuretsz, #
Ксто может подсказать, если купить две машинки, то можно будет устроить гонки или пульты будут перекрывать друг-друга?
0
yuretsz, #
0
Gol, #
В комментах на ютубе уж видеоролики фейком назвали :-( Надеюсь, присутствующие здесь скрипт смотрели, так что в достоверности такого управления, думаю, сомнений нет. Ну не знаю я как снять видео которое бы фейком не назвали :-(
0
Realizator, #
А если снимать с такого ракурса, чтобы был виден ИК-порт нокии? В моменты передачи сигнала ИК-порт розовым будет светиться.
0
Realizator, #
К вопросу кодов управления кустиром (ИК-команды) может оказаться полезной статья японского товарища. Он сваял управление Q-Steer с клавиатуры компьютера через arduino. Там-же идет скетч для ардуино, самое ценное в нем — тайминги ИК-сигналов. Смотреть тут: d.hatena.ne.jp/o2mana/20091122/1258912540
0
Gol, #
Ну, это тоже могут фейком назвать, мол просто включил irreco на мобиле
0
puksa, #
С машинками Choro-q не разбирались еще? У меня приемник на arduino почему-то не ловит их сигнал. Они светят в другом диапазоне или я что-то неправильно собрал?.. :(
0
Gol, #
Диапазон тот же. Команды почти совпадают. Именно почти, не полностью. Толком ещё ими не занимался
0
puksa, #
Тот же = какой? 38кГц? Почему-то пультовые сигналы ловит все, а машиночные — не хочет. Использую TSOP1736, если вам это что-либо говорит:)
0
Gol, #
Я тем же TSOP1736 ловил. Не совсем понял, что значит «машиночные» сигналы. Пультовые — есть такое, а что вы имеете в виду под «машиночными» ???? Машинки ничего не передают, только принимают.
0
puksa, #
Пультовые сигналы — имелось ввиду пульты от телевизора, my bad:) Машиночные — сигналы от пульта машинки. Я, пожалуй, приложу картинку.

Вот, чем пытаюсь поймать сигнал.
0
puksa, #
Парсер в этот раз оказался прав – нечего всяким проходимцам постить картинки.
habreffect.ru/files/e6f/c438ba00b/NANO_IR.PNG — вот же она!
0
puksa, #
Идиот! :-(
0
Gol, #
ну эт ты самокритично

Только зарегистрированные пользователи могут оставлять комментарии.
Войдите, пожалуйста.