![]() |
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. Куча всякой электронной мелочевки из Китая для отладки + поиграться в свободное время. |
Разобрал планшет, выпаял аккумулятор, мини джек на наушники, встроенный микрофон, вместо них припаял провода. Также подпаялся к кнопке включения и кнопке сброса планшета. Все провода напаял на колодку от материнской платы и закрыл планшет.
Когда получил Bluetooth модуль, просто офигел от того, какой он маленький, по изображению это было не понятно. Микросхема безвыводная с контактными площадками с шагом 1 мм. До этого ничего подобного паять не приходилось. С помощью многочисленных статей и видео в интернете с 3ей попытки смог изготовить ЛУТом плату-переходник, на которую дрожжащей рукой был припаян модуль. Как ни странно, всё заработало с первого раза. Модуль подключается к Arduino по UART интерфейсу и управляется простыми AT командами. В ходе тестов было обнаружено, что аудио выход у модуля full differential (+ и - на каждый канал), а не single-ended, что приводит к высокочастотному шуму при попытке подключиться к нему в режиме стерео. Для получения привычного сигнала с общей землей необходимо паять дополнительный преобразователь (схема есть в даташите к модулю). Так как мне модуль нужен только для телефонных разговоров, а там никакого стерео естественно нет, я решил отказаться от увлекательного сбора необходимых компонентов, травления очередной платы и пайки кучи деталей моими кривыми руками, и ограничиться моно. Далее надо было подружить Arduino и планшет. Для этого, как уже упоминалось выше, был приобретен USB Shield от Circuits@home, точнее его китайская копия. Как я не старался, подключить планшет в Accessory Mode у меня не получилось, видимо планшет его не поддерживает, зато заработал Microbridge. Для создания соединения использовалось приложение из комплекта к adb библиотеки arduino, исходники которого в итоге легли в основу моего сервиса для планшета. Приложение работает в фоне (висит сервис), общается с Arduino и обеспечивает необходимый функционал. Сейчас оно умеет:
Из основного нереализованного - эмуляция нажатия кнопок клавиатуры. Оказалось, что эта возможность в Android недоступна для обычных разработчиков. Мне как минимум нужно эмулировать кнопку OK, так как яндекс навигатор после голосового поиска показывает несколько маршрутов и ожидает от пользователя подтверждения, а у меня нет в планах тянуться ради этого к планшету и заляпывать его пальцами. В интернете нашел решения в виде рутования планшета, выдергивания из него цифровой подписи системных приложений, и применения её в своем приложении совместно с установкой в системную директорию. Пока никак не могу заставить себя взяться за это гиблое дело. Еще был вариант использовать Arduino Leonardo, но мой планшет в упор отказывается создавать ком порт без шилда, видимо производитель поленился реализовать полноценный USB Host, поэтому этот вариант пришлось отбросить. |
После проделанной работы пришло понимание, что идеальным рецептом под мои нужды стал бы планшет с нормальным USB Host, соединенный с Arduino Leonardo. Так Leonardo одновременно общался бы с сервисом по Com порту для реализации функционала Bluetooth, и прикидывался HID клавиатурой для управления планшетом. Отпала бы необходимость в недешевом шилде и освободилось куча выводов Arduino, которые сейчас он занимает. А при условии замены моего Bluetooth модуля на этот итоговая стоимость снизилась бы в сумме на 1.5 тыс. рублей.
|
Цитата:
сам приобрел похожий модуль, тоже основаный на OVC3860, которая не поддерживает микрофон как таковой. и не важно что выводы под него есть) китайцы:dntknw: |
Цитата:
|
Цитата:
|
Цитата:
основания для выводов: 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 Цитата:
касаемо обвязки: да, я встречал такое, например, на сайте мастеркита есть похожая дока, но подтверждения что это реально работает не нашел. зато про то, что не работает микро пишут везде :) з.ы. в практике модуль я не тестил, ибо к тому времени как он пришел изучил все что представил выше. модуль отдал товарищу под бт аккустику. на замену купил MBC05-CAR. если кому-то удасться завести OVC3860 - это же будет только круто :) |
Слайды! Слайды!
|
Сейчас колупаю такой модуль. По состоянию на сегодня распаял его на плату, подключился по UART. В принципе связь работает, музыкой управлять можно, но HFP пока включить не удалось. На AT#CZ отвечает IS20090403. Похоже на дату прошивки.
|
Цитата:
а к чему Вы пишите 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 |
Немного фото.
Китайская рамка под дисплей 7'' https://lh6.googleusercontent.com/-p...8b4f6d12ab.jpg Bluegiga WT32 на плате: https://lh6.googleusercontent.com/-D...8406003386.jpg Ардуино с подключенным блютус модулем: https://lh6.googleusercontent.com/--...ae9f3e6c03.jpg Arduino USB Host Shield: https://lh3.googleusercontent.com/-b...o/IMG_2259.JPG Оболочка входящего звонка (пока не работал с дизайном): https://lh6.googleusercontent.com/-p...%2B%281%29.jpg Индикация текущего разговора (также только наброски): https://lh4.googleusercontent.com/-i...%2B%282%29.jpg |
Цитата:
|
arkserg, извини что в твоей теме разошлись, но профильной, вроде, нет.
|
Дык написано ведь у продаванов...поддерживаемые профили A2DP, AVRCP и все. Другими словами эта железка только музыку слушать.
ЗЫ. WT32 куда интересней, куча профилей, но мля туева хуча неудобных команд как по мне, другими словами нет упорядоченных, отвечающих конкретно за каждый профиль. Анализ этих команд занимает довольно большой объем в МК(хотя нынче это не особо кретично) или тупо пробросить через мост USB-UART и всю рутину делать в софте ведроида/винды. Также нужно делать внешний обвес из деталюх. |
Цитата:
Вообще WT32 пока нравится, но есть существенные минусы:
|
Цитата:
Цитата:
Цитата:
к примеру, http://www.st.com/web/en/resource/te...CD00164982.pdf |
Цитата:
|
Цитата:
|
Вот и я об чем говорю...в свое время поигрался и забросил ибо муторный. Нужно следить за конектами профилей, которые отваливаются периодически непонятно почему. Также часто важен порядок подключения профилей. Например подключаешь в порядке AVRCP, A2DP и потом скажем SPP, то SPP не хочет. Подключаешь SPP первым, а потом остальные работает. Заставить работать одновременно профиль A2DP и PBAP у меня не получилось. Нужно закрывать соединение A2DP и только тогда подключать PBAP. Хотя пишут, что поддерживает одновременно 6 коннектов (аля каждый профиль за конект). Правда я игрался с прошивкой IWRAP 4.01, сейчас уже актуальна 6.0.
PS.. Как по мне устарел этот чипсет ВС05ММ который юзается в WT32. Правде все поделки от китов на нем же. Почему-то свежие чипы от CSR тяжко приживаются у них. |
Цитата:
с доступностью да, чуток проблема. я заказывал на digikey. |
Цитата:
|
Цитата:
|
Цитата:
но, по факту, если установить FD как main channel, то можно подмешать SE, вродь должно работать. Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
но плату под нее развести еще не успел, и думаю это будет не так быстро (несколько недель уж точно), ибо никогда таким не занимался, я больше по части кодинга :whistle: |
Цитата:
|
[QUOTE=arkserg;322278]Немного фото.
Китайская рамка под дисплей 7'' https://lh6.googleusercontent.com/-p...8b4f6d12ab.jpg где покупал рамку -можно ссыль |
Цитата:
Покупал здесь, но точную ссылку не смог найти даже в истории покупок. Но это именно она. Только у меня на месте SMEGANEM обычная заглушка, хотя когда заказывал на картинке она была, думал придется отдирать. |
Цитата:
|
Цитата:
в любом случае, по микрухе отпишу Вам как погоняю :yes4: |
У меня эти микры(ТДА7719) есть, но меня настораживает отсутствие усиления по входам и регулировка громкости в пределах -15...+15дб, что несколько напрягает ибо непонятно а как же звук то совсем приглушить при таком диапазоне. Также проблема с микшированием (выше озвучили). Можно смикшировать входа, если настроены как single-end, что как бы в авто не канает ввиду гарантированных проблем с наводками. Ну и нет фенечки в виде спектроанализатора...короче я пока остался с ТДА7419. Как руки дойдут разведу платку под ТДА7719 так сказать попробовать на зуб.
А вообще хочу раскурить ДСП для поканалок, микса, задержек и тд...пока думаю на ADAU1701 с внутренними АЦП(2 in) и ЦАП (4 out), ну а потом чуть жирнее ADAU1445. |
Цитата:
1) что значит "отсутствие усиления по входам"? зачем оно? 2) чем плох предел -15...+15? это же вроде как 30 позиций, имхо норм. ***/ правка: открыл доку, помозговал, понял фразу про "приглушить совсем". но, а как же speaker attenuation? он может тюниться до -79дб. или это не то? / 3) насколько я понял из доки, то "Можно смикшировать входа, если настроены как single-end" не верно, скорее "можно подмешивать только single-end", а вот к чему подмешивать (к QD/FD) - это варьируется. 4) почему Single Ended это наводки? ***/ правка2: про различия FD/PD/SE почитал (http://www.maximintegrated.com/en/ap...ex.mvp/id/1108), почему могут быть наводки дошло. / 5) зачем вообще спектроанализатор?) для понимания качества звука? или для чего? только не пинайте за вопросы, просто не шарю во всем этом, было бы интересно понять :yes4: arkserg тоже думаю будет интересно |
1. У тебя скажем несколько источников звука с разным выходным уровнем. Как подогнать под оптимально одинаковый для всех источников? Вот этим и делается. Иначе схемотически лепить дополнительные усилители сигнала после каждого источника.
2. 30 дб диапазон по громкости это ниочем. Просто считается от -15 до 0 это ослабление, 0 до +15 усиление...по сути громкость выполняет функции входного аттюнеатора, но никак не громкости. А выходные регулировки как положено, но тут всплывает на поверхность такая вещь как баланс лево-право и зад-перед. При центре громкость будет регулироваться как следует, но стоит внести разбаланс и все громкость динамиков будет плавать по причине, что шаг установки громкости в 1дб, а этот разбаланс слышно и даже порой очень. Вероятно я сумбурно описал, но попробуйте вникнуть. 3. Меня интересовал вход Beep и Mix, которые подмешиваются к выходу через свои регуляторы уровня, но их также можно подмешивать на вход при условии, что входа настроены single-end, проще говоря не балансные со всем вытекающим. Тобиш замуть подмешивание скажем той же навигации с радио средствами чипа не получится. Потребуется соединять вход микс и вход андроида/винды вместе, но тут делема вход баланс, а микс не баланс. По этому придется вход настроить небаланс и соеденить с миксом, но на входе всего этого поставить туже BA3121. 4. Уже ты сам ответил себе. 5. Просто дополнительная фенечка и всего ). Показывать уровень по семи полосам...как на старых музыкальных центрах. |
Цитата:
заодно, если не тяжело, обьясните разницу между gain, volume и attenuator "на пальцах" :) Цитата:
|
смотри блок схему да и в описании на первой странице это есть. В TDA7719 gain(предусиления) нет вообще. В конце даташита можешь посмотреть регистры управления, соответственно определить что может микра.
Цитата:
|
Цитата:
Цитата:
у себя все же буду пробовать все через SE, пока на грабли сам не наступлю - не пойму :big: |
Начал двигаться в сторону эмулирования нажатия клавиш в андроид. Получил root, потратил два вечера на то, чтобы встроить вот эту библиотеку в своё приложение. Библиотека использует нативный код на C, пришлось устанавливать NDK. В итоге проект-таки скомпилировался. Программа видит файлы устройств, отображает входные данные, но вот эмулировать нажатия никак не хочет. Пока идей больше нет, забросил это дело.
По ходу обнаружил, что с рутом в Таскере активировались дополнительные возможности. В частности возможность посылать в систему нажатия клавиш, как раз то, что мне надо. Теперь приложение посылает intents в Таскер, а уже он эмулирует нажатия. С одной стороны решение проблемы найдено, с другой всё равно хотелось, что бы всё необходимое было внутри, но пока видать не судьба. Осталась одна проблема: китайский R пользователь каждый раз, когда Таскер посылает нажатие кнопки в систему (записывает в файл устройства ввода), показывает Toast типа "Root permission for Tasker granted", что жутко бесит. |
Цитата:
Я не особый любитель играться с эквалайзером эффектами и т.д. (хотя возможно в машине без этого никуда), поэтому для меня возможность микширования основной + в пользу покупки данной микросхемы. В принципе, Mono Differential она подмешивать должна, что покроет мои минимальные потребности (основное предназначение блютуса у меня гарнитура), но идеально было бы использовать Full Differential, тогда возможности модуля будут раскрыты по полной. А если без микширования, то я и на реле могу переключение каналов организовать. |
Цитата:
только, скажите, зачем Вам собеседника подмешивать в музыку? какой толк? у меня целью стоит подмешивать голос с навигатора. 7719 еще не пришла. подумаю над тем, чтобы вернуться к идее использования 7419, ибо awtoap прав: есть регулировка усиления по входам и нормальный диапазон громкости. |
Часовой пояс GMT +4, время: 09:56. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot