10.01.2017, 22:33 | #1 |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
Android Open Accessory Protocol 2.0 и Raspberry Pi 3 (или любой linux)
После того как я разбил тач на Nexus 7 2013, а теперь сломалось запоминание канала HDMI на "народном" контроллере (+ отваливание хаба от, скорее всего, перегрева) появилась идея использовать вместо полной интеграции телефон с каким-либо крепежом. Первым делом подумал о том, что зае... устану постоянно подключать/отключать, но затем понял, что скорее всего нет, с учётом того что будет всего один кабель.
Идея, конечно же, не нова. Вопросы надо решить следующие:
1. Зарядка телефона Всё просто - usb-кабель одним концом в телефон, другим в зарядник. Надеюсь что сработает. 2. Звук Звук можно было бы пустить через предназначенный для этого разъём, но подключать два кабеля это перебор. Bluetooth... Bluetooth, в целом, это прекрасная штука. Но вот звук по bluetooth не всегда хороший. Я не претендую на экспертные знание в области bluetooth-звука, но есть у меня Alpine CDE-195BT и я пробовал соединение по BT. Не могу сказать, что качество ужас, но вот разницу с AUX слышу даже я со своими неаудиофильскими ушами. Причём, с Nexus 7 2013 было даже нормально, а вот с geekbox совсем никак. Я слышал про aptX, но поддержка должна быть и на "приёмнике" и на "передатчике". Мне очень повезло наткнуться на проект USB audio dock for Android товарища Jacek Fedoryński. Посмотрев что к чему, расчехлил Raspberry Pi и решил повторить, тем более, что Android Open Accessory Protocol 2.0 решал почти все остальные проблемы из списка. Сделав всё как в инструкции, я потерпел крах. Звук никак не хотел "идти" куда надо. Но! Сам протокол включался и телефон переходил в режим AOA2, и звук с него просто пропадал, значит он уходил к RPi, а он (пирог же, в переводе) уже лажал и не отдавал звук. Этот факт вселил в меня надежду и я начал дебажить RPi. Опытным путём было установлено что не пашет PulseAudio. Ну как не пашет... если после подключения телефона самому выполнить команду: PHP код:
Ситуация с PulseAudio меня деморализовала. В тщетных попытках нагуглить решение с PulseAudio я натыкаюсь на проект AndroidCarAudioDock. Меняем проблемную строчку на: PHP код:
PHP код:
В итоге получается, что по одному кабелю идёт зарядка (хоть и максимум 0.5А) и транслируется звук. К RPi можно подключить DAC или взять звук с HDMI и подключить в AUX. 3. Кнопки на руле 4. Возможная периферия (датчики температуры и т.п.) Наверное можно объединить в один пункт. На счёт периферии все понятно, как подключать всякие модули к RPi информации куча. Плох тот факт, что у RPi нет аналогового входа, что осложняет подключение резистивных кнопок, находящихся на руле (ну и может быть каких-либо датчиков, которые Вы захотите подключить). Но есть куча вариантов решения, в том числе готовые модули. Передавать информацию с этих датчиков оказалось очень просто, учитывая тот факт, что я чуть-чуть умею писать программы, в том числе на Python и Android AOA Protocol 2.0 сам умеет запускать нужную программу при подключении телефона к чему либо. Примерно так:
5. Камера заднего вида Лично для меня это просто "Смотрите что ещё у меня в машине есть", а все "Ничего себе Как такое возможно". Есть вариант подключения. Принцип такой - при включении камеры релюшки отключают Android от RPi и подключают OTG с Easycap. Более элегантного решения я придумать не смог. ---- Промежуточный итог ---- Мой репозиторий: https://github.com/delletenebre/AndroidCarAudioDock (описание пока что от форкнутого AndroidCarAudioDock) Программа для android как прототип уже работает. Кстати, для облегчения подключения заказал такие магнитные адаптеры. На данный момент это просто эксперимент. Медленно продвигающийся. Возможно, что всё заброшу. Кто что думает?
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk Последний раз редактировалось DelleTenebre; 10.01.2017 в 23:11. |
11.01.2017, 11:14 | #2 |
Гуру
Регистрация: 13.11.2011
Возраст: 60
Город: Волгоград
Регион: 34
Машина: Mitsubishi RVR, Chery Tiggo
Сообщений: 1,780
|
Хм,я во всем этом не силен,но интересно что умеет ваша программа под андроид. Можно ли с ее помощью управлять с андроида магнитолой работающей с AOA протоколом? Магнитола/рессивер JVC.
|
11.01.2017, 18:30 | #3 |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
sandr2010, вряд ли. У JVC есть приложения "JVC Smartphone Control" и "JVC Music Play", и если они позволяют управлять самой магнитолой, то, теоретически, можно реверс-инжинирингом найти и повторить этот функционал. Но может оказаться, что магнитола запрашивает только аудио и тогда ничего не получится.
Вообще, лично мне стало более-менее понятно что такое AOA на следующем примере - есть настольная лампа, к этой лампе по USB можно подключить android-устройство, при подключении будет запущена программа с помощью которой можно изменять яркость лампы. А если купить настольную лампу старшей модели, то из приложения можно уже управлять RGB-лампочкой. Т.е. из приложения можно управлять только тем, что реализовано в "железе" и предусмотрено разработчиками. А если писать своё приложение для управления чужим "железом", то нужно точно знать какие команды отправлять.
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk |
12.01.2017, 01:25 | #4 |
Старший Пользователь
Регистрация: 24.01.2013
Возраст: 50
Город: Москва
Регион: 77, 97, 99, 177
Машина: лексус
Сообщений: 417
|
Возьмите самсунг с доком, зачем изобретать велосипед со звуком и картинкой?
http://www.pccar.ru/showthread.php?t=23409
__________________
Телефон к штатному монитору |
12.01.2017, 12:43 | #5 |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
Так у меня штатного монитора нет. Можно поставить, но будет не очень бюджетно и на японском (если заказывать, то совсем не бюджетно). Тем более что он в принципе бесполезен - показывает расход, напоминает о тех. осмотре (тупо по километражу), и навигация без карты моей страны.
Опять ставить планшет не хочу по причине, что в стандартную рамку мало что помещается (~175мм в ширину) не выглядя "колхозом", для Nexus мне пришлось подпиливать воздуховоды, что и стало в последствии причиной треснутого тача. 7" панель на "народном" контроллере, в принципе, хорошее решение. Но у меня просто так, без каких-либо предпосылок, перестал запоминать HDMI. Возможно опять вернусь к этому варианту, заменив контроллер. Товарищ ancc, мне, к сожалению, не отвечает на счёт прошивки. Глобально, предложенное мной решение для тех у кого нет монитора.
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk |
12.01.2017, 13:22 | #6 | |
Гуру
Регистрация: 19.09.2009
Возраст: 46
Город: Мелитополь
Регион: Украина
Сообщений: 2,022
|
Цитата:
|
|
12.01.2017, 14:19 | #7 |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
awtoap, спасибо за совет, буду иметь в виду. Но меня больше напрягает возможность повторения этой неприятности. Плюс ко всему надо что-то решать с отваливающимся хабом и стабильность GPS не очень нравится. Поэтому и озадачился подключением любого android-телефона.
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|