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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Рабочий журнал (http://pccar.ru/forumdisplay.php?f=25)
-   -   Arduino&Android in Renault Megane III 2010г. (http://pccar.ru/showthread.php?t=22888)

arkserg 03.03.2015 00:33

Arduino&Android in Renault Megane III 2010г.
 
Наконец проект, думать над которым я начал еще год назад, обретает черты конечного устройства.

Немного про машину:
Renault Megane III 2010 г.в., бежевый. Это мой первый автомобиль, на права сдал в июле 2014г., машину начал подбирать за пол года до этого, а о том, что в ней будет Car PC знал еще до того, как появилось желание водить авто. Поэтому обязательным требованием при выборе автомобиля была возможность штатной установки дисплея 7’’. При этом он должен стоять достаточно высоко, чтобы не сильно отвлекаться от вождения и главное, наличие готовой рамки для него в машине или в свободной продаже. Меган брал у друга, комплектация с узеньким 3х-строчным дисплеем, но, так как существуют комплектации с дисплеем 7 дюймов, в Корейском интернет магазине была без проблем найдена для него рамка. Сразу после покупки авто она была заказана и через месяц была у меня.

Вот мои основные требования к Car PC:
· Bluetooth для громкой связи

· Интеграция с подрулевым переключателем

· Камера заднего хода

· Яндекс Навигатор

· Навител Навигатор

· Синхронизация с домашней iTunes библиотекой

· Интернет


Хоть первой мыслью и было собрать устройство на x86, решил пристально рассмотреть все остальные варианты. Вот краткий список:
· Полноценный Car PC на intel Core i3

· iPad mini

· Android свисток и внешний дисплей

· Pioneer SPH-DA110+Android свисток

· Магнитола с Apple CarPlay

· Android планшет


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

Плюсы:
· Низкая цена.

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

· Необходимые мне навигаторы.

· Синхронизация с iTunes через облако посредством Google Play Music.

Минусы:
· Необходимость использования внешнего Bluetooth модуля для организации Hands Free.

· Сложности с подключением камеры заднего хода


С выбором платформы пришло понимание какие решения будут использоваться для тех или иных функций.

Было закуплено:
1. Рамка из Кореи – 2600 руб.

2. Планшет MSI Primo 76 с 3G в уцененном отделе DNS – 3000 руб.

3. Arduino Uno – 400 руб.

4. Arduino USB Host Shield – 500 руб.

5. Преобразователь напряжения 12В – 5В на основе KISS

6. Bluetooth модуль Bluegiga wt32 – 1700руб.

7. Куча всякой электронной мелочевки из Китая для отладки + поиграться в свободное время.

arkserg 03.03.2015 01:08

Разобрал планшет, выпаял аккумулятор, мини джек на наушники, встроенный микрофон, вместо них припаял провода. Также подпаялся к кнопке включения и кнопке сброса планшета. Все провода напаял на колодку от материнской платы и закрыл планшет.

Когда получил Bluetooth модуль, просто офигел от того, какой он маленький, по изображению это было не понятно. Микросхема безвыводная с контактными площадками с шагом 1 мм. До этого ничего подобного паять не приходилось. С помощью многочисленных статей и видео в интернете с 3ей попытки смог изготовить ЛУТом плату-переходник, на которую дрожжащей рукой был припаян модуль. Как ни странно, всё заработало с первого раза. Модуль подключается к Arduino по UART интерфейсу и управляется простыми AT командами. В ходе тестов было обнаружено, что аудио выход у модуля full differential (+ и - на каждый канал), а не single-ended, что приводит к высокочастотному шуму при попытке подключиться к нему в режиме стерео. Для получения привычного сигнала с общей землей необходимо паять дополнительный преобразователь (схема есть в даташите к модулю). Так как мне модуль нужен только для телефонных разговоров, а там никакого стерео естественно нет, я решил отказаться от увлекательного сбора необходимых компонентов, травления очередной платы и пайки кучи деталей моими кривыми руками, и ограничиться моно.
Далее надо было подружить Arduino и планшет. Для этого, как уже упоминалось выше, был приобретен USB Shield от Circuits@home, точнее его китайская копия. Как я не старался, подключить планшет в Accessory Mode у меня не получилось, видимо планшет его не поддерживает, зато заработал Microbridge. Для создания соединения использовалось приложение из комплекта к adb библиотеки arduino, исходники которого в итоге легли в основу моего сервиса для планшета.
Приложение работает в фоне (висит сервис), общается с Arduino и обеспечивает необходимый функционал.
Сейчас оно умеет:
  • Перехватывать исходящий звонок и отправлять его через Arduino в блютус модуль.
  • Принимать от блютус модуля информацию о входящем звонке и выводить на экран фотографию абонента из адресной книги планшета с кнопками ответить\отбой
  • Запускать по команде от Arduino голосового ассистента Дусю (была выбрана из-за умения пересылать голосовые команды яндекс навигатору)
  • Запускать любое приложение на планшете
  • Управлять музыкальным плеером
  • Оповещать Arduino о событиях включения\выключения экрана
  • Отправлять Intent для Taskera

Из основного нереализованного - эмуляция нажатия кнопок клавиатуры. Оказалось, что эта возможность в Android недоступна для обычных разработчиков. Мне как минимум нужно эмулировать кнопку OK, так как яндекс навигатор после голосового поиска показывает несколько маршрутов и ожидает от пользователя подтверждения, а у меня нет в планах тянуться ради этого к планшету и заляпывать его пальцами. В интернете нашел решения в виде рутования планшета, выдергивания из него цифровой подписи системных приложений, и применения её в своем приложении совместно с установкой в системную директорию. Пока никак не могу заставить себя взяться за это гиблое дело.
Еще был вариант использовать Arduino Leonardo, но мой планшет в упор отказывается создавать ком порт без шилда, видимо производитель поленился реализовать полноценный USB Host, поэтому этот вариант пришлось отбросить.

arkserg 03.03.2015 01:16

После проделанной работы пришло понимание, что идеальным рецептом под мои нужды стал бы планшет с нормальным USB Host, соединенный с Arduino Leonardo. Так Leonardo одновременно общался бы с сервисом по Com порту для реализации функционала Bluetooth, и прикидывался HID клавиатурой для управления планшетом. Отпала бы необходимость в недешевом шилде и освободилось куча выводов Arduino, которые сейчас он занимает. А при условии замены моего Bluetooth модуля на этот итоговая стоимость снизилась бы в сумме на 1.5 тыс. рублей.

repa4ok 03.03.2015 03:28

Цитата:

Сообщение от arkserg (Сообщение 322180)
А при условии замены моего Bluetooth модуля на этот

Вам бы этот модуль не подошел.
сам приобрел похожий модуль, тоже основаный на OVC3860, которая не поддерживает микрофон как таковой. и не важно что выводы под него есть) китайцы:dntknw:

Ursus 03.03.2015 06:36

Цитата:

Сообщение от repa4ok (Сообщение 322184)
Вам бы этот модуль не подошел.
сам приобрел похожий модуль, тоже основаный на OVC3860, которая не поддерживает микрофон как таковой. и не важно что выводы под него есть) китайцы:dntknw:

На чем основано утверждение, что не поддерживает? Только на том что при включении профиль HFP не активируется? Или реально с AT командами поработали и профиля реально нет?

arkserg 03.03.2015 13:57

Цитата:

Сообщение от repa4ok (Сообщение 322184)
Вам бы этот модуль не подошел.
сам приобрел похожий модуль, тоже основаный на OVC3860, которая не поддерживает микрофон как таковой. и не важно что выводы под него есть) китайцы:dntknw:

Интересная информация, спасибо. Вот тут описаны AT команды для управления в режиме HFP, а здесь видно, что для подключения микрофона нужна небольшая обвязка, но вам, как реальному владельцу девайса должно быть виднее.

repa4ok 03.03.2015 14:54

Цитата:

Сообщение от Ursus (Сообщение 322188)
На чем основано утверждение, что не поддерживает? Только на том что при включении профиль HFP не активируется? Или реально с AT командами поработали и профиля реально нет?

нет, я не говорил что профиля нет, я говорил что микрофон нельзя подключить :)
основания для выводов:
1) сайты продаж модулей на этом OVC, форумы; например http://openrcforums.com/forum/viewtopic.php?f=48&t=3803
2) спрашивал продавца своего модуля про микро - сказал что не поддерживается
3) даташит; и хотя в некоторых источниках у 3860 есть вывод под микро (например, http://www.szriley.com/DownLoadFile/OVC3860.pdf), но это 2010 год, версия дока 1.0, к тому же на непонятном сайте. версия 1.2 2011 года уже говорит что пины что были на микро уже совсем не они (https://www.bluetooth.org/tpg/RefNotes/OVC3860_RIN.pdf). пины 22, 23

Цитата:

Сообщение от arkserg (Сообщение 322214)
Интересная информация, спасибо. Вот тут описаны AT команды для управления в режиме HFP, а здесь видно, что для подключения микрофона нужна небольшая обвязка, но вам, как реальному владельцу девайса должно быть виднее.

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

з.ы. в практике модуль я не тестил, ибо к тому времени как он пришел изучил все что представил выше. модуль отдал товарищу под бт аккустику. на замену купил MBC05-CAR. если кому-то удасться завести OVC3860 - это же будет только круто :)

CyberSubaru 03.03.2015 18:33

Слайды! Слайды!

Ursus 03.03.2015 20:36

Сейчас колупаю такой модуль. По состоянию на сегодня распаял его на плату, подключился по UART. В принципе связь работает, музыкой управлять можно, но HFP пока включить не удалось. На AT#CZ отвечает IS20090403. Похоже на дату прошивки.

repa4ok 03.03.2015 22:28

Цитата:

Сообщение от Ursus (Сообщение 322249)
Сейчас колупаю такой модуль. По состоянию на сегодня распаял его на плату, подключился по UART. В принципе связь работает, музыкой управлять можно, но HFP пока включить не удалось. На AT#CZ отвечает IS20090403. Похоже на дату прошивки.

эээ, что значит "пока включить не удалось"? звонок принимает и выводит звук? если да, то это кагбэ и есть HFP (который на самом деле HSP, ибо микрофон то не задействован, ага).
а к чему Вы пишите AT#CZ? IS20090403 вполне нормальный ответ - "This command causes the module to reset." (IS(version)).
можно попробовать "Mute/Unmute MIC AT#CM" для вкл/выкл микро.

спека на АТ команды, что смотрел: http://avrproject.ru/_fr/4/ovc3860-command.pdf


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

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