Вот чего мне не хватало для полного счастия для иллюстраций всяких подключений и схемок - так это модели Виртурилки для Fritzing. Теперь ноу проблем - есть моделька! И даже с привязкой всех пинов. Правда, принципиальную схему ещё не доделал и печатку. Но вот в макетном виде всё отлично.
[code][root@virt2real /][root@virt2real ~]# modprobe wire.ko Driver for 1-wire Dallas network protocol. [root@virt2real ~]# modprobe w1-gpio.ko [root@virt2real ~]# w1_master_driver w1_bus_master1: Family 28 for 28.000003e7c1d6.ac is not registered.
[root@virt2real ~]# modprobe w1_therm.ko [root@virt2real ~]# cd /sys/bus/w1/devices/ [root@virt2real devices]# ls 28-000003e7c1d6@ w1_bus_master1@ [root@virt2real devices]# cd 28-000003e7c1d6 [root@virt2real 28-000003e7c1d6]# ls driver@ id name power/ subsystem@ uevent w1_slave [root@virt2real 28-000003e7c1d6]# cat w1_slave 8c 01 4b 46 7f ff 04 10 2e : crc=2e YES 8c 01 4b 46 7f ff 04 10 2e t=24750[/code]
Не совсем понял почему "Family 28 for 28.000003e7c1d6.ac is not registered", но эт фигня - работает норм.
Вообще, драйвер ядра уже в комплекте ядра идёт, поддержка различных w1 девайсов и всё такое. Но по дефолту мастер шины не работает - надо в главный файл инициализации платы (arch/arm/mach-davinci/board-dm365-evm.c) добавлять блок инициализации. Грубо говоря - на каком пине слушать датчики, на какой пин подавать питание (HIGH уровень на пине питает датчик, но можно и обычные 3.3В брать), как называется девайс к которому потом драйвер обращаться будет. И далее в том же духе. Вообще почти всё оборудование на борту Виртурилки должно инициализироваться именно в этом файлике. А чтоб не инициализировать лишнее - в файлике сделали парсер строки параметров ядра. Так что если нужен вайфай - надо в файл uEnv.txt вписать параметр wifi=on, если нужен 1-wire - 1wire=<номер_пина> и т.д.
Блин, мне в нашей Вики предстоит подробное описание всего и вся делать :-( Так что пока ещё буду сюда вкратце тезисы писать шоп не забыть, а затем на базе этого в Вики писать талмуд.
А насчёт сабжа - ура! Теперь можно мой любимый градусник на виртурилке сделать. Как раз сетевой кабель выкинуть можно, по вайфаю всё слать будет.
Надевается на специальные мезониные колодки виртурилки. Не изменяет габаритов по высоте и ширине, но разъём (SMA-RP) чуток увеличивает габариты по длине.
В линухе этот чип отлично поддерживается, так что проблем с драйверами не возникло - всё заработало сразу из коробки.
Весит Wi-Fi модуль 6 грамм. Антенна (полуволновой штырь) весит 10 грамм. Но антенны можно и любые другие использовать. Мне вот Клевер больше всего нравится.
Также появилась "авиационная" версия Виртурилки - без распаяных пинов. Так что железка получилась ещё компактнее и легче (20 грамм).
Ну и дальше ещё куча фоток железок в сборе и по-отдельности. И маленький видеоролик с процессом надевания. Надевания вайфайки, само собой.
Ездил в аэропорт провожать Павлика. Встретил пять тестовых железок новой модификации.
Привёз, подключили... Не стартуют :-(
В итоге засели у Сани, стали прозванивать всё и вся. Точнее, Саня прозванивал, а я бредовые гипотезы выдвигал. В итоге нашлись три косяка, несмертельные. Два косяка на заводе исправят, ибо по их вине. А один оставшийся - совсем фигня, исправляется ручками за 10 минут. Но поиски этой фигни затянулись до четырёх утра. Я уже домой спать уехал, а Саня героически продолжил изыскания. В итоге в пять часов приходит смска "я всё починил". И правда, по видеоскайпу увидел моргающую светодиодиками новую виртурилку.
Один из косяков - китайские товарищи чуток перепутали резюк на цепи питания. Вместо 13 мОм поставили 13 МОм. Совсем чуть-чуть ошиблись, всего-то на 9 порядков :-)
В общем, железки успешно загрузились, вроде пашут. Ща тестим функционал, мож ещё косяк какой-нить обнаружится.
Давным-давно была прикуплена платка RU-IMU-9+1 v1.0 (совместима с платой FFIMU v1.22L) для установки на квадрик под управлением ArduPilot Mega.
Несколько раз даже подлетнул, но потом квадрик потерпел крушение, после чего я к нему не притрагивался.
А датчики-то лежат без дела, непорядок. Сегодня вот сдул пыль с платки, подключил к Виртурилке. Подключение до безобразия простое - GND на землю, +5V на питание, два контакта I2C - по прямому назначению (SDA в SDA, SCL в SCL).
Распайка платки RU-IMU вот такая:
На борту мой вариант (топовый на тот момент) содержит: Гироскоп 3х осевой ITG-3200 Акселерометр 3х осевой BMA-180 Компас 3х осевой HMC-5883 Барометр BMP-085 (с градусником)
Примерно вот так выглядело. Тут порулить всем желающим давали, так что они друг друга мочили. А вот когда я против других танкистов воевал - видео, к сожалению, нету. А было клёво :-) На поле конеш намного интереснее играть чем на полу в квартире.
Видео с борта на телике порадовало. Рулится очень комфортно, это при том что энкодер особо не тюнил, всё с дефолтными настройками. Поток чуть больше мегабита с каждого танка.
Так как в этом году мы там участвовали не сами по себе, а с танковым клубом, фотал я только танки. А вот на видео отснял много остального. Фотки выкладываю а видео ещё монтирую.
В общем, прошло всё довольно неплохо. Пятигигагерцовый вайфай не подвёл - связь с танками была, видеопоток пёр, всё чики-пуки. Впервые поучаствовал в танковом бою против других танков с системой боя Tamiya. Одно дело - дома тестить, совсем другое - на поле. Клёво, конечно, мне прям понравилось. Правда, правил я толком не знаю, так что мочил всех без разбору.
Картинку с одного танка пустили на большой телик, со второго - на ноут. Народу давали покататься. Управление - с геймпадов. Лаг видео есть, конечно, но довольно малый, управлять не мешает.
Самодельная система боя показала себя довольно неплохо, но надо подумать где датчики размещать чтоб ложные попадания (из-за отражений ИК) минимизировать. А главное - надо добавить систему отслеживания поворота башни относительно корпуса.
Управление одним - с айпадика, вторым - с джойстика от компа. Курсовое видео с двух бортов идёт на ноут, поток 1.2Мбит/сек, H264.
На Тиграх по 4 ИК датчика стоят, засекают попадания с конкретной стороны. Правда, в тесной комнате много отражений сигнала так что часты ложные срабатывания (пуляешь в сторону а танк подбивается). На большом поле такого быть не должно. Завтра проверим-с.
UPD> Блин, забыл сделать чтоб при подбитии танк дёргался слегка. И звук взрыва при попадании забыл. Щщща добавлю.
ИК бой (усовершенствованная Тамия), четыре зоны попадания (в принципе, можно и больше сделать, хватило бы тсопов). С Тамией совместимо (понимает попадания Тамиевской системы, подбивает Тамиевскую систему). Но Тамия - отстой, по сравнению с тем что у меня реализовано (пока ещё не полностью, правда). Так что надо будет своё название системе дать. Система боя вIRтурил. Новый смысл в названии компании и железки :-)
Полная программная звуковая подсистема с микшированием. Тональность звука двигателя меняется при изменении скорости езды. На первом танке виртурилка с дохлой звуковухой, так что звук только на втором танке, а он ещё не собран. Все сэмплы - обычные WAV файлы, заливаются на microSD карту. Первым делом сделал сэмплы из Battle City :-)
Выключатель питания на брюхе танчика, видео пришлось остановить ибо выключателем зацепил о железку, в итоге танк потух :-)
После прошлых испытаний к нам обратились некие люди, попросили не маяться ерундой с автомобилями. Сказали что надо мыслить ширше и предоставили нам для испытаний вот такой самолётик. Испытания проходили вчера на территории Шереметьево (хорошо, от меня недалеко). Управляли, как обычно, с айпада. Удалось успешно взлететь, сделать пару кругов вокруг Москвы и благополучно приземлиться.
3G модем Мегафоновский подцепился, но хочется ещё и 4G. Пробую Йоту.
Штудирование интернетов дало ссылочку, где пишут что для функционирование USB свистка йоты (производства GCT SEMICONDUCTOR) необходимы модули usbnet, cdc_ether и rndis_host. Данные модули у нас есть, попробовал подгрузить (именно в этой последовтельности) - всё ништяг.
Далее делаем ifconfig eth1 up dhclient eth1
И всё - йота подключена. Осталось маршруты требуемым образом настроить (если специфичные нужны).
[code]usb 1-1.4: new high speed USB device using musb_hdrc and address 8 usb 1-1.4: New USB device found, idVendor=1076, idProduct=8002 usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-1.4: Product: Modem Yota usb 1-1.4: Manufacturer: GCT SEMICONDUCTOR Inc usb 1-1.4: configuration #1 chosen from 1 choice rndis_host 1-1.4:1.0: dev can't take 1558 byte packets (max 1458), adjusting MTU to 1400 eth1: register 'rndis_host' at usb-musb_hdrc-1.4, RNDIS device, 00:09:3b:f0:1a:40[/code]
Однако те кто работает с компами и прочими железками прекрасно знает что довольно часто бывает что точное повторение одного и того же действия приводит к абсолютно разным результатам :-)
Переделываю кнопку "Шухер" для опелька. Нужна для экстренной остановки. Раньше было немного коряво сделано, сейчас вот руль с педалями и кнопку остановки делаю не по вайфаю а по радиоканалу на 433Mhz, шоп дублировалось.
За приём-передачу отвечает мои любимые проверенные в боевых условиях APC220. На одной виртурилке этот трансивер подключается напрямую к UART, а вот на второй витурилке уарты уже заняты так что приходится подключать через USB-TTL переходник, который в комплекте с APC220 идёт.
Переходник из комплекта APC220 сделан на чипе Silicon Labs CP2102. При подключении (в ядре поддержка включена) появляется
[code]usb 1-1: new full speed USB device using musb_hdrc and address 5 usb 1-1: New USB device found, idVendor=10c4, idProduct=ea60 usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1: Product: CP2102 USB to UART Bridge Controller usb 1-1: Manufacturer: Silicon Labs usb 1-1: SerialNumber: 0001 usb 1-1: configuration #1 chosen from 1 choice cp210x 1-1:1.0: cp210x converter detected usb 1-1: reset full speed USB device using musb_hdrc and address 5 usb 1-1: cp210x converter now attached to ttyUSB0[/code]
Но вот при попытке отправить или принять что-нибудь - глухо как в танке. Ничего не пашет. Хотя когда проверяю через подключение напрямую к uart - пашет. Полез рыть форумы, оказалось известная проблема. Связана с тем что пин RTS на трансивере отвечает за включение режима настройки, а не для обычного функционирования. Так что отогнул пин в сторону, воткнул, попробовал что-нибудь записать в устройство для передачи - вуаля, пашет!
Так как после недавних событий пошла довольно неплохая шумиха, поступило много предложений устроить встречу с командой Virt2real. Не в связи с тем Опелем, а вообще. Пообщаться по техническим темам, по производству, по инвестициям и т.д. и т.п. Виртурилку дадим пощупать.
Так что поднапряглись и организовали время и место. Место - картинг-клуб m-kart (около м. Савёловская). Время — 19 марта (вторник). Стоимость участия — бесценная :-)
ПРОГРАММА МЕРОПРИЯТИЯ 10:00 — 10:30 Кофе, сбор гостей 10:30 — 11:00 Рассказ о проекте (история, состояние дел, планы на ближайшее будущее) 11:00 — 11:30 Ответы на вопросы 11:30 — 15:00 Деловые переговоры, интервью, свободное общение
Одновременно с этим мероприятием ещё одно будет проходить в Туле, телемост устроим. Но тульское пока под вопросом так что особо на него не надеемся. Я в Туле буду, само собой, завтра стартую. Хотя погодка не радует совершенно :-(