Показать сообщение отдельно
Старый 29.05.2012, 14:05   #1186
mas_u
Старший Пользователь
 
Регистрация: 08.05.2011
Регион: Украина
Машина: Subaru
Сообщений: 233
mas_u is on a distinguished road
По умолчанию пульт Pioneer CD-SR100

Может кому-нибудь понадобиться.
Выкладываю файл прошивки для контроллера Atmega162 для декодирования команд с пульта ДУ Pioneer.
Фото пульта в приложении.
Частота внешнего кварца - 7,3728Мгц - при прошивке выставить фьюзы на внешний кварц, убрать внутренний делитель.
В зависимости от нажатой кнопки на 10 мс включается один из выводов портов В или D микроконтроллера.
В порту B задействованы все ноги, в порту D - старшая тетрада.
Также в UART0 выплевывается название кнопки - параметры передачи - 19600/8bit/parity even/1 stop bit

Вывод фотоприемника (TSOP xx36 или xx38) подтянутый к +5В подключается на вывод прерывания INT0.
Также к ножкам PC0 и PC1 - можно подключить выводы инкрементного энкодера, к ноге PC2 - кнопку энкодера - все эти ноги мк также нужно подтянуть к +5В.

Все это я подключил к блютуз клавиатуре и далее к samsung p1000. В последних прошивках он стал поддерживать usb хост, но usb клавиатура работает коряво. Если планшет не в спячке то реагирует на пульт или энкодер нормально, задержка есть с первым нажатием (после паузы).
Также неоходимо отредактировать файл /system/usr/keylayout/Generic.kl Прописать там необходимые действия для соответствующих клавиш которые замыкаются от мк.
В onda 610 все с клавиатурой хорошо но яркость и качество экрана ....

У меня в файле прописаны следующие соответствия:

Кнопка пульта \ Действие

стрелка влево\DPAD_LEFT
стрелка вправо\DPAD_RIGHT
стрелка вверх\ DPAD_UP
стрелка вниз\DPAD_DOWN
BAND\ENTER
SRC\BACK
ATT\MENU
FUNC\APP_SWITCH
AUDIO\MEDIA_PLAY_PAUSE
VOL+\MEDIA_NEXT
VOL-\MEDIA_PREVIOUS

Вращение энкодера будет эквивалентно стрелкам пульта LEFT/RIGHT.
Короткое нажатие на кнопку эквивалентно кнопке BAND.
Долгое нажатие на кнопку включает на 10 мс последнюю ногу PORTD и вызовет смену эквивалентных кнопок при вращении энкодера на кнопки UP/DOWN.
Ввиду отсутсвия знаний Linux и Android в частности, сделал немного туповато - В файле Generic.kl для этого я выбрал действие VOLUME_UP - при долгом нажатии на кнопку - держу кнопку пока не вылезет на планшете статусбар громкости - это для меня сигнализирует о том что энкодер переключился.

Было бы хорошо вместо этого чтобы просто выводилось сообщение на планшете о смене вращения энкодера.

Крутить энкодер намного веселее чем тыкать кнопки а тем более в движении тыкать по экрану.
Например, в навителе энкодером с эквивалентными кнопками UP/DOWN можно менять маштаб, что при движении на трассе очень полезно, потому как его автомаштабирование не позволяет понять где там по ходу есть например заправки, а лезть к экрану во время движения и маштабировать на экране небезопасно.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 437
Размер:	83.8 Кб
ID:	26690   Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 680
Размер:	47.2 Кб
ID:	26691   Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 866
Размер:	34.8 Кб
ID:	26692  
Вложения
Тип файла: rar mega162.rar (2.5 Кб, 330 просмотров)
mas_u вне форума