Показать сообщение отдельно
Старый 16.03.2009, 02:34   #2
АлександрК.
Пользователь
 
Регистрация: 21.02.2009
Регион: 78, 98
Сообщений: 53
АлександрК. is on a distinguished road
По умолчанию

К штатной магнитоле уже был подключен эмулятор CD-чейнджера xCarLink, который умеет играть mp3 с usb-носителей и имеет линейный вход. При отсутствии флешки, звук в штатную аудиосистему подается с этого линейного входа. Именно в этот вход я и решил запустить звук с компьютера.

Общение магнитолы и CD-чейнджера (в моем случае эмулятора) происходит через какой-то свой протокол, команды к чейнжеру идут по одному проводу, а инфа с чейнджера в магнитолу по другому.
Притащил я магнитолу с эмулятором домой, распаял на макетной плате микроконтроллер atmega8 и начал мучать тот самый проводок, по которому магнитола командует чейнджером.




Через два вечера протокол был полностью побежден, к контроллеру подпаян LPT-провод для передачи инфы в компьютер. Схема работы следующая - контроллер понимает, когда нажимается кнопка на магнитоле/руле и замыкает определенный контакт LPT на землю. На компе винда воспринимает эти замыкания, как нажатия кнопок джойстика (софтина PPJoy). Программа AutoHotKey в свою очередь переводит нажатия кнопок джойстика во что угодно (нажатие нужных горячих клавиш, кнопок мыши и т.п.). С помощью этой программы можно установить разные действия на разные окна. Например, если открыта центрифуга, то рулевые кнопки будут переключать треки, а на рабочем столе они будут управлять курсором


Потом я принялся мучать монитор, точнее его подсветку. Xenarc 700tsv умеет управлять яркостью своей подсветки через меню, но это не удобно, да и минимальная яркость все-равно оказалась великовата, ночью будет слепить.
Управление яркостью я решил доверить тому же микроконтроллеру, сводобных ресурсов у него было достаточно. Яркость штатной подсветки кнопок/спидометра/магнитолы и всех остальных светящихся крутилок/ручек в автомобиле регулируется автоматически в зависимости от "яркости внешнего мира" Плюс к этому уровень этого авто-затемнения можно отрегулировать специальной крутилкой слева от руля. Эту замечательную способность я решил использовать для своего монитора.
Подсветка всего в машине светодиодная, яркость регулируется скважностью ШИМа. Подцепил я свой контроллер к проводу штатной подсветки и перевел полученые данные в управляющее напряжение для инвертора Xenarc'a. Оказалось, что инвертор позволяет приглушать яркость гораздо сильнее, чем это возможно через меню. Также реализовал запоминание последней яркости, чтоб при выключении габаритов (а вместе с ними и подсветки кнопок) яркость оставалась на прежнем уровне. Это нужно для того, чтобы яркость монитора оставалась небольшой во время стоянки без габаритов (вечером приехал куда-нибудь, выключил габариты и кого-нить ждешь).

На этом фото вы можете видеть эксперимент на столе, монитор загнан в минимально возможную яркость (практчиески на грани видимости):




В ходе всех этих манипуляций я получил готовый контроллер, понимающий нажатия 8ми кнопок на магнитоле/руле и регулирующий яркость подсветки
АлександрК. вне форума   Ответить с цитированием