Показать сообщение отдельно
Старый 02.12.2013, 17:11   #1
Andrey_61
Старший Пользователь
 
Регистрация: 25.03.2010
Возраст: 41
Регион: 61
Машина: FF2
Сообщений: 228
Andrey_61 is just really niceAndrey_61 is just really niceAndrey_61 is just really niceAndrey_61 is just really niceAndrey_61 is just really nice
По умолчанию Nexus 7 in Ford Focus II

Я наконец то сделал это, почти)

Итак по порядку.
Задачи:
- Сделать проект максимально похожим на промышленное изделие
- Максимальная автоматизация
- Максимально удобное управление, чем меньше надо тыкать пальцами в тач тем лучше, меньше отвлекает от дороги.


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, нашел небольшую ошибку)


Архив со скетчем и всеми необходимыми файлами можно скачать здесь

Последний раз редактировалось Andrey_61; 15.01.2014 в 16:43.
Andrey_61 вне форума   Ответить с цитированием