Показать сообщение отдельно
Старый 10.12.2012, 00:35   #1
s.m.
Гуру
 
Регистрация: 20.07.2009
Город: Минск
Регион: Беларусь
Сообщений: 1,543
s.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to behold
По умолчанию Citroeen Xsara Android CarPC

Здесь будет описание проекта моего Android CarPC.

23.06.2013 - Железо было обновлено на более современное. Подробности здесь

29.06.2014 - Добавил обновленную версию Autolauncher c поддержкой интернет-радио

Далее будет описание предыдущей версии железа

Все железо установлено и настроено, теперь период опытной эксплуатации

Предисловие (краткое

После двух предыдущих неудачных попыток поставить в авто CarPC (на базе Windows XP) я пришел к тому, что нужно строить систему на базе Android.
Почему Android?
Невысокие аппаратные требования и, соответственно, низкое энергопотребление, невысокая цена железа.
Также огромным плюсом является пальцеориентированность и устойчивость системы к внезапным отключениям питания. Это позволило отказаться от использования навороченных интеллектуальных источников питания.
Также, так как Android базируется на ядре Линукс и имеет открытые исходники, то есть возможность собрать недостающие модули ядра, что позволяет значительно расширить базовый функционал в сторону поддержки нужной периферии.

Требования к компу:

1. Камера заднего вида с автопереключением.
2. Термометр внутри салона / внешний .
4. Управление 2 подогревами сидений - раздельное включение, регулировка температуры отключения.
5. FM радио.
6. Управление аудио - коммутация источников, громкость, баланс, громкость тыловых каналов, тембр (НЧ/ВЧ).
7. Плеер распространенных форматов (MP3, FLAC, APE)
8. Навигация с GPS
9. Автоматическое включение - выключение от ACC
10. Управление основными функциями с рулевых кнопок.

Камера заднего вида всегда была в приоритете, что повлияло на выбор железа.
За более 1.5 года было сделано несколько попыток реализовать все вышеописанное: сначала был Huawei S7 с резистивным экраном и Андроид 2.1. Для камеры заднего вида планировал оставить уже работавшую к тому времени несколько лет систему из камеры возле подсветки номера и 5.6'' зеркала заднего вида с разрешением 480x234 и двумя видеовходами.
C Huawei S7 не срослось. Хотя уже была рамка для установки вместо климата, оставшаяся от предыдущей установки EEE PC и прекрасно подходившая к планшету, отсутствие обновлений прошивки выше 2.2 и невозможность нормально подключить даже HDD, не говоря уже о более сложных вещах, заставило продать этот в общем-то довольно мощный планшет с встроенным 3G и Bluetooth.
Далее была попытка использовать ТВ-бокс на TCC8902 с композитным выходом на все то же зеркало заднего вида с монитором. Изображение с было ужасным, но буквы в Навителе читались, если использовать скин с увеличенными шрифтами. Но отсутствие обновления на Андроид выше 2.3 и отсутствия тача на зеркале (уж очень не хотелось использовать мышь или тачпад для навигации) заставило посмотреть по сторонам и обнаружить такую замечательную вещь, как зеркало с встроенным 5'' навигатором на WinCe.
Так как WinCe совершенно не катил для моих задач, возникла мысль заменить начинку зеркала на планшет или телефон на Андроид.
Телефон был прикольнее - встроеннные wi-fi, gps, 3g. Но, то, что было в продаже, никак не влезало в отведенное пространство (особенно по длине), стекло пилить не улыбалось (страшно было за судьбу тачча), цены были слегка в неадеквате и что хуже всего - там не было USB-хост, что никуда не годилось. Возникали мысли о wi-fi роутере, через который можно было прицепить недостающее (типа D-link Dir-300, который уже был), но цепочка показалась мне громоздкой и ненадежной и вообще непонятно было, как заставить эту ораву включаться-выключаться корректно от АСС. Опять же были полные непонятки, как же подключить камеру.
Но вот подвернулся подходящий кандидат в виде 5'' Onda VX580W deluxe на уже тогда хорошо изученном проце Allwinner A10. В принципе его Cortex A8 1ГГц вполне хватало для моих задач,
а еще у него был емкостной тач, который 1:1 подходил вместо тача от навигатора в зеркале.

Обрадовавшись этому факту, немедленно заказал этот планшет на Панде




и заказал такое зеркало на таобао (самую дешевую его версию, переплачивать полстоимости за блютуз смысла не было, так как все равно нужен был только корпус)



Не прошло и 2 месяцев, как я все получил и приступил к скрещиванию двух девайсов.

Вот что было внутри изначально:

Вид сверху (кнопка снята, с кнопкой, к сожалению, нет фото)



Вид изнутри



Вид с обратной стороны



Все было почти хорошо, только пришлось немного подпилить крепление матрицы в зеркале, так как емкостной тач планшета оказался на несколько милиметров толще резистивного из зеркала. Длина и ширина были абсолютно одинаковы.

Вот передняя панель



Вот то самое крепление до переделки



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



И с другой стороны



Теперь нужно было сделать небольшой тюнинг задней крышки, так как плата планшета на несколько миллиметров была толще, чем надо. Пришлось пожертвовать одной из пружин крепления (на прочность крепления не влияет, так как вся конструкция весьма легкая).

Было так



Стало так


Теперь пришло время модернизировать железо планшета.

Кнопка включения зеркала была подключена к кнопке включения планшета.

Кнопка MENU планшета была подключена к дополнительной кнопке, приклеенной изнутри корпуса так, чтобы можно было ее нажать взакрытом состоянии. Эта кнопка нужна в режиме CWM Recovery для навигации по списку опций.

Батарея была удалена и вместо нее подключен модуль KIS-3R33S (покупается на ebay по цене около $1 за штуку)



Так как модуль по умолчанию настроен на 3.3В, то нужно слегка модернизировать его, чтобы он выдавал около 4В.
В модуле используется MP2307 (даташит приложен - MP2307_r1.9.zip).

Разбираем модуль и имеем внутри с лицевой стороны



И с обратной стороны



Проводим модернизацию, как показано на картинке - удаляем резисторы из мест, подписанных 1 и 2 и добавляем резистор 4.7К в позицию 2. Там же подписано, как подключаются входы-выходы



После такой модернизации планшет думает, что работает от батареи и показывает уровень заряда около 87%. По даташиту модуль требует конденсаторов на входе и выходе, но у меня уже продолжительное время нормально работает и без них.
У этого решения есть один недостаток - планшет не включается автоматически при подаче питания.

Для устранения этого недостатка была добавлена небольшая схема, выполненная навесным монтажом. Вход +4В схемы подключен к выходу DC-DC преобразователя. Выход схемы - параллельно кнопке питания. Таким образом, при подаче питания кратковременный импульс включает планшет.



Идем дальше. Для нормальной работы периферии нужен полноценный USB-хост. Так как в данном планшете этот порт занят модулем Wi-Fi WM-294 (даташит в аттаче - Wifi+802.11+n+module+WM294+spec), то нужно выпаять его и вывести контактные площадки на разъем USB. Чтобы порт нормально работал, в один из портов хаба, подключенного к этому порту, нужно включить USB Wi-Fi на чипсете RTL8188CUS.
Я использовал EP-8508



Вот плата до этой модификации



А вот после (нужно выпаивать модуль очень аккуратно - велик риск оторвать дорожки в процессе)



Дальше, опытным путем было установлено, что спутники системы GPS лучше всего ловятся, если приемник GPS находится вблизи лобового стекла. Также опытным путем было установлено, что GPS приемник нормально работал, если был подключен только к OTG-порту, находящемуся в режиме Master (то есть Host). В иных случаях на использованной прошивке не удавалось установить требуемую скорость 38400.
Поэтому решено было установить GPS-приемник внутрь зеркала.

Использовался проверенный GPS-приемник Holux M1000B



Этот приемник использует mini-usb разъем для питания и для передачи данных по протоколу RS-232 со скоростью 38400.
Вот распиновка



Приемник был освобожден от корпуса

Лицевая сторона:



Обратная сторона:





Для подключения к USB был использован преобразователь UART-USB на чипе FT232RL, с которого был отпаян mini-usb разъем и штырьки со стороны UART.

Преобразователь до переделки







Дальше все это было подключено: TX в M1000B к RX FT232, +5В в M1000B к +5В FT232б, GND в M1000B к GND FT232, USB от FT232 к mini-usb в режиме Host (4 и 5 контакты вместе), этот USB включен в разъем OTG планшета.

В результате всех вышеперечисленных модификаций получилось вот что:

Внутри



C закрытой крышкой




Перейдем теперь к периферии.

Вся периферия подключена к USB-host планшета кабелем около 2.5м (эта длина оказалась максимально возможной для нормальной работы EasyCap) к хабу D-link DUB-H7 второй ревизии



Питание хаба осуществляется от DC-DC преобразователя 12В-5В на LM2596



Этот преобразователь с управлением включением-выключением, поэтому нужно соединить управляющий сигнал с + питания, чтобы он включился.


К хабу подключены:

1. К мощному порту - EasyCap на STK1160 c одним видеовходом



2. USB Wi-Fi EP-8506



3. USB HDD Toshiba 500 GB - хватило одного порта для нормальной работы

4. USB DAC на PCM2704



5. Teensy 2.0 через FT232, находящаяся внутри магнитолы

6. 3G-Wi-FI роутер (пока не использую из-за морозов - там батарея внутри)



+ модем ZTE MF100



Для него выведен удлинитель в бардачок

7. Мощный порт (до 1А) - выведен удлинитель к ручнику - запасной порт для флэшки, клавиатуры, зарядки телефона и т.д.

Вот блок-схема всей системы - нужна для понимания, как все работает




Для связи с магнитолой и выполнения ряда других функций используется Teensy 2.0 +.
Teensy получает и передает команды по UART через UART-USB модуль на FT232RL.

Выполняемые функции:

1. Управление аудиопроцессором (громкость / баланс / уровень тыловых каналов / тембр НЧ / тембр ВЧ / коммутация радио-плеер) магнитолы (TDA7318) по шине I2C командами с UART
2. Управление синтезатором частоты, подключенным к FM радиотракту в магнитоле, командами с UART
3. Вывод температуры с 4 датчиков DS18B20 (1-wire) - внутренняя / внешняя / левое сиденье / правое сиденье, командами с UART
4. Передача команд с ИК-приемника рулевых кнопок в UART
5. Передача команды включения-выключения камеры заднего вида в UART по сигналу c фонарей заднего хода (+12V Rearview)
6. Двухканальное управление автоматическим подогревом сидений с управлением параметрами подогрева и включения-выключения по UART.

Вот как выглядят платы с Teensy 2.0+, синтезатором частоты LM7001, UART-USB модулем, исполнительными реле ACC и подогрева.

Платы крупно



Платы, подключенные к магнитоле




Принципиальная схема блока с Teensy, синтезатором, силовыми реле подогрева и управления питанием от ACC




Блок-схему и эту схему можно скачать в нормальном размере (schematic-diagrams.zip)

Скетч для Teensy на Processing можно скачать в атаче (teensy_code.zip)

Для удобного оперативного управления всем железом были куплены оригинальные рулевые кнопки от Peugeout.
Кнопки в оригинале были резистивными, но так как мультируль отсутствует в моей комплектации авто, то подключить штатно их было затруднительно. Выход был найден - 2 маленьких пульта дистанционного управления с питанием от CR-2032. Кнопки пультов припаяны к рулевым кнопкам. Оба пульта были RC-5, поэтому в качестве ИК-приемника для них был использован неизвестный интегральный ИК-приемник на 3 вывода и частоту 38 КГц.

Вот фотки одного из них, второй аналогичен, только надписи возле кнопок другие.






Коды кнопок могут быть изменены в настройках оболочки.

Вот так выглядело все железо в сборе перед установкой в авто (на фото другая USB звуковая - сейчас стоит нормальная на PCM2704)



Все фотки находятся в альбоме
Вложения
Тип файла: zip MP2307_r1.9.zip (408.4 Кб, 1082 просмотров)
Тип файла: zip Wifi+802.11+n+module+WM294+spec.zip (540.0 Кб, 1096 просмотров)
Тип файла: zip teensy_code.zip (2.9 Кб, 917 просмотров)
Тип файла: zip schematic-diagrams.zip (211.5 Кб, 1085 просмотров)

Последний раз редактировалось s.m.; 29.06.2014 в 21:11.
s.m. вне форума   Ответить с цитированием