Carpc своими руками mazda
Итак проект КарПС Мазда3.
После того, как я побаловался доработкой (твиком) штатной головы Мазда3 и участвуя в соревнованиях ИАСКА в 2007 году занял 4 место (как еще обычно говорят – чуток не дотянул до третьего места) встал вопрос куда двигаться дальше.
Идти по пути использования более качественной головы и более лучшей акустики? Это показалось очень легким путем, поэтому было принято решение установить в машину компьютер с хорошей звуковой карточкой и посмотреть что получится.
Таким образом, я сейчас занимался только решением установки хорошего звука и управления компом с руля, остальным займусь после всех автозвуковых соревнований.
Для начала была приобретена материнская плата Intel D201GLY с 0,5 памятью и звуковая карточка ESI Juli@ (Джулия). Оказалось, что Джулия не хочет работать с VIA чипсетами, а хочет только Интеловские северные мосты. Ничего другого не оставалось, как искать другую материнскую плату. Остановился на LV-670 с 845 чипсетом. Подкупила полная комплектация разными внешними разъемами, наличие PCI слота, также IDE на 40 и 44 пина и не более. Процессор поставил Целерон 2,4, памяти на 1 Гигу.
Диск использовал на 40 Гб типа МК4025GAS, взятый от милитари ноутбука.
Блок питания М2-АТХ.
Первые испытания показали обнадеживающие результаты, хотя не устраивала скорость загрузки винды, звук с Джулии был на должном уровне, поэтому двинулся дальше по созданию корпуса компьютера.
Джулию, для того, чтобы она разместилась в корпусе, пришлось сложить под 90 градусов, спаяв небольшие шлейфы.
Для ускорения загрузки вначале использовал индустриальную скоростную карту памяти EDC 4000 серии на IDE 40 pin объемом 2 Гб. Скорость чтения хотя и была всего 20 Мб/с (диск показывал 28 Мб/с), загрузка винды пошла веселее, но все-таки оставалось недостаточно места под операционную систему и другие программы. Поэтому взял 44 пиновскую Dual EDC 4000 объемом 4 Гб, со скоростью чтения 40 Мб/сек.
Даже без всякого напряга и твиков винды, скорость чистой загрузки составила примерно 19 сек.
Для создания корпуса был взят обыкновенный металлический корпус стантартного компьютера и с помощью ножниц по металлу, плоскогубцев и дрели был урезан до нужных размеров.
Размещение компьютера сразу запланировал в бардачке автомобиля. Поэтому необходимо было, чтобы корпус компа четко вписывался в геометрию бардачка.
Вот разобранный на составляющие корпуса:
Вот все покрашенное:
И корпус теперь готов к установке в него железа:
Для решения всех вопросов, связанных с выводом USB, чтением различных карточек памяти, регулировкой напряжения, подаваемого на вентиляторы, контроля температуры внутри компа на переднюю панель установил комбинированное устройство AEROCOOL.
На передней панели корпуса разместились светодиоды, индицирующие включение питания, работы HDD и кнопки перезагрузки и вкл/выкл питания и поставлен механический выключатель, размыкающий цепь +12 на блок питания.
Также временно в цепи питания компьютера по +12 поставлен таймер на автомобильном 40А реле на три минуты. Это необходимо мне было сделать, так как на соревнованиях проверяют на щелчки и пуки при включении и выключении всего аудио оборудования, а комп пока никак в спящий режим не уходит, поэтому пришлось его загонять в ждущий. Разбираться со спящим режимом буду позже. Щелчки и пуки при включении пока решены таким образом – на ремоуте усилителя стоит таймер на 5 секунд задержки, так как звуковая карточка пукает через 2-3 секунды после включения компа (то есть когда еще запускается БИОС материнки).
Вот наконец все было впихнуто в корпус и опробовано в автомобиле. Все работало прекрасно, только при выкрученной громкости в ноль слышны были наводки от работы харда, работа DVD привода, какие-то попискивания. Были применены все способы борьбы с наводками, и толстые провода питания (8 квадратов) и разводка земли, ферритовые кольца (дроссели по питанию), кондесаторы по всем питающим напряжениям, полная гальваническая развязка, запитка Джулии по +12 и -12 от других источников питания (батарейки), смотрел осциллографом, понял лишь одно – помеха в звук лезет через аудио процессор Джулии по +5 вольт. Надо сказать, что в результате всех действий эти все помехи уменьшились до еле различимого уровня и в принципе можно было-бы с ними мириться, но кто участвовал на автозвуковых соревнованиях знает, что судьи на нулевом треке сразу обнаружат подобные наводки и в данном тесте сразу будет стоять ноль баллов. До соревнований оставалось совсем мало времени, надо было искать другой более легкий путь, а именно внешнюю звуковую карточку, поэтому в качестве источника звука было применено первое, что подвернулось под руку и было в наличии в магазинах.
Этим устройством оказалась внешняя профессиональная звуковая карточка DuaFire. Единственный минус этой карты, то, что ее родная частота 48 кГц, а при пересчете в 41, 4 на линейных выходах слышен слабенький равномерный шумок. Но разницы в звучании на 41,4 и 48 кГц услышано не было, поэтому извлечение звука остается на 48 кГц. Звук с этой карточки великолепный, удалось подкинуть звук через межблочники в машину БМВ, где установлена акустика Морель супремо, голова Мак406, все усилители тоже Маковские, которая занимала вторые места по звуку и в ней переделывался инсталл, чтобы занять первое место. Вывод был такой – немного не дотягивает до Мак406 по живости звучания. Ну и тут еще вопрос спорный, так как еще предстоит поиграться в компе с плеерами, драйверами и так далее.
Наводок никаких не обнаружено. Никаких! Полная тишина, хотя карточка запитывается по IEEЕ1394 12 вольтами с блока питания М2-АТХ. Посмотрел внутрь карточки насчет запитки выходных операционников. Операционники стоят JRC4580 и запитываются двухполярным плюс минус 5 вольт, сделанных на MC34063 преобразователях DC/DC. Посмотрел осциллографом на питание — очень хорошо сделана фильтрация, нет даже намека на какие-то наводки – чистая линия.
Теперь несколько слов о системе охлаждения. Во первых, сначала на пассивный радиатор на северном мосту, который очень сильно греется, поставил вентилятор, но потом от него отказался, перебрал все самые тихие сороковки, но шум все равно было слышно. Поэтому поставил на северный мост просто увеличенных размеров пассивный радиатор синего цвета.
Но радиатор процессора через вибродемпфирующую силиконовую прокладку поставил 70 мм самый тихий вентилятор, какой только нашел.
В задней стенки бардачка установил вытяжной 80 мм самый тихий вентилятор.
Для уменьшения распространения шума работы вентиляторов по пластику бардачка обклеил его снаружи визоматом.
Итог – внутри салона автомобиля при работающем компе на водительском сиденье совершенно не слышно работающих вентиляторов. Температура не поднимается выше 34-36 градусов, обычно в пределах 29-30 градусов.
Управление с руля. В машине установлен контролер Антонова, который позволяет управлять, как штатной головой, так и компьютером через ИК приемник.
Монитор. Был камнем преткновения и пока не был решен вопрос с размещением монитора и его переделкой, я и не приступал с созданию компа.
В результате в DV-M3 был вставлен монитор Лилипут 629.
Чтобы не повторяться, о мониторе можно прочитать в разделе «Сделай сам».
USB DVD/CD привод SAMSUNG SE-T084L, в котором сам привод я заменил на Pioneer DVR-K06/1, был вставлен в штатную голову вместо штатного CD привода.
Особых проблем не было, за исключением, что надо было попасть точно щель в щель, для того, чтобы диск при загрузке ничего нигде задевал. Таким образом, диски для компа я засовываю на передней панели штатной головы. Кнопка выброса диска подсоединена к кнопочке LOAD.
Крепление корпуса и вывод шнурков в бардачек:
Участвовал сначала в классе Дебют в соревнованиях ЕММА 27 июня. Занял, по моему, четвертое место, там так до сих пор и не вывесили результаты соревнований, только есть данные по призовым местам. Немного замечаний было по управлению – я вначале установил все реакции кнопок через 1-2 импульса, пришлось все ставить в ноль. Ну и подвела старая акустика по тональному балансу. Звуковая карта DuaFire выявила все косяки и недостатки старой акустики, хотя до этого при работе от штатной головы этого слышно ничего не было. Соревнования ИАСКА были буквально через два дня, поэтому исправить с акустикой уже ничего я не успевал, пришлось так и ехать. На ИАСКА я уже выступил в классе Amateur, где судился по полной программе и по звуку и инсталлу. Не буду описывать все замечания судей по инсталлу, но по звуку – за ширину и глубину сцены получены максимальные баллы, по тоналке низкие баллы из-за акустики и проблема из-за цифрового регулирования звука виндой на малой громкости. Причем, если регулировать звук общим микшером в окне самой звуковой карты DuaFire, таких проблем на малой громкости не возникает, вот что значит 24 битная и 16 битная регулировка уровня звука. Надо будет как-то потом добираться до регулировки звука в самой DuaFire.
В итоге занял опять четвертое место.
Источник
Собираем CarPC на Android: недостроенный долгострой
Моя машина меня устраивает почти всем. Есть практически все, что нужно. В комплектации блютусный телефон, кнопочный климат-контроль, электростеклоподъемники на всех дверях, подогрев сидений, подогрев, регулировка и складывание зеркал, чип-ключ, CD-чейнджер на 6 дисков, но без MP3 и линейного входа. Вот этот прискорбный факт и привел меня к мысли начать собрать свой CarPC на базе андроида. Начал рассматривать варианты и покатился… появилось много идей.
На тематических форумах есть множество различных вариантов CarPC на базе винды, андроидов, линукса и даже мака, но как и большинство любителей поковыряться в железках, я захотел собрать свой неповторимый. Для своего CarPC я выдвигаю несколько требований:
- основа нашего CarPC — Android;
- должен встраиваться в панель и выглядеть как заводской… без всякого колхоза;
- на борту должен быть блютус для подключения телефона, громкой связи и A2DP;
- обязателен качественный экран и высокая производительность графики;
- устанавливаем с минимальным вмешательством в проводку авто;
- большой HDD или SSD для музыки, навигационных карт, записей с видеорегистраторов и т.д.;
- синхронизация музыки, когда машина рядом с домом и ловит домашний Wi-Fi;
- пусть и медленный, но постоянный доступ в интернет.
Выбрал Android потому как есть куча качественных навигашек, куча полезного софта, куча подходящих устройств и прошивок для них, открытые исходники и под него легко писать свой код. Встречал готовые решения, удовлетворяющие некоторым требованиям, но я их, честно говоря, не рассматривал толком, т.к. сходу ничего не понравилось, да и цена часто высокая при скудном функционале. Поэтому оставлю проблемы выбора и перейду к кастомному варианту, который должен быть для меня практически идеальным.
Статья обзорная. Система представлена в общем виде и по каждому компоненту системы я хочу показать свое видение его реализации. Наш carpc может состоять из нескольких девайсов. Отдельные модули, связи между ними я попытался изобразить вот так:
Все блоки разделил по степени надежности:
- Синий — девайсы, которые могут отключиться в любой момент;
- Оранжевые — девайсы которые должны работать независимо от синих, включаться быстро и быть надежными по возможности. Хотя ничего страшного не случится, если система упадет целиком… с дороги мы не уедем, движок заглохнуть не должен);
- Черные стрелки — цифровая передача данных;
- Красные стрелки — аналоговая передача звука;
- Прерывистая стрелка — WiFi сеть.
Контроллер
Сердцем системы является “Контроллер”. В его задачи входит получение данных с устройств и датчиков, обработка этих данных и по возможности управление ими. Если установлена связь контроллера и планшета на базе Android, то контроллер передает собранные данные более “интеллектуальной” программе андроида, и тогда уже она позволяет изменять настройки контроллера, управлять посредством контроллера другими девайсами.
Немного забегая вперед приведу пример:
Допустим андроид повис, перезагружается или на нем упала управляющая программа. В это время на блютусный модуль с телефона идет входящий звонок. Есть возможность ответить на него кнопкой на руле. И она реализуется контроллером без участия андроида. Т.к. контроллеру доступна информация о состоянии кнопок руля и он видит, что связи с андроидом нет, то он может реализовать такую примитивную функцию как прием вызова по короткому нажатию, отбой по длинному. Если все в порядке и управляющая программа ему отвечает, то он передаст информацию о входящем звонке андроиду, андроид нарисует красивое окошко и можно будет реализовать более удобный функционал средствами самого андроида. О кнопках на руле андроид тоже соответственно будет знать. То же самое касается радио. Переключение каналов и управление громкостью можно осуществить с руля без участия андроида.
В основу контроллера я предполагаю взять камень STM32. Вожусь с платой STM32F4-Discovery, но возможно использовать конечно и другие варианты. Лично мне несколько сложнее писать код на С под STM32 и не так удобно, чем скажем на python или node.js под Raspberry Pi. Но девайс на STM32 более подходящий для этих задач. Логика сравнительно простая и код необходимо написать, грубо говоря, для подключения устройств и обработки простых команд. Плюс, я думаю, контроллер на базе STM32 будет инициализироваться намного быстрее Raspberry Pi.
Планшет
Я выбрал в качестве планшета Amazon Kindle Fire первого поколения. Он у меня давно завалялся и его видимая область экрана хорошо подходит по размерам в 2DIN. Размеры корпуса позволяют воткнуть его без значительных переделок панели в машине. Сравнительно дешевый, имеет качественный экран, достаточно мощный проц и графику. У него нет лишних кнопок! В данном случае это скорее плюс! Есть USB-хост, но, думаю, не стоит его использовать. Так как поддерживается он только в кастомных прошивках и при подключении нескольких девайсов происходили различные плавающие глюки. Стабильной работы не добился…
Думаю, все в курсе что в старом Kindle Fire нет ни 3G, ни GPS, ни блютуса, поэтому для 3G и подключения внешних USB накопителей использую TP-LINK MR3020. Такой вариант несколько избыточен, но пока пусть будет так.
Прошивка
Думаю, не стоит сильно пилить саму прошивку, а то обновлять ее будет проблематично. Хотелось бы весь функционал реализовать чисто приложением. Но все-таки если делать удобно, то можно убрать значок батарейки (или показывать им уровень топлива в баке, заряд аккумулятора). Значок блютуса показывать при подключении к блютус-модулю нашего CarPC телефона и/или A2DP плеера, а также показывать уровень сети подключенного через блютус мобильника. Также неплохо бы подцепить стандартную звонилку андроида к своему блютус модулю.
Связь контроллера с планшетом
Связь с планшетом на андроиде можно реализовать разными способами. Если на борту есть USB-хост, то можно использовать USB UART, Ethernet. Можно и через Wi-Fi, но хотелось бы иметь надежное проводное подключение. Самым оптимальным вариантом реализации соединения я считаю использование ADK, поддержка которого уже давно реализована даже не в самых свежих версиях андроида. В этом случае подойдет любой планшет и даже мобильный телефон, на который можно поставить управляющий софт, подключить к нему провод от carpc, воткнуть в держатель. К тому же для STM32F4 есть реализация протокола ADK. Собирал и проверял. С планшетом и мобильником тестовый пример работал. Есть глюки, но можно разобраться. На хабре уже есть материал на схожую тему:
Android + Arduino = ♥
Старинное радио на базе Android
USB устройства для Android
Работа с COM портом в Android приложениях
COM порт на Android
Буквально на днях я набрел на чип FT311D от FTDI, который реализует на базе ADK удобный интерфес Андроид (GPIO, UART, PWM, I2C Master, SPI Slave, SPI Master).
Это решает кучу проблем! Заказал, жду. Позволяет использовать любой девайс на андроиде и стоит довольно дешево. Поэтому я решил использовать его. В качестве интерфейса мне по душе больше старый добрый UART. Также скоро выйдет FT312D для аналогичных задач.
Хотелось бы иметь постоянно включенный GPS с возможностью записей треков на карту памяти, и их периодической синхронизации с дропбоксом… много возможностей для творчества появляется! Треки с хорошим качеством пригодились бы для проекта OpenStreetMaps. Для получения точных треков хотелось бы использовать GPS модуль с поддержкой технологии Dead Reckoning. Использует дополнительные данные от гироскопа, датчика температуры и скорости для уточнения положения в пространстве, калибруется пока сигнал есть, вычисляет положение по сенсорам при потере GPS сигнала.
Есть уже очень достойный проект на базе чипа UBLOX LEA-6R.
Выдает очень неплохие результаты по сравнению с обычным GPS:
Сравнение с треками обычных GPS
Видео работы навигашки с таким GPS.
ТЦ «Бела Дача»
Несколько этажей по парковке
После 2.5км тонеля ушло на 7.5 метров
Еще парковка
С такими точностями по кучности треков в OSM’е скоро и количество полос можно будет посчитать)
На данный момент вроде бы проект подзаглох…
Очень хотелось бы найти подобный открытый проект. Купил такой же чип UBLOX LEA-6R, попытался подключить. Простые GPS данные получаются элементарно, с гироскопом и одометром пока не разбирался.
Заметил, что на хабре есть любители фильтра Калмана. Возможно данная статья подтолкнет интересующихся реализовать подобное на базе контроллера и обычного чипа GPS, статьи помогут с мат. частью)
Неплохо бы еще сохранять данные акселерометра. В дальнейшем по массиву таких данных можно было бы попробовать автоматически наносить на карту лежачие полицейские, опасные ямы и т.д.
Телефон
Блютуса нет в планшете, да и при наличии толку мало. Когда я начал заниматься этим вопросом реализации профиля HFP под андроидом не обнаружил. Можно соединяться с гарнитурой, но в роли гарнитуры андроид-устройство выступать не могло. Для этой задачи можно использовать внешний модуль Bluegiga WT-32.
Позволяет совершать/принимать звонки, следить за параметрами сети, получать историю вызовов, адресную книгу, поддерживает A2DP, AVRCP и много другое. Некоторые наработки описаны тут. Это решение меня полностью устраивает: им можно управлять с помощью контроллера кнопками с руля без использования планшета, работает со всеми телефонами, которые я проверял (современный HTC One X, HTC Desire, дедушка HTC Hero, какой-то древний самсунг, прадедушка Qtek 8310, огрызок прошлого поколения)
Со звуком на данный момент некоторая неопределенность…
Нужно подобрать необходимые компоненты. Надеюсь на Вашу помощь!
Есть несколько аналоговых источников стерео-звука. Нужно их смешать в один стерео-канал и управлять как общей громкостью, так и громкостью каждого канала в отдельности через цифровой интерфейс. Плюс в машине может быть много динамиков (передние/задние и т.д.). Нужно как-то и это учитывать… Находил для этих задач некоторые готовые микросхемы, но с решением не определился.
Каналы примерно следующие:
- планшет (оповещения, музыка, навигация, skype, hangouts и т.д.);
- WT32 (телефон, A2DP музыка);
- AUX оставить для подключения внешних устройств;
- внешнее FM-радио (у меня в планшете его нет, да и мне кажется оно должно быть внешним модулем, т.к. управлять им можно и без планшета);
- плюс возможно кто-то захочет подключить CD-чейнджер или рацию.
Также сигнал от микрофона из машины должен идти к модулю блютуса WT32 и к планшету (skype, hangouts, голосовые заметки и т.д.). Желательно как-нибудь сделать эхоподавление между выходом звука на усилитель и микрофоном. Наверняка есть какое-нибудь готовое решение.
FM-Радио
Пока я использовал примитивный TEA5767. Примеров использования в сети достаточно… вместо нудного и скучного даташита можно начать ознакомление тут FM STEREO Приемник на модуле TEA5767
Как я уже писал, хотелось бы, чтобы он подключался к контроллеру и не зависел от работы андроида, но мог управляться и конфигурироваться через андроид.
Есть также интересная возможность использовать знаменитый RTL2832U.
Кого заинтересует этот чип откроет для себя массу возможностей для реализации множества классных идей. Про него уже есть несколько топиков:
Радиоприемник 60-1700 МГц на RTL2832 за 20 баксов или SDR для начинающих
USB TV-тюнеры на rtl2832 — или как услышать в радиоэфире все за 600 рублей
Правда остается вопрос с его подключением. Т.к. в моем варианте usb порт планшета уже занят. Тогда не совсем понятно, как и куда его подключать. Но если к андроиду подключен USB хаб и обмен с контроллером идет через какой-нибудь модуль USB UART, то проблема решаема. Впрочем стабильной работы нескольких устройств через usb-хост на Kindle Fire я не добился…
Видеорегистрация
Прилетел из Кореи BlackVue DR500GW-HD. У него есть GPS, акселерометр, WiFi и нет экрана! Это является для меня существенным плюсом.
Умельцами для него активно пилится кастомная прошивка тут, но политика распространения прошивки не очень нравится, как-то все по-тихому, по почтам, исходников нет… но ребята молодцы! Сильно прокачали функционал этого замечательного девайса.
По WiFi живое видео с камеры и записанные ролики можно смотреть через андроид, сохранять их. Думаю не очень сложно написать софт, чтобы автоматически выкачивать с регистратора GPS треки, данные акселерометра и даже видео, если скорость WiFi позволит.
Для камеры заднего вида можно приспособить даже вебку. Подключить через Raspberry Pi или какой-нибудь DIR320, MR3020 к сети. В самом простом случае смотреть через браузер)
Вообще было бы очень неплохо иметь хороший механизм подключения нескольких видеорегистраторов к своей системе для записи видео сразу на жесткий диск. Что-то типа промышленного видеорегистратора для видеонаблюдения.
В этом плане меня очень обнадеживает проект Virt2real. Мне кажется, он не совсем подходит для такой задачи, но раз наработки есть, то возможно кто-нибудь запилит более специфичный девайс с конкретной задачей сбора видео с нескольких выносных камер (встречал в видеорегистраторах выносные HDMI камеры) на HDD, доступом к архиву и управлением через Ethernet, своим API и/или SDK для сторонних приложений, открытой прошивкой и по приемлемой цене! В общем есть над чем работать)
Еще была мысль сделать нечто вроде прокси SD-карты, т.е. подключить видеорегистратор вместо SD карты к ПЛИСке или процессору, который бы реализовал интерфейс карты памяти, но писал данные по сети в расшаренную папку или через SATA на HDD. Но это не так просто и сам этим заниматься не рискнул. Из готовых вариантов практически ничего не попадалось. Есть www.eye.fi, но в данном случае это не подойдет. Соединение желательно проводное, не факт, что она будет стабильно держать поток в 10-15Мб/с. С помощью таких девайсов можно было бы направить запись с нескольких видеорегистраторов на один винч.
Также у нас есть топик «Автомобильная спутниковая сигнализация на STM32F1», там очень много интересных идей. И идея насчет камер на базе STM32F4 очень впечатлила.
Автозапуск
Хотелось бы предусмотреть возможность автозапуска. Решения разные для каждого авто, но в моем случае подходит обходчик иммобилайзера Fortin EVO-ALL.
Маленькая коробочка с несколькими разъемами и тремя светодиодами. Поддерживает достаточно много моделей авто различных производителей. Цепляется несколькими проводами и позволяет заводить машинку без ключа. Т.е. нет необходимости оставлять один ключ в машине, чего требуют многие сигнализации с автозапуском и не позволяют многие страховые в базовом договоре на КАСКО.
Хоть автозапуск отдельно отстоит от функционала CarPC, но сигнализации с автозапуском у меня нет и не хочется устанавливать. Это не удобно, а в плане защиты авто я больше надеюсь на КАСКО от угона. Поэтому выдать сигнал на запуск должен контроллер по смске с шифрованной командой, либо по звонку с определенного номера в самом простейшем случае. Много различных вариантов можно придумать. Для этого лучше бы прикрутить GSM модуль к контроллеру. Я думаю, это надежнее, чем канал связи через интернет. В памяти контроллера или на SD-карте можно хранить конфиг, в котором будет определяться последовательность действий после успешного запуска. Летом включаем кондей, зимой обдув лобового стекла, подогрев стекол/зеркал, руля, сиденья водителя и т.д. Этот конфиг андроид может изменять и сохранять в память контроллера. Хотелось бы отправить конфиг в дропбокс и заливать в контроллер автоматом программой на планшете.
Контроль давления в шинах — TPMS
Давно не следил за темой, но помнится, были наработки, позволяющие получить данные в свой девайс от уже существующих на рынке систем:
Контроль давления в шинах (USB TPMS)
Custom USB tyre pressure monitoring interface
Наткнулся на интересную штуку от TI.
Маленький специализированный модуль для этих задач TX-Module TPIC82000 Series, обещают “Over 10 year life with 550mAhr Li-Coin battery” в продаже не нашел, но хотелось бы повозиться.
Дополнительные кнопки, разъемы
Честно говоря, есть очень большое желание их избежать вовсе… тех штатных кнопок, что стоят на руле и консоли скорее всего вполне хватит, никаких дополнительных самодельных крутилок и кнопок не хочется, т.к. вряд ли их можно будет сделать качественно. У Kindle Fire кнопка всего одна, и та не всегда нужна. В каждом авто есть какая-нибудь неприметная панелька, туда можно установить “сервисные” кнопки и разъемы. Они нужны крайне редко. Если же все-таки есть необходимость использовать аппаратные кнопки, то на мой взгляд лучше их сделать сенсорными и расположить прямо под пластиком панели. Можно использовать специализированные контроллеры Atmel серии QTouch, QMatrix. Там есть кнопки, слайдеры, круги и вроде бы оно отлично через пластик панели должно работать.
Впрочем этот вопрос решается индивидуально в каждом случае, возможно в каких-то авто есть подходящие крутилки и место под дисплей.
Голосовое управление
По большей части эта задача уже решается в андроиде, там уже есть некоторый функционал, а также видел какие-то сторонние движки для распознавания речи, создания голосовых команд. Честно говоря, если бы не гугловский голосовой поиск, я особо и не захотел бы с этим возится. По моим тестам он распознает достаточно качественно даже разнообразные произвольные команды. Но в идеале хотелось бы хорошую оффлайновую распознавалку. Хочу напомнить, у нас есть очень интересный топик «Распознавание речи на STM32F4-Discovery», поэтому можно попробовать провернуть подобное и силами микроконтроллера.
Не совсем понятно, как из всего потока речи, музыки, шума и посторонних звуков выловить саму команду. На мой взгляд системе нужно дать имя. Допустим будет какой-нибудь Джонни:) Тогда рядом с проскочившем именем в общем потоке речи можно искать ключевые слова команды. Писать в буфер, скажем, 5-10 секунд звука, детектить каким-нибудь эффективным оффлайновым алгоритмом заданное имя, и если поймали, то обрабатывать кусочек до имени и немного после. Посчитанный «отпечаток» фразы отправляем на сервер гугла, получаем строку фразы и ищем ключевые слова, анализируем запрос. Можно реализовать что-то вроде управления тачкой, навигашкой и т.д. фразами в стиле «Джонни, закрой окна», «Джонни, открой багажник», «Джонни, поехали на работу. », «Рули домой, Джонни!».
Если у вас реализован или есть в планах еще и умный дом, то можно их попробовать объединить и обрабатывать команды с учетом того, что можно из машины сделать запрос к дому и наоборот. Например, узнать выключены ли дома электроприборы или сразу обесточить контур всех розеток, включить теплые полы перед приездом, кондей и т.д.
Возможно потребуется реализовать выдачу каких-либо сообщений голосом (например, чтение прилетевших смс). К сожалению, я этим вопросом плотно не занимался, но читалки вроде бы уже давно умеют начитывать текст… можно подобрать что-то и для такой системы.
Питание
По поводу вопроса питания всего этого зоопарка устройств у нас есть отличный топик «Паяем «умный» автомобильный БП. ». Для наших устройств нужно еще 3.3В получить, но как там сказано “по умолчанию модуль KIS-3R33S настроен на 3.3V”. Да и имея стабильный и надежный источник питания в 5V большого труда для нас не составит получить 3.3 прямо на плате, используя какой-нибудь экономичный и надежный DC-DC Step-Down преобразователь или кренку 78L33. Конечно, если садится аккумулятор автомобиля, девайсы нужно отключать, контроль за системой нужен. Возможно есть смысл поставить небольшую батарею резервного питания для критических систем типа автозапуска.
Различные плюшки
Поскольку у нас есть возможность подключиться к машине, то мы может получать от нее данные и частично управлять ей. Можно реализовать вещи, которые есть не в каждой машине. Например:
- автоматическое складывание/раскладывание зеркал при блокировке/разблокировке машины с брелка;
- опускание зеркал чуть вниз при включении задней передачи;
- поднятие стекол дверей при блокировке;
- блокировка дверей при наборе скорости свыше 20 км/ч;
- блокировка открывания багажника кнопкой снаружи при заведенном двигателе;
- умное управление светом;
- вывод на экран андроида различных параметров двигателя;
- .
Веб-доступ
Конечно, желательно подцепить систему на какой-нибудь сервер. Собирать там статистику, треки, обновлять состояние машины, позволить редактировать настройки, смотреть снимки с камер (если установлены) и т.д. Может даже сделать на нем API для мобильного приложения. Но останавливаться на этом не буду, т.к. это привычная тема для 99% хабражителей и в топике «Автомобильная спутниковая сигнализация на STM32F1» уже был затронут этот вопрос.
Не прощаюсь.
Вроде бы это все, о чем я хотел рассказать. На данный момент этот проект существует в виде отдельных демок, платок, заметок с кусочками кода и висящих на спаянных проводах детальках. По каждому пункту неплохо бы написать небольшой отдельный топик посерьезнее, с техническими подробностями, примерами команд, ссылками на github, разведенными печатными платами и т.д. Пока такого, к сожалению, нет. Надеюсь, дело двинется дальше и нечто подобное появится!
Источник