PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Разработка устройств (http://pccar.ru/forumdisplay.php?f=18)
-   -   Конфигурируемый контроллер кнопок и кнопок на руле автомобилей BMW (http://pccar.ru/showthread.php?t=18903)

zyxel812 24.03.2013 19:07

Конфигурируемый контроллер кнопок и кнопок на руле автомобилей BMW
 
Вложений: 2
Представляю вашему вниманию устройство, которое подключается к pccar посредством USB порта. Устройство «прикидывается» клавиатурой и последовательным портом (COM-портом) одновременно.

К устройству может быть подключено до 15-ти кнопок и/или до 14 светодиодов (или, например, реле для управления чем-либо). При этом коды клавиш и назначение выводов конфигурируется посредством программы-конфигуратора.

Устройство может быть подключено к шине IBUS автомобилей BMW. По шине устройство «отлавливает» нажатия кнопок на руле и эмитирует нажатие клавиши клавиатуры. Нажатие каких именно клавиш эмулировать, задается конфигуратором.

Устройство умеет эмулировать нажатия не только отдельных простых клавиш, но и в сочетании с модификаторами, такими как shift, control, alt и клавишей windows. А также нажатие мультимедийных клавиш, которые «на ура» воспринимает Android, в результате возможно с кнопок управлять звуком, треками, а так же запускать отдельные программы, например, браузер или плеер.

Через виртуальный последовательный порт возможно получать все данные с шины IBUS и передавать в нее данные.

Вот одна из возможных схем:
https://lh6.googleusercontent.com/-J...s986/shema.png

Кому лень разводить и травить плату, возможно заказать почти готовый контроллер от сюда за 23,5$ (UPD: по ссылке уже не продается, перечень других ссылок в этом посте)
https://lh6.googleusercontent.com/-N...661/teensy.jpg
В нем не хватает микросхемы MC33290 для подключения к шине IBUS. Кому нужны просто резистивные кнопки, ничего делать не надо. Кому требуется подключение к IBUS, микросхему можно купить отдельно здесь или в любом другом магазине радиоэлектроники (цена максимум 200 рублей). Подключить микросхему возможно навесным монтажом. Вот, правда не самый красивый, пример:
https://lh6.googleusercontent.com/-4...24/mc33290.JPG
Выводы микросхемы подключайте согласно схеме.

Кнопки подключаются одним выводом к земле (обозначена gnd), вторым выводом к соответствующему порту (обозначены Bx, Cx, Dx, где x – любая цифра).

Светодиоды подключаются одним выводом к порту, другим могут быть подключены как к земле, так и к +5. В конфигураторе предусмотрено инвертирование выходных сигналов. Не забываем последовательно включить резистор, обычно 470 Ом.

Контроллер по указанной мной ссылке уже имеет прошитый загрузчик. Чтобы залить в него прошивку, не нужно иметь программатор, нужно просто подключить его к компьютеру, нажать единственную имеющуюся на нем кнопку и из командной строки выдать следующую команду:
Код:

teensy_loader.exe -v -mmcu=at90usb162 MultiKeyboard.hex
Программу teensy_loader.exe и файл MultiKeyboard.hex ищите в приложенном архиве.

После прошивки, на компьютере с windows устройство определится как составное устройство, при этом драйвер на клавиатурную часть поставится автоматически, а для последовательного порта потребуется драйвер, который имеется в архиве.

После установки драйвера, можно приступать к конфигурированию. Конфигурирование производится программой ibus2keyconf.exe. Выберите порт, который был присвоен нашему виртуальному последовательному порту, нажмите «Подключиться». Если не будет ошибок, в устройство станет возможно записать конфигурацию и считать её. Возможности программы конфигурирования наглядно демонстрируются скриншетами:

Главное окно:
https://lh5.googleusercontent.com/-I.../s670/scr1.png

Назначение выходов:
https://lh5.googleusercontent.com/-5.../s307/scr2.png

Назначение клавиш:
https://lh4.googleusercontent.com/-H.../s740/scr3.png

Наглядная схема подключения к машине
Микросхему MC33290 можно заменить на L9637, в этом случае схема подключения будет такая.

UPD (27.08.2014): Версия для контроллера ATmega32U4. Реализована обработка дополнительных двух кнопок на руле.
UPD (16.04.2015): Наткнулся на статью, которая сможет помочь разобраться с прошивкой Arduino: Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика

VVi3ard 25.03.2013 14:52

Вот бы еще прошивку к схеме... Что бы задействовать CAN от того же WV. Интересно IBUS отличается на уровне железа от CAN?

jundik 25.03.2013 18:48

да, тоже интересует возможность на ауди повесить сие чудо

zyxel812 25.03.2013 20:02

IBUS - это K-Line, can - совсем другое. У can на много больше скорость передачи, через переходник к контроллеру его не подключить, нужен контроллер с can на борту.
По поводу подключения к другим машинам, то если скорость передачи по их шинам укладывается в максимальную скорость интерфейса usart микроконтроллера (это примерно 115200бит в секунду) и существуют микросхемы преобразователи шина_авто<->usart, то подключить можно без особых переделок.
Если найдется фанат своего автомобиля, который найдет по какой шине и как передается информация с кнопок на руле, потом будет готов ставить на нём эксперименты. То я готов с ним по сотрудничать, чтобы адаптировать это устройство в том числе и к вашему автомобилю.

davidUSR 25.03.2013 21:10

А мне нужно для ситроена с каном....

Как я понял,представленное устройство работает с простой клавиатурой,да?

zyxel812 25.03.2013 22:31

Цитата:

Сообщение от davidUSR (Сообщение 252474)
А мне нужно для ситроена с каном....

Как я понял,представленное устройство работает с простой клавиатурой,да?

Оно работает КАК простая клавиатура. Только вместо клавиш у него простые кнопки и кнопки на руле.

Vladget 25.03.2013 23:34

Вопрос к TC а если сравнить с этим http://www.cartft.com/catalog/il/1068 то что лучше и в чем преимущества того или иного? просто в раздумьях что брать и стоит ли переплачивать (А там еще есть и такое http://www.cartft.com/catalog/il/1552), да речь есс-но не идет о считывании там разных шин.

zyxel812 26.03.2013 10:18

Возможно и не лучше. Я просто поделился результатами своих изысканий. Устройство разрабатывалось в первую очередь для общения с шиной моего автомобиля, т.е. можно получить прямой доступ к шине через виртуальный com-порт. Попутно, для декодирования кнопок на руле, чтоб можно было подключить к андроиду без всяких дополнительных программ. Ну и, так как всеравно был уже реализован HID Class Device и остались свободные порты, был добавлен ещё и функционал обычных кнопок и выходов. Сравнивать и решать что лучше для вас - вам самим.

davidUSR 26.03.2013 13:36

Цитата:

Сообщение от zyxel812 (Сообщение 252486)
Оно работает КАК простая клавиатура. Только вместо клавиш у него простые кнопки и кнопки на руле.

Ясно..значит придется свое корячить...

Vladget 28.03.2013 13:11

Цитата:

Сообщение от zyxel812 (Сообщение 252522)
Возможно и не лучше. Я просто поделился результатами своих изысканий. Устройство разрабатывалось в первую очередь для общения с шиной моего автомобиля, т.е. можно получить прямой доступ к шине через виртуальный com-порт. Попутно, для декодирования кнопок на руле, чтоб можно было подключить к андроиду без всяких дополнительных программ. Ну и, так как всеравно был уже реализован HID Class Device и остались свободные порты, был добавлен ещё и функционал обычных кнопок и выходов. Сравнивать и решать что лучше для вас - вам самим.

Нее.. я без претензий просто ради интереса так как в раздумьях, но все равно понятно спасибо

zyxel812 30.03.2013 23:52

В первое сообщение темы добавил исходники прошивки. Написано под Atmel Studio 6. В контроллере еще достаточно ресурсов, так что дополняйте функциональностью под свои задачи, но не забывайте делиться результатами.

sledge 01.04.2013 18:35

Вот ведь... Если бы эта штука появилась пару лет назад...

я уже "оброс" реслеровским адаптером и вот таким плагином - http://forums.centrafuse.com/showthr...th-PC-via-iBus

zyxel812 24.05.2013 16:24

Оказывается по ссылке из первого поста готовую платку уже не купить.
На данный момент заказать можно тут, тут, эта тоже должна подойти, а так же эта. Я так же заказал для себя такую, готовая плата почти по цене контроллера. Она на другом контроллере, как дойдет, сделаю прошивку и под нее.

Twod 12.11.2013 10:07

Вращающийся цифровой потенциометр для регулировки звука к нему приделать можно?

Timsk 26.12.2013 01:08

Подскажите, есть необходимость подключить кнопки на руле моего древнего х5 к планшету. Возможно ли это при помощи вашего устройства? Можно в юсб воткнуть блютуз и таким образом подключить к планшету?

m50b20 26.12.2013 02:31

Возможно, проверено мной

Timsk 26.12.2013 16:31

Цитата:

Сообщение от m50b20 (Сообщение 281709)
Возможно, проверено мной

Очень интересуют подробности. Может есть видео как все это работает у вас? Как подключить эту плату к рулю?

Gorynch 16.01.2014 14:38

Цитата:

Сообщение от zyxel812 (Сообщение 259416)
Я так же заказал для себя такую .... сделаю прошивку и под нее.

Не сделал прошивку под неё?
И можно ли объединить прошивку под неё и от контроллера резистивного тача?

zyxel812 16.01.2014 19:15

Цитата:

Сообщение от Gorynch (Сообщение 283572)
Не сделал прошивку под неё?
И можно ли объединить прошивку под неё и от контроллера резистивного тача?

Нет, но если очень надо, то пишите, сделаю.

По поводу объединения, объединить можно, все исходники открыты, но это надо приложить некоторые усилия. Я сейчас работаю над контроллером своей "головной" части и как раз занимаюсь обхединиением всех этих наработок. Однако из-за необходимости в большем кол-ве портов ввода-вывода, "переезжаю" на контроллер atXmega256a3u. Именно под этот контроллер будет объединенная прошивка через некоторое время. Из-за существенной разници между контроллерами серии Xmega и просто mega, под просто mega объединять ничего пока не планирую, однако, если будет у общественности интерес, то и это возможно.

Piligrimlt 06.03.2014 20:05

Подниму тему. Можно ли подключить крутилку (не знаю как это устройство правильно называется)от штатного мафона на е46?

halis09 27.03.2014 16:41

эх блин то что надо мне. как бы сделать это. ни але в таких делах. и авто как у автора.46ая. автор подскажи. )

zyxel812 09.04.2014 12:36

Вложений: 1
Нарисовал наглядную схему. Разъем магнитолы показан со стороны магнитолы, соответственно не забывайте что штекер зеркальный, если я правильно помню на нём указаны номера выводов, свертесь с ними.

zyxel812 09.04.2014 12:39

Цитата:

Сообщение от Piligrimlt (Сообщение 289678)
Подниму тему. Можно ли подключить крутилку (не знаю как это устройство правильно называется)от штатного мафона на е46?

Ты бы поподробней описал что должно получится в итоге. Не совсем понятно, к чему хочешь подключить крутилку, а так же не понятно хочешь ли ты чтобы она оставалась в мафоне или ты хочешь её от туда "выдрать". Опять же, штатные мафоны тоже разные бывают.

zyxel812 09.04.2014 14:08

Вложений: 1
Оказывается MC33290 уже не производят, её трудно достать, а там где она есть стоит дорого. Есть аналог - L9637 от STMicroelectronics. Привожу наглядную схему подключения для этой микросхемы. Порт D0 в данном случае подключать не нужно.

NickolayCh 10.04.2014 03:49

А прошивка под ATMega 32U4 (http://goo.gl/90Yifn) есть уже или брать плату на AT90USB162? Заранее спасибо.

zyxel812 10.04.2014 10:25

На данный момент прошивки для 32u4 нет. Однако, видимо появится, сама плата с контроллером у меня уже есть, если в выходные микросхему для связи с машиной смогу купить, то сделаю прошивку и для 32u4.

NickolayCh 10.04.2014 13:40

Понял.

Цитата:

если в выходные микросхему для связи с машиной смогу купить
L9637 нужна в смысле? Я правильно понимаю что если я кнопки на руле собираюсь к планшету (в связке с небмвшной головой) подключать, то мне эту микросхему для IBUS особого смысла брать нету?

zyxel812 10.04.2014 15:19

Поясню процесс.
Нажатия кнопок на руле передаются по шине I-BUS. Родная голова работает с шиной на прямую. Не родные устройства, такие как планшет, компьютер (car pc), не родные головы ничего о I-BUS не знают. Так вот, данный контроллер с помощью микросхемы L9637 или MC33290 перехватывает данные на шине I-BUS (не зависимо от наличия родной БМВешной головы), выявляет нажатия кнопок на руле и пересылает нажатие в подключенное к порту USB устройство прикидываясь клавиатурой. Т.е., компьютер или планшет видят данное устройство как обыкновенную клавиатуру с мультимедиа клавишами (пример). Нажатие кнопки на руле передается по шине I-BUS через микросхему в контроллер и контроллер эмулирует нажатие одной из таких мультимедиа клавиш (или одной из обыкновенных клавиш, в зависимости от настроек контроллера). Обычно устройства с Андроидом без всяких плясок с бубном понимают такие мультимедийные клавиши, достаточно воткнуть контроллер и всё будет работать без дополнительных настроек (под всем я подразумеваю управление громкостью и переключение треков). Винда же мультимедиа кнопки без дополнительных драйверов обычно не понимает. Для работы с виндой контроллер обычно настраивают на эмуляцию обычных "горячих" клавиш, которые понимает используемый плеер.
Т.е. данный контроллер можно использовать для подключения кнопок на руле к CarPC, данный контроллер нельзя использовать для подключения кнопок на руле к не штатной голове (хотя, если не штатная голова умеет работать с обычной клавиатурой, то можно, но я таких не встречал). Без микросхемы контроллер превращается в обычную клавиатуру, непосредственно к нему можно подключить только обычные кнопки.

NickolayCh 10.04.2014 16:56

Хм, про магнитолу да, я так и понял - у меня адаптер где-то валяется для управления неродной. Ну получается эти мультимедийные кнопки для андроида через ibus2keyconf.exe тоже надо будет прописывать, так? И подключение к i-bus если штатной головы нет надо будет от чего-то еще найти (от старых проводов или климат например).

P.S. Закажу тогда 32u4 - буду благодарен если получится сделать прошивку под нее.

zyxel812 10.04.2014 19:00

Цитата:

Сообщение от NickolayCh (Сообщение 293823)
Ну получается эти мультимедийные кнопки для андроида через ibus2keyconf.exe тоже надо будет прописывать, так?

Да, после программирования контроллера нужно будет прописать нажатия каких именно кнопок контроллеру эмулировать. Это делается один раз, настройки запоминаются в энергонезависимой памяти контроллера.

Цитата:

Сообщение от NickolayCh (Сообщение 293823)
И подключение к i-bus если штатной головы нет надо будет от чего-то еще найти (от старых проводов или климат например).

Да, наверное ж не отрезали тебе родной разъем для магнитолы. Если отрезали, то придется i-bus поискать.

NickolayCh 10.04.2014 21:24

Такую еще штуку нашел - http://goo.gl/tLW8hH . Для нее же прошивка из 1 поста подойдет (и PD0,PD1,PD2 к ibus микросхеме)?

zyxel812 10.04.2014 23:43

Подойдет,
смотри внимательно картинку из этого поста, pd2 и pd3 к микросхеме.

zyxel812 14.04.2014 13:39

Цитата:

Сообщение от zyxel812 (Сообщение 293768)
На данный момент прошивки для 32u4 нет. Однако, видимо появится, сама плата с контроллером у меня уже есть, если в выходные микросхему для связи с машиной смогу купить, то сделаю прошивку и для 32u4.

В общем, процесс пошёл. Микросхемы на руках ещё нет, висит в статусе "комплектация" четвертый день, хотя все заказанные компоненты вроде как есть на складе, жду.
Однако сложность появилсь ещё в одном неожиданном месте. У меня есть две таких вот платы. Через встроенный загрузчик залить прошивку пока не получается (avrdude не видит устройство на появившемся после подключения порту). Попытка залить прошивку внешним программатором привела к тому, что код на микроконтроллере не выполняется, ни какой, даже самый простой типа мигания диодом. Т.е. микроконтроллер видится программатором, с него можно считать данные, залить данные и верифицировать, но залитая программа не исполняется. Я попробовал слить прошивку со второго не тронутго контроллера, залить её на первый, результата нет - контроллер ни как не детектируется на шине USB и не мигает своим диодом. Вобщем, разбираюсь, результат так или иначе будет, только видимо не так быстро как я изначально предположил.

zyxel812 14.04.2014 23:20

С контроллером разобрался, оказывается он бракованный, на втором всё прекрасно программируется и работает (правда напрямую программатором, с бутлоадером я так и не подружился). Осталось дождаться микросхему для проверки связи с машиной, после чего выложу прошивку с исходниками для ATmega32U4.

NickolayCh 14.04.2014 23:22

Я по ссылке выше на AT90USB162 заказал, по цене они щас даже выгоднее 32U4 получаются. Как приедет буду пробовать.

NickolayCh 25.04.2014 00:32

Еще вопрос появился. Нашел такую таблицу кодов кнопок руля которые по ibus видны:

Button | IBUS Message (Hex)
Volume + | 50 04 68 32 11 1F
Volume - | 50 04 68 32 10 1E
Next (Pressed) | 50 04 68 3B 01 06
Next (1 Second) | 50 04 68 3B 11 16
Next (Released) | 50 04 68 3B 21 26
Previous (Pressed) | 50 04 68 3B 08 0F
Previous (1 Second) | 50 04 68 3B 18 1F
Previous (Released) | 50 04 68 3B 28 2F
R/T | 50 03 C8 01 9A
Dial (Pressed) | 50 04 C8 3B 80 27
Dial (1 Second) | 50 04 C8 3B 90 37
Dial (Released) | 50 04 C8 3B A0 07

Можно будет их в конфигуратор прикрутить дополнительно? В машине телефона нет, поэтому хотелось бы RT/Dial как-нибудь тоже задействовать. И я так понимаю Next/Previous (1 Second) отдельно для смены тех же папок могут вполне сгодиться.

zyxel812 25.04.2014 09:51

Дай пожалуйста ссылку на то, где нашел эту таблицу.
Первые четыре кнопки и так уже задействованы,
последние две будут задействованы в новой версии прошивки,
которую выложу на днях.

NickolayCh 25.04.2014 13:48

http://www.bmwgm5.com/IBUS.htm

Да, громкость и вперед-назад я видел в конфигураторе. Плюс те которые в режиме "зажать на секунду" (1 Second) по идее тоже могут как отдельные пригодиться.

Цитата:

последние две будут задействованы в новой версии прошивки
Отлично, спасибо.

DimaD 25.08.2014 10:45

Спасибо автору огромное!
Играюсь с конфигуратором и не понимаю как отключить эмуляцию кнопок громкости?
Я слушаю музыку по AUX и соответственно меняю громкость на магнитоле. Не хочу при этом трогать громкость планшета.

Помогите, знающие...

zyxel812 26.08.2014 10:34

А что именно не понятно-то? В конфигураторе справа сверху кнопки i-bus, кликни в поле рядом с "+" и в появившемся окне выбери "нет действия", затем тоже самое сделай для "-". Не забуть записать изменения в контроллер. Это?


Часовой пояс GMT +4, время: 20:38.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot