PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Проекты (http://pccar.ru/forumdisplay.php?f=21)
-   -   Nexus 7 in Ford Focus II (http://pccar.ru/showthread.php?t=20084)

Andrey_61 02.12.2013 17:11

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

В качестве заготовки для рамки использовал стандартную заглушку.

Вырезаем, шпаклюем, шкурим
http://s43.radikal.ru/i099/1312/0e/59900e29d313t.jpg

Примеряем
http://s019.radikal.ru/i627/1312/4d/f1701a876012t.jpg

Красим
http://i016.radikal.ru/1312/fb/c13165aadf16t.jpg

Компануем элементы
http://i017.radikal.ru/1312/40/b34c21e41c8dt.jpg

Еще раз примеряем, уже по месту
http://i069.radikal.ru/1312/6a/8d126c61b2abt.jpg

Собираем
http://i069.radikal.ru/1312/af/bb50585784d5t.jpg

Устанавливаем)))
http://i023.radikal.ru/1312/74/b1c1505eb365t.jpg

Немного подробнее расскажу о технической части.
т.к. задача была сделать максимально удобное управление решил научить ардуину прикидываться медиаклавиатурой(не путать с обычной, библиотеки которой можно легко найти на офф сайте)

За основу был взят и доработан проект ardumultimedia отдельное спасибо его автору, помог разобраться с некоторыми важными моментами.

Отключение дисплея позаимствовал из этого проекта

Планшет постоянно включен (для длительных простоев установлю скрытый механический выключатель), для быстрого старта(вышел заправиться, в магазин и т.д.) 15 минут после выключения зажигания USB HUB остается запитаным, соответственно при включении зажигания все стартует мгновенно, при более длительных простоях надо подождать 1-2 секунды пока определится usb - периферия, сигналом что все готово как правило служит уведомление о выборе раскладки клавиатуры.

Итак более подробно о алгоритме работы.

Питание - при включении зажигания планшет включается автоматически, при выключении с задержкой в 3 секунды выключается,(на подготовку к выключению указывает плавно затухающий индикатор питания) если в это время нажать кнопку энкодера или кнопку OFF на ик пульте, или опять включить зажигание то планшет останется включенным.
так же можно выключить длинным нажатие на энкодер или с ик-пульта, включить соответственно тоже.

При отключении питания реле разрывает 4,5 провод (OTG) на usb разъеме, т.е имитируется передергивание разъема что сводит к минимуму возможность зависания usb, даже если в какой то момент usb повиснет,то при следующем старте все будет работать.

Медиаклавиатура - возможности
ИК - пульт

http://111az.ru/upload/h158rmx151-f-view.jpg

кнопка______короткое нажатие____ удержание
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. Снимаем все это с машины и разбираем на запчасти
http://i062.radikal.ru/1401/c6/5001da6c6651t.jpg

2. Аккуратно высверливаем заклепку
http://s017.radikal.ru/i423/1401/bc/172e835a084dt.jpg

и разбираем прикуриватель на отдельные составляющие
http://i017.radikal.ru/1401/08/8b6fdd692f02t.jpg

оставляем только нужные
http://s017.radikal.ru/i440/1401/3e/d577be97cc85t.jpg

3. т.к сама шляпка прикуривателя состоит из двух частей, то хотелось чтобы все это красиво светилось, для этого наглым образом отбираем у ребенка соску, а вернее колпачек от нее, вставляем до упора
http://s003.radikal.ru/i204/1401/10/ddf76c9fc986t.jpg

4. Лишнее аккуратно подрезаем ножом
http://s43.radikal.ru/i099/1401/df/1c9d517b5797t.jpg

5. В итоге получаем три части которые соединяем с помощью холодной сварки
http://i016.radikal.ru/1401/ad/9fcf900bd746t.jpg

6. Осталось приклеить снизу подходящую к энкодеру ручку(у меня на это ушло три приклеенных одна на другую), вставляем светодиоды, и можно ставить в машину
http://s016.radikal.ru/i334/1401/82/cd153746ea7ft.jpg

7. Вот так смотрится на вместе, извините за грязную машину
http://i020.radikal.ru/1401/df/3f4a1e5e270at.jpg


//КОНТРОЛЛЕР НА АРДУИНЕ 14.01.14
Дошли руки дорисовать схему контроллера(алгоритм работы описан выше) и привести в порядок код скетча.
на столе все работает прекрасно, в машине еще иногда выскакивают мелкие баги которые постепенно устраняются, если кто решится повторить то с радостью помогу
Схема со временем будет немного изменятся, т.к. проект переехал с Arduino Nano, там была нехватка цифровых выходов и под джойстик пришлось задействовать аналоговые, которых теперь не хватает для резестивных кнопок, в принципе это вообще не проблема, просто переназначить входы, сделаю это когда допишу кусок для резестивных кнопок и начну разводить плату.

!!!Важно, для работы требуется модифицированный HID.cpp (есть в архиве, или можно взять здесь https://github.com/aduitsis/ardumultimedia)
так же потребуется несколько библиотек которые тоже есть в архиве

В скетче полностью избавился от богомерзкого delay(); вместо него использовал библиотеку Timer.h что в свою очередь привело к усложнению кода, но зато положительно сказалось на стабильности работы.

Схема (обновил схему 15.01.14, нашел небольшую ошибку)
http://i023.radikal.ru/1401/be/be3a3fec154et.jpg

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

timtman 02.12.2013 17:29

Андрей, поздравляю!
Вопросы:
1. Куда звук выводишь? В смысле - между планшетом и колонками что?
2. Как GPS, Bluetooth? Показалось что планшет без задней крышки (а на ней антенны).

SuperLSD 02.12.2013 17:31

Поздравляю... молодец!!

Andrey_61 02.12.2013 17:42

Цитата:

Сообщение от timtman (Сообщение 279324)
Андрей, поздравляю!
Вопросы:
1. Куда звук выводишь? В смысле - между планшетом и колонками что?
2. Как GPS, Bluetooth? Показалось что планшет без задней крышки (а на ней антенны).

Звук беру с 3.5 и подаю на усилок, помоему EOS, он ставился давно поэтому уже модель не припомню

Bluetooth и 3G антенна разведены на плате, вместо wifi и gps просто припаял кусочки проводов, с wifi нет проблем, а вот с gps еще настраиваю, теоретически для gps длинна антены должна быть 46,7мм при таких частотах значение имеет каждый мм, чтоб не парится отрезал кусок провода 5 см и периодически откусываю от него по полмиллиметра, в качестве контрольного прибора sgs3, сейчас нексус ловит 7-8 спутников sgs3 12-13, до выходных думаю закончу с настройкой, хотя и так проблем с навигацией нет.



Цитата:

Сообщение от SuperLSD (Сообщение 279326)
Поздравляю... молодец!!

Спасибо

mcf1 02.12.2013 20:59

замечательно))

nikolna 02.12.2013 21:32

присоединяюсь, отлично получилось!

snowin 03.12.2013 01:53

Шикарно! Как радио? Это же просто SDR я правильно понял?

Andrey_61 03.12.2013 02:30

Цитата:

Сообщение от snowin (Сообщение 279401)
Шикарно! Как радио? Это же просто SDR я правильно понял?

С радио как писал выше есть некоторые проблемы, но думаю что я их решу, главное чтоб автор SDR TOUCH приложение свое не забрасывал.

kristal0211 03.12.2013 08:46

По поводу удержания кнопок вверх вниз. Можно прикрутить переключение папок в плеере. Т.е. вверх следующая папка, вниз предыдущая.
А так сделано классно. Пленку ещё матовую на экран, а то бликов уйма.

anton2204 03.12.2013 10:01

Цитата:

Сообщение от kristal0211 (Сообщение 279411)
По поводу удержания кнопок вверх вниз. Можно прикрутить переключение папок в плеере. Т.е. вверх следующая папка, вниз предыдущая.
А так сделано классно. Пленку ещё матовую на экран, а то бликов уйма.

Извините за флуд в теме, но вот подскажите раз советуете: КАКОЙ командой переключение это(по папкам) сделать то? Это уже не медиакнопки(PREV_TREK, NEXT_TREK, PLAY/PAUSE) и стандартных кодов команд НЕТ!


Часовой пояс GMT +4, время: 12:49.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot