Конфигурируемый контроллер кнопок и кнопок на руле автомобилей 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 После прошивки, на компьютере с 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 при помощи штатного загрузчика |
Вот бы еще прошивку к схеме... Что бы задействовать CAN от того же WV. Интересно IBUS отличается на уровне железа от CAN?
|
да, тоже интересует возможность на ауди повесить сие чудо
|
IBUS - это K-Line, can - совсем другое. У can на много больше скорость передачи, через переходник к контроллеру его не подключить, нужен контроллер с can на борту.
По поводу подключения к другим машинам, то если скорость передачи по их шинам укладывается в максимальную скорость интерфейса usart микроконтроллера (это примерно 115200бит в секунду) и существуют микросхемы преобразователи шина_авто<->usart, то подключить можно без особых переделок. Если найдется фанат своего автомобиля, который найдет по какой шине и как передается информация с кнопок на руле, потом будет готов ставить на нём эксперименты. То я готов с ним по сотрудничать, чтобы адаптировать это устройство в том числе и к вашему автомобилю. |
А мне нужно для ситроена с каном....
Как я понял,представленное устройство работает с простой клавиатурой,да? |
Цитата:
|
Вопрос к TC а если сравнить с этим http://www.cartft.com/catalog/il/1068 то что лучше и в чем преимущества того или иного? просто в раздумьях что брать и стоит ли переплачивать (А там еще есть и такое http://www.cartft.com/catalog/il/1552), да речь есс-но не идет о считывании там разных шин.
|
Возможно и не лучше. Я просто поделился результатами своих изысканий. Устройство разрабатывалось в первую очередь для общения с шиной моего автомобиля, т.е. можно получить прямой доступ к шине через виртуальный com-порт. Попутно, для декодирования кнопок на руле, чтоб можно было подключить к андроиду без всяких дополнительных программ. Ну и, так как всеравно был уже реализован HID Class Device и остались свободные порты, был добавлен ещё и функционал обычных кнопок и выходов. Сравнивать и решать что лучше для вас - вам самим.
|
Цитата:
|
Цитата:
|
В первое сообщение темы добавил исходники прошивки. Написано под Atmel Studio 6. В контроллере еще достаточно ресурсов, так что дополняйте функциональностью под свои задачи, но не забывайте делиться результатами.
|
Вот ведь... Если бы эта штука появилась пару лет назад...
я уже "оброс" реслеровским адаптером и вот таким плагином - http://forums.centrafuse.com/showthr...th-PC-via-iBus |
|
Вращающийся цифровой потенциометр для регулировки звука к нему приделать можно?
|
Подскажите, есть необходимость подключить кнопки на руле моего древнего х5 к планшету. Возможно ли это при помощи вашего устройства? Можно в юсб воткнуть блютуз и таким образом подключить к планшету?
|
Возможно, проверено мной
|
Цитата:
|
Цитата:
И можно ли объединить прошивку под неё и от контроллера резистивного тача? |
Цитата:
По поводу объединения, объединить можно, все исходники открыты, но это надо приложить некоторые усилия. Я сейчас работаю над контроллером своей "головной" части и как раз занимаюсь обхединиением всех этих наработок. Однако из-за необходимости в большем кол-ве портов ввода-вывода, "переезжаю" на контроллер atXmega256a3u. Именно под этот контроллер будет объединенная прошивка через некоторое время. Из-за существенной разници между контроллерами серии Xmega и просто mega, под просто mega объединять ничего пока не планирую, однако, если будет у общественности интерес, то и это возможно. |
Подниму тему. Можно ли подключить крутилку (не знаю как это устройство правильно называется)от штатного мафона на е46?
|
эх блин то что надо мне. как бы сделать это. ни але в таких делах. и авто как у автора.46ая. автор подскажи. )
|
Вложений: 1
Нарисовал наглядную схему. Разъем магнитолы показан со стороны магнитолы, соответственно не забывайте что штекер зеркальный, если я правильно помню на нём указаны номера выводов, свертесь с ними.
|
Цитата:
|
Вложений: 1
Оказывается MC33290 уже не производят, её трудно достать, а там где она есть стоит дорого. Есть аналог - L9637 от STMicroelectronics. Привожу наглядную схему подключения для этой микросхемы. Порт D0 в данном случае подключать не нужно.
|
А прошивка под ATMega 32U4 (http://goo.gl/90Yifn) есть уже или брать плату на AT90USB162? Заранее спасибо.
|
На данный момент прошивки для 32u4 нет. Однако, видимо появится, сама плата с контроллером у меня уже есть, если в выходные микросхему для связи с машиной смогу купить, то сделаю прошивку и для 32u4.
|
Понял.
Цитата:
|
Поясню процесс.
Нажатия кнопок на руле передаются по шине I-BUS. Родная голова работает с шиной на прямую. Не родные устройства, такие как планшет, компьютер (car pc), не родные головы ничего о I-BUS не знают. Так вот, данный контроллер с помощью микросхемы L9637 или MC33290 перехватывает данные на шине I-BUS (не зависимо от наличия родной БМВешной головы), выявляет нажатия кнопок на руле и пересылает нажатие в подключенное к порту USB устройство прикидываясь клавиатурой. Т.е., компьютер или планшет видят данное устройство как обыкновенную клавиатуру с мультимедиа клавишами (пример). Нажатие кнопки на руле передается по шине I-BUS через микросхему в контроллер и контроллер эмулирует нажатие одной из таких мультимедиа клавиш (или одной из обыкновенных клавиш, в зависимости от настроек контроллера). Обычно устройства с Андроидом без всяких плясок с бубном понимают такие мультимедийные клавиши, достаточно воткнуть контроллер и всё будет работать без дополнительных настроек (под всем я подразумеваю управление громкостью и переключение треков). Винда же мультимедиа кнопки без дополнительных драйверов обычно не понимает. Для работы с виндой контроллер обычно настраивают на эмуляцию обычных "горячих" клавиш, которые понимает используемый плеер. Т.е. данный контроллер можно использовать для подключения кнопок на руле к CarPC, данный контроллер нельзя использовать для подключения кнопок на руле к не штатной голове (хотя, если не штатная голова умеет работать с обычной клавиатурой, то можно, но я таких не встречал). Без микросхемы контроллер превращается в обычную клавиатуру, непосредственно к нему можно подключить только обычные кнопки. |
Хм, про магнитолу да, я так и понял - у меня адаптер где-то валяется для управления неродной. Ну получается эти мультимедийные кнопки для андроида через ibus2keyconf.exe тоже надо будет прописывать, так? И подключение к i-bus если штатной головы нет надо будет от чего-то еще найти (от старых проводов или климат например).
P.S. Закажу тогда 32u4 - буду благодарен если получится сделать прошивку под нее. |
Цитата:
Цитата:
|
Такую еще штуку нашел - http://goo.gl/tLW8hH . Для нее же прошивка из 1 поста подойдет (и PD0,PD1,PD2 к ibus микросхеме)?
|
Подойдет,
смотри внимательно картинку из этого поста, pd2 и pd3 к микросхеме. |
Цитата:
Однако сложность появилсь ещё в одном неожиданном месте. У меня есть две таких вот платы. Через встроенный загрузчик залить прошивку пока не получается (avrdude не видит устройство на появившемся после подключения порту). Попытка залить прошивку внешним программатором привела к тому, что код на микроконтроллере не выполняется, ни какой, даже самый простой типа мигания диодом. Т.е. микроконтроллер видится программатором, с него можно считать данные, залить данные и верифицировать, но залитая программа не исполняется. Я попробовал слить прошивку со второго не тронутго контроллера, залить её на первый, результата нет - контроллер ни как не детектируется на шине USB и не мигает своим диодом. Вобщем, разбираюсь, результат так или иначе будет, только видимо не так быстро как я изначально предположил. |
С контроллером разобрался, оказывается он бракованный, на втором всё прекрасно программируется и работает (правда напрямую программатором, с бутлоадером я так и не подружился). Осталось дождаться микросхему для проверки связи с машиной, после чего выложу прошивку с исходниками для ATmega32U4.
|
Я по ссылке выше на AT90USB162 заказал, по цене они щас даже выгоднее 32U4 получаются. Как приедет буду пробовать.
|
Еще вопрос появился. Нашел такую таблицу кодов кнопок руля которые по 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) отдельно для смены тех же папок могут вполне сгодиться. |
Дай пожалуйста ссылку на то, где нашел эту таблицу.
Первые четыре кнопки и так уже задействованы, последние две будут задействованы в новой версии прошивки, которую выложу на днях. |
http://www.bmwgm5.com/IBUS.htm
Да, громкость и вперед-назад я видел в конфигураторе. Плюс те которые в режиме "зажать на секунду" (1 Second) по идее тоже могут как отдельные пригодиться. Цитата:
|
Спасибо автору огромное!
Играюсь с конфигуратором и не понимаю как отключить эмуляцию кнопок громкости? Я слушаю музыку по AUX и соответственно меняю громкость на магнитоле. Не хочу при этом трогать громкость планшета. Помогите, знающие... |
А что именно не понятно-то? В конфигураторе справа сверху кнопки i-bus, кликни в поле рядом с "+" и в появившемся окне выбери "нет действия", затем тоже самое сделай для "-". Не забуть записать изменения в контроллер. Это?
|
Часовой пояс GMT +4, время: 03:41. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot