27.01.2012, 08:58 | #1 | |
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
Андройд и BT звонки
Полистал соседние темы, возможно пропустил, но насколько я понимаю нормального решения блютусных звонков через андройд нет...
из того что я нагуглил есть реальизция профиля HFP под линукс тут, обсуждают тут, но как это прикрутить без лишнего гемора к андройду не понятно) Потом есть готовый модуль... например такой: Цитата:
в терраэлектронике WT32-A-AI4 стоит 937р Даташит пока не листал, но насколько я понимаю это очень и очень подходящая штука! Ей сможет рулить arduino, который можно подключить к андройду и например давать сигнал что идет звонок чтобы тупо нарисовать номер входящего звонка и имя из контактов если номер такой там есть простейшей программкой... Такое решение не зависит от самого андройда, даже если он повиснет или вообще сдохнет звонки в машине работать будут... главное чтобы был сигнал вызова и кнопка ответа на руле была подключена к контроллеру, который управляет этим модулем... а также возможно сможет работать a2dp, через который можно гнать музыку с самой мобилы) При ответе на звонок контроллер может просто переключить линейный вход усилителя машины с наушников андройда на линейный выход этого модуля... хоть простой релюшкой, но лучше бы конечно приглушить андройд... чтобы навигашку было бы слышно) В качестве планшета я думаю стоит посмотреть на Nook Color ~230$ (на ebay.com с доставкой... топ селлеры ~260$ тоже с доставкой) Он дороже китайских планшетов, но для него есть кастомная прошивка, которая скорее всего будет поддерживаться, подходящий по размерам экран (почти вписывается в рамку 2DIN), юсб-хост Wi-Fi и вроде как блютус, хотя если WT32 работает так как я думаю блютус в планшете уже не особо и нужен... Есть еще Amazon Kindle Fire... который тоже очень и очень классный... качественный экран, по размеру чуть меньше размеров 2DIN... прямо под рамку!) Но к сожалению там нет usb-хоста... возможно умельцы когда-нибудь сделают поддержку если чип может работать в режиме хоста, но на данный момент, насколько я знаю, в кастомных прошивках поддержки нет... Последний раз редактировалось Lestat; 27.01.2012 в 09:41. |
|
27.01.2012, 10:07 | #2 |
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
Заказал модуль, нашел доки!)
На сайтике производителя есть раздел с документацией, доступен после регистрации... помимо даташитов есть примеры и прочие материалы... на данный момент самые важные Application note: Hands-Free and Headset profiles A2DP and AVRCP Profiles управляется модуль достаточно просто в стиле ATкоманд... Попробую порулить им через STM32VLDISCOVERY... отладочная плата на основе ARM контроллера STM32 с usb на борту (387р в терраэлектронике) ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery STM32F1xx — лечимся от ардуинозависимости вместе Последний раз редактировалось Lestat; 27.01.2012 в 10:41. |
27.01.2012, 17:01 | #3 |
Старший Пользователь
Регистрация: 17.03.2011
Город: Moscow
Регион: 77, 97, 99, 177
Машина: Alfa Romeo
Сообщений: 322
|
Устройств с поддержкой HFP/HS профилей достаточно, в том числе и в USB исполнении. Проблема как раз в Андроиде, в котором эти профили работают только в одну сторону. Основной сложностью так же остаётся корректный роутинг и управление аудио звонков в Android на уровне драйверов. Если в планшете уже есть телефон, то там так же есть микрофон и динамик, и проблем нет. Есть готовые устройства с дополнительным аналоговым трактом на выход.
|
27.01.2012, 20:03 | #4 |
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
не совсем понимаю как спасет устройство по ссылке... как например номер входящего звонка получить в карпс...
бт модуль даст контроллеру, подключенному по юсб к андройду номер входящего звонка и по команде от андройда контроллер сможет позвонить на заданный номер. Программную часть я вижу как сервис висящий в памяти, который отобразит заглушку с номером текущего звонка если он идет, и примочкой к контактам в виде кнопки вызова... типа как скайп... вроде бы можно сделать через апи на яве, но не уверен Если нельзя, то нужно сделать простую прогу, в которой выбираешь контакт и она посылает сигнал контроллеру "вызов номер такой-то", контроллер рулит модулем и он звонит. В плане вызова неверное трудно сделать так чтобы выглядело как обычный вызов на андройд телефоне, но так как я предложил выше вполне реализуемо. Да, кстати... микрофон что в планшете, ИМХО, это бесполезная штука... не думаю что он будет качественный звук давать... нужно его расположить как-то правильно (у меня рядом с лампами под зеркалом встроен) и вообще наверно нужен микрофон именно для такого разговора, а то хрипеть будет... Последний раз редактировалось Lestat; 27.01.2012 в 21:00. |
30.01.2012, 01:18 | #5 | |||
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
Распишу на всякий случай... чтобы самому потом не забыть)
Простеньким скетчем arduino nano подключил WT32 к виртуальному COM-порту компа... открываем Serial Monitor, ставим порт в 115200 и можно экспериментировать... Цитата:
Цитата:
При подключении и после модуль спамит всякую инфу: Цитата:
При входящем звонке модуль говорит номер входящий! HFP 0 CALLERID "+79032...." "" 91 Отправляем ему ANSWER и звонок принимается... REJECT отклоняется Позвонить на последний номер можно отправив AT+BLDN на произвольный ATD+79032....; Вобщем штуковиной я очень доволен! Нужно теперь посмотреть как сделать удобную звонилку в "плншетном андройде"... |
|||
30.01.2012, 16:34 | #6 |
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
Накидал программку которой можно "позвонить"...
т.е. из стандартной программы с контактами ее можно вызвать как звонилку, как скайп например. Выдает такую менюшку: т.е. тут есть телефон, скайп и моя прога третьей строчкой. При клике на нее появляется окно-пустышка, но в ней есть код который получает вызываемый номер и дальше может передавать его в BT модуль... насколько я помню нормальное API для USB устройств только в андройде 3.1 (API level 12) и выше, а CyanogenMod 7, которым прошивается Nook Color, вроде бы основан на 2.3.3... но как-то там реализована поддержка юсб устройств, думаю можно что-нибудь придумать) |
08.05.2012, 14:13 | #8 |
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
Купил Kindle fire, у него как раз недельку назад допилили поддержку USB Host!
Подключил модуль WT32-A-AI через arduino к планшету, научился с ним общаться! При подключении к usb появляется /dev/ttyUSB0, через него и ведется общение как с простым файлом... типа такого: Код:
// в отдельном потоке можно читать все что спамит arduino BufferedReader reader = new BufferedReader(new FileReader("/dev/ttyUSB0")); while ((line=reader.readLine()) != null) myHandler.post(new Runnable() { public void run() { getLine(line); } }); ====================================== // ну и почти также писать BufferedWriter writer = new BufferedWriter(new FileWriter(FILE_NAME)); writer.write("INFO"); writer.newLine(); // или руками) writer.flush(); Настройка порта через stty stty -F /dev/ttyUSB0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts устанавливает скорость, и прочие параметры при которых WT32-A-AI начинает нормально работать... Также заказал простенькие модули: FM-радио 1pcs TEA5767 FM Radio Module USB <> UART NEW CP2102 USB 2.0 to UART TTL 6PIN Module Serial Converter IMU с гироскопом, акселерометром 10DOF IMU HMC5883L ITG3205 BMA020 BMP085 sensor module for arduino/MWC на основе последнего хотелось бы попробовать собрать внешний GPS приемник с dead reckoning (типа того что обсуждали тут на форуме) чтобы получать координаты в тонелях и вообще иметь точные дворовые треки для карт OpenStreetMap Все девайсы и кнопочки с руля хотелось бы подключить с помощью arduino через USB к планшету, на котором крутится сервис, который управляет ими... на данный момент правда сервис только принимает и отправляет команды WT32-A-AI Касательно самого андройда и планшета мне кажется там есть все что нужно... У Kindle Fire всего одна аппаратная кнопка включения/выключения... лучше и не придумать для встраивания! Прошивка с xda андройда 4.0 с USB достаточна стабильна, хотя глюки есть... Также нашел полезные программки No Lock и Set Orientation |
16.05.2012, 20:56 | #9 |
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
Пока сам не забыл отмечу один момент...
При исходящем вызове WT32 не спамит в консоль номер вызываемого абонента... узнать его можно отправив на WT32 ат-команду AT+CLCC, в ответ он пишет что-то вроде HFP 0 CLCC 1,0,3,0,0,"8903ххххххх",129 где 8903ххххххх соответственно номер на который мы звоним. |
17.05.2012, 02:00 | #10 |
Новый Пользователь
Регистрация: 09.06.2007
Возраст: 37
Город: Москва
Регион: 77, 97, 99, 177
Машина: Nissan Tiida Sedan
Сообщений: 18
|
Когда сажусь в тачку стандартный блютус сразу цепляет мою мобилу...
Мой девайс на андройде не цепляет, а если и цепляет, то только принудительно, когда руками щелкаю на соединение в настройках блютуса... чтобы соединение устанавливалось автоматом нужно отправить девайсу SET CONTROL AUTOCALL 111e 5000 HFP Все контакты синхронизированы через гугл... т.к. и на телефоне и на планшете что в машине стоит андройд Но история звонков не синхронизирована, а если и синхронизирована, то может инета и не быть и она разойдется... Поэтому я долго и старательно листал даташит на этот WT32 чтобы выяснить как загрузить историю звонков через блютус Для этого есть протокол PBAP, есть даже команда PBAP 04 5 например... получить 5 вызовов из общей истории входящих/исходящих звонков... можно получить отдельно входящие, исходящие, пропущенные и вообще всю книгу... Но эта команда сделана как-то криво... она при ошибке не выводит сообщение об ошибке, а пишет обычное SYNTAX ERROR Для того чтобы она заработала нужно сперва выполнить нечто вроде CALL xx:xx:xx:xx:xx:xx 112f PBAP (где xx:xx:xx:xx:xx:xx BT-адрес вашего телефона, его можно найти в списке подключенных девайсов LIST или в строке "SET BT PAIR ..." в ответе команды SET) После этого андройд на мобиле запросит подтверждение на доступ к телефонной книге... спрашивает один раз, а не при каждом вызове команды. Ну и если ответ положительный, то команды вида PBAP 04 5 начинают работать и строчат запрошенные контакты в консоль в формате vCard 2.1 по дефолту Теперь вроде бы все что нужно работает!!! |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|