Я наконец то сделал это, почти)
Итак по порядку.
Задачи:
- Сделать проект максимально похожим на промышленное изделие
- Максимальная автоматизация
- Максимально удобное управление, чем меньше надо тыкать пальцами в тач тем лучше, меньше отвлекает от дороги.
P.S. Камеру ЗХ решил не ставить т.к штатный парктроник устраивает на 100%
Материалы:
- Nexus 7 32Gb 3G
- Блок питания
DFRobot DFR0205 (без гальванической развязки, посторонних шумов нет)
- Arduino Leonardo
- FM радио
TERRATEC
- Антенный усилитель
Триада - 304
- пульт ДУ
sony rm-x151
-
USB HUB
- 8-позиционный джойстик с энкодером
RKJXT1E12001
В качестве заготовки для рамки использовал стандартную заглушку.
Вырезаем, шпаклюем, шкурим
Примеряем
Красим
Компануем элементы
Еще раз примеряем, уже по месту
Собираем
Устанавливаем)))
Немного подробнее расскажу о технической части.
т.к. задача была сделать максимально удобное управление решил научить ардуину прикидываться медиаклавиатурой(не путать с обычной, библиотеки которой можно легко найти на офф сайте)
За основу был взят и доработан проект
ardumultimedia отдельное спасибо его автору, помог разобраться с некоторыми важными моментами.
Отключение дисплея позаимствовал из
этого проекта
Планшет постоянно включен (для длительных простоев установлю скрытый механический выключатель), для быстрого старта(вышел заправиться, в магазин и т.д.) 15 минут после выключения зажигания USB HUB остается запитаным, соответственно при включении зажигания все стартует мгновенно, при более длительных простоях надо подождать 1-2 секунды пока определится usb - периферия, сигналом что все готово как правило служит уведомление о выборе раскладки клавиатуры.
Итак более подробно о алгоритме работы.
Питание - при включении зажигания планшет включается автоматически, при выключении с задержкой в 3 секунды выключается,(на подготовку к выключению указывает плавно затухающий индикатор питания) если в это время нажать кнопку энкодера или кнопку OFF на ик пульте, или опять включить зажигание то планшет останется включенным.
так же можно выключить длинным нажатие на энкодер или с ик-пульта, включить соответственно тоже.
При отключении питания реле разрывает 4,5 провод (OTG) на usb разъеме, т.е имитируется передергивание разъема что сводит к минимуму возможность зависания usb, даже если в какой то момент usb повиснет,то при следующем старте все будет работать.
Медиаклавиатура - возможности
ИК - пульт
кнопка
______короткое нажатие
____ удержание
OFF
___________ВКЛ/ВЫКЛ
______________X
ATT
_____________MUTE
________________X
SRC
____________ALT+TAB
______________X
SEL
_____________ENTER
________________X
MODE
___________MENU
_________________X
LEFT
_____________ ←
_____________PREV_TREK
UP
_______________ ↑
__________________?
RIGHT
____________ →
_____________NEXT_TREK
DOWN
____________ ↓
__________________?
DSPL
____________HOME
________________X
SCRL
__________PLAY/PAUSE
_____________X
1
_________________X
__________________X
2
_________________X
__________________X
3
_________________X
__________________X
4
_________________X
__________________X
5
_________________X
__________________X
6
_________________X
__________________X
VOL+
_____________VOL+
_______________VOL+
VOL-
_____________VOL-
________________VOL-
Нужны идеи что повесить на длинное удержание вверх/вниз, на цифровые кнопки планирую повесить быстрый запуск приложений
Энкодер
________________________лево
___|
__право
__|верх|
_низ
короткое нажатие
_________←
_________→
______↑
_____↓
длинное нажатие
______PrewTrtack
__NextTrack
__Esk
__Menu
_____________________вращение влево
__|
__вращение вправо
кн. энкодера отжата
________vol+
________________vol-
кн. энкодера нажата
________HOME
_____________Alt+Tab
Радио
с радио пока есть определенные проблемы
1. воткнуть его прямо в разъем как на фото оказалось плохой идеей, после пары поездок по нашим замечательным дорогом скорее всего из - за вибрации радио перестало работать, хотя дома на столе работало как часы по несколько дней и несколько десятков циклов вкл/выкл
2. Качество приема даже с усилителем скажем так не фонтан, чисто ловит всего 4-5 станций
3. Высокочастотный писк - думаю со временем автор допилит ПО.
Что планируется доделать.
1. Вмонтировать энкодер на место прикуривателя, но для этого надо снимать центральный тунель, пока на это нет времени.
2. Докупить и установить родной подрулевой переключатель с резистивными кнопками.
3. Выкинуть макетку и развести нормальную плату, но это после окончательных тестов.
4. При включении заднего хода приглушать звук, а то иногда не слышно парктроник, но это уже когда буду плату разводить.
На данный момент в ПО ардуины периодически вылазят баги которые походу допиливаются, и периодически изменяется схема, как только все это будет отлажено на 100% тоже выложу здесь, если кто то захочет это повторить то могу скетч и схему скинуть в личку.
///////////////////////////////////////////////////
08.01.2014
Наконец то дошли руки до энкодера.
///////////////////////////////////////////////////
Изначально хотел использовать джойстик с энкодером, о чем и писал выше, но перед самой установкой попался мне в руки обычный энкодер с кнопкой, сравнив тактильные ощущения было решено отказаться от некоторой (возможно избыточной) функциональности в пользу эстетики.
Итак по порядку, местом для установки энкодера было выбрано штатное место прикуривателя в Фокусе, мне он без надобности + в подлокотнике есть розетка на12 В.
1. Снимаем все это с машины и разбираем на запчасти
2. Аккуратно высверливаем заклепку
и разбираем прикуриватель на отдельные составляющие
оставляем только нужные
3. т.к сама шляпка прикуривателя состоит из двух частей, то хотелось чтобы все это красиво светилось, для этого наглым образом отбираем у ребенка соску, а вернее колпачек от нее, вставляем до упора
4. Лишнее аккуратно подрезаем ножом
5. В итоге получаем три части которые соединяем с помощью холодной сварки
6. Осталось приклеить снизу подходящую к энкодеру ручку(у меня на это ушло три приклеенных одна на другую), вставляем светодиоды, и можно ставить в машину
7. Вот так смотрится на вместе, извините за грязную машину
//КОНТРОЛЛЕР НА АРДУИНЕ 14.01.14
Дошли руки дорисовать схему контроллера(алгоритм работы описан выше) и привести в порядок код скетча.
на столе все работает прекрасно, в машине еще иногда выскакивают мелкие баги которые постепенно устраняются, если кто решится повторить то с радостью помогу
Схема со временем будет немного изменятся, т.к. проект переехал с Arduino Nano, там была нехватка цифровых выходов и под джойстик пришлось задействовать аналоговые, которых теперь не хватает для резестивных кнопок, в принципе это вообще не проблема, просто переназначить входы, сделаю это когда допишу кусок для резестивных кнопок и начну разводить плату.
!!!Важно, для работы требуется модифицированный HID.cpp (есть в архиве, или можно взять здесь
https://github.com/aduitsis/ardumultimedia)
так же потребуется несколько библиотек которые тоже есть в архиве
В скетче полностью избавился от богомерзкого delay(); вместо него использовал библиотеку Timer.h что в свою очередь привело к усложнению кода, но зато положительно сказалось на стабильности работы.
Схема (обновил схему 15.01.14, нашел небольшую ошибку)
Архив со скетчем и всеми необходимыми файлами можно скачать
здесь