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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Bluetooth (http://pccar.ru/forumdisplay.php?f=191)
-   -   Андройд и BT звонки (http://pccar.ru/showthread.php?t=16703)

Lestat 27.01.2012 08:58

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

из того что я нагуглил есть реальизция профиля HFP под линукс тут, обсуждают тут, но как это прикрутить без лишнего гемора к андройду не понятно)

Потом есть готовый модуль... например такой:
Цитата:

http://catalog.compel.ru/file/blueto...photo/WT32.png
Версия стандарта Bluetooth: v.2.1+EDR
Интерфейс: UART, PCM, SPDIF, I2S
Встроенная антенна: 1
Напряжение питания: 2.5…4.4 В
Профиль Bluetooth: SPP, DUN, OBEX OPP, HFP v.1.5, A2DP, AVRCP, DID, HID
Тип корпуса: WT32_A_AI
Размер: 23.0x16.0x3.0 мм
Рабочая температура: -40...85 °C

WT32 - Bluetooth-модуль 2-го класса. Особенностью модуля является встроенное ПО iWrap 4 с простым управлением (AT-команды). Голосовые профили A2DP, AVRCP, HFP (v.1.5) позволяют реализовать передачу стереозвука. Встроенный 16-битный стереокодек с аудио-ЦАП -95 дБ. Прямое подключение микрофона и динамика.
на sparkfun.com 89$... у нас вроде как 30$
в терраэлектронике 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 10:07

Заказал модуль, нашел доки!)
На сайтике производителя есть раздел с документацией, доступен после регистрации...

помимо даташитов есть примеры и прочие материалы...
на данный момент самые важные Application note:
Hands-Free and Headset profiles
A2DP and AVRCP Profiles
управляется модуль достаточно просто в стиле ATкоманд...

Попробую порулить им через STM32VLDISCOVERY... отладочная плата на основе ARM контроллера STM32 с usb на борту (387р в терраэлектронике)
ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery
STM32F1xx — лечимся от ардуинозависимости вместе

tsynik 27.01.2012 17:01

Устройств с поддержкой HFP/HS профилей достаточно, в том числе и в USB исполнении. Проблема как раз в Андроиде, в котором эти профили работают только в одну сторону. Основной сложностью так же остаётся корректный роутинг и управление аудио звонков в Android на уровне драйверов. Если в планшете уже есть телефон, то там так же есть микрофон и динамик, и проблем нет. Есть готовые устройства с дополнительным аналоговым трактом на выход.

Lestat 27.01.2012 20:03

не совсем понимаю как спасет устройство по ссылке... как например номер входящего звонка получить в карпс...
бт модуль даст контроллеру, подключенному по юсб к андройду номер входящего звонка и по команде от андройда контроллер сможет позвонить на заданный номер.
Программную часть я вижу как сервис висящий в памяти, который отобразит заглушку с номером текущего звонка если он идет, и примочкой к контактам в виде кнопки вызова... типа как скайп... вроде бы можно сделать через апи на яве, но не уверен
Если нельзя, то нужно сделать простую прогу, в которой выбираешь контакт и она посылает сигнал контроллеру "вызов номер такой-то", контроллер рулит модулем и он звонит.
В плане вызова неверное трудно сделать так чтобы выглядело как обычный вызов на андройд телефоне, но так как я предложил выше вполне реализуемо.

Да, кстати... микрофон что в планшете, ИМХО, это бесполезная штука... не думаю что он будет качественный звук давать...
нужно его расположить как-то правильно (у меня рядом с лампами под зеркалом встроен) и вообще наверно нужен микрофон именно для такого разговора, а то хрипеть будет...

Lestat 30.01.2012 01:18

Распишу на всякий случай... чтобы самому потом не забыть)

Простеньким скетчем arduino nano подключил WT32 к виртуальному COM-порту компа... открываем Serial Monitor, ставим порт в 115200 и можно экспериментировать...
Цитата:

int resetpin = 6;

void setup()
{
// не мешаем TX и RX
pinMode(0, INPUT);
pinMode(1, INPUT);

// пин, подключенный к RESET wt32
pinMode(resetpin,OUTPUT);

digitalWrite(resetpin, HIGH);
delay(100);
digitalWrite(resetpin, LOW);
}
void loop()
{
}
Отправил команды в порт...
Цитата:

SET PROFILE HFP ON
SET BT CLASS 200408
SET BT NAME TIIDA_HFP
SET BT AUTH * 1237
RESET
После мобила (тоже, кстати, на андройде) подключилась точно также как к моей тачке!)
При подключении и после модуль спамит всякую инфу:
Цитата:

RING 0 f8:db:7f:0d:51:52 3 HFP
HFP 0 BSRF 103
HFP 0 STATUS "service" 1
HFP 0 STATUS "call" 0
HFP 0 STATUS "callsetup" 0
HFP 0 STATUS "callheld" 0
HFP 0 STATUS "signal" 3
HFP 0 STATUS "roam" 0
HFP 0 STATUS "battchg" 4
HFP 0 READY
HFP 0 NETWORK "Beeline"
HFP 0 STATUS "signal" 4
т.е. при изменении каких-то параметров он отправляет в порт сообщение.

При входящем звонке модуль говорит номер входящий!
HFP 0 CALLERID "+79032...." "" 91
Отправляем ему ANSWER и звонок принимается... REJECT отклоняется
Позвонить на последний номер можно отправив AT+BLDN на произвольный ATD+79032....;

Вобщем штуковиной я очень доволен!
Нужно теперь посмотреть как сделать удобную звонилку в "плншетном андройде"...

Lestat 30.01.2012 16:34

Накидал программку которой можно "позвонить"...
т.е. из стандартной программы с контактами ее можно вызвать как звонилку, как скайп например.
Выдает такую менюшку:
http://img507.imageshack.us/img507/3...1301526121.png
т.е. тут есть телефон, скайп и моя прога третьей строчкой.
При клике на нее появляется окно-пустышка, но в ней есть код который получает вызываемый номер и дальше может передавать его в BT модуль...

насколько я помню нормальное API для USB устройств только в андройде 3.1 (API level 12) и выше, а CyanogenMod 7, которым прошивается Nook Color, вроде бы основан на 2.3.3... но как-то там реализована поддержка юсб устройств, думаю можно что-нибудь придумать)

Lestat 31.01.2012 08:50

Вот, кстати, код для переключалки треков...

Lestat 08.05.2012 14:13

Купил 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();

только права на /dev/ttyUSB0 нужно поставить 666 или выше
Настройка порта через 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

Lestat 16.05.2012 20:56

Пока сам не забыл отмечу один момент...
При исходящем вызове WT32 не спамит в консоль номер вызываемого абонента... узнать его можно отправив на WT32 ат-команду AT+CLCC, в ответ он пишет что-то вроде HFP 0 CLCC 1,0,3,0,0,"8903ххххххх",129
где 8903ххххххх соответственно номер на который мы звоним.

Lestat 17.05.2012 02:00

Когда сажусь в тачку стандартный блютус сразу цепляет мою мобилу...
Мой девайс на андройде не цепляет, а если и цепляет, то только принудительно, когда руками щелкаю на соединение в настройках блютуса... чтобы соединение устанавливалось автоматом нужно отправить девайсу 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 по дефолту

Теперь вроде бы все что нужно работает!!! :drink:

macau 22.10.2012 11:57

интересная тема! а будут ли мануалы для самостоятельного изготовления?

VVi3ard 12.12.2012 23:32

Не могу понять, зачем это все? Чем это будет отличаться от множества андроид магнитол за 350-370$ ? Ведь проблемы те же самые даже еще больше. (p.s. не кого не хочу обидеть, пытаюсь понять)

wave_is 12.12.2012 23:59

все андроид магнитолы, которые я видел крайне ущербные

VVi3ard 13.12.2012 00:29

Согласен, иначе не нашел бы этот форум, но у них те же проблемы:
1. Отдельный блок радио - нельзя одновременно слушать радио и подсказки навигации.
2. Отдельный модуль хандс фри со своим микрофоном.
Отдельная проблема (которой нет у вас):
Резистивный экран.
Закрытая система (т.е. прошить своей прошивкой тяжело).

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

wave_is 13.12.2012 00:50

у меня есть ручки громкости и задняя камера

VVi3ard 13.12.2012 00:52

Эта камера доступна всем приложениям андроида?

wave_is 13.12.2012 13:14

Цитата:

Сообщение от VVi3ard (Сообщение 240163)
Эта камера доступна всем приложениям андроида?

нет =) камера к андроиду отношение не имеет
она подключена к зеркалу заднего вида 7 дюймов.

меня такое решение вполне устраивает.
оно дешевое, легкое и оставляет время заняться другими важными делами ;)

ручки громкости в штатной магнитоле, планшет подключен к ней через аукс.

смотрится все красиво, работает безупречно )
-----------------------

любую задачу можно решить несколько путями, необязательно упираться изначально в самый сложный =)

VVi3ard 13.12.2012 18:18

Я хочу самый простой, что бы удовлетворял базовым потребностям :)
Пока у меня телефон для навигации и регистрации. Так же 1DIN магнитола за 1100 рублей с папками и русскими тегами. И пока я не нашел готовой альтернативы которая была бы по всем параметрам лучше.

И вот хоть убейте меня я не почему почему нельзя навалится на mtk6577 и сделать из него нормальный 2DIN агрегат.
3G, WiFi, BT, FM, TV, SPDIF, емкостной экран, уже все это есть в одном чипе и под одной OS.

Ну ладно я дурак и не умею, но тут люди такие вещи творят в соседних темах... для них взять готовое устройство и довести до ума вообще не проблема.

Еще заметил что практически все разработки делаются где угодно но только не в 2DIN отсеке, почему так?

macau 13.12.2012 22:25

потому что хомячье и так схавает. а гиков никто не станет слушать

Hamster 13.12.2012 22:34

Цитата:

Сообщение от macau (Сообщение 240318)
потому что хомячье и так схавает. а гиков никто не станет слушать

+1
Ну и в добавок самое главное - чтобы заработать на этом нужно иметь свою фабрику в китае :) А штучные экземпляры стоят таких денег, которые никто за них никогда не заплатит...

VVi3ard 13.12.2012 22:34

Цитата:

Сообщение от macau (Сообщение 240318)
потому что хомячье и так схавает. а гиков никто не станет слушать

Ни прибавить не убавить :(

DmitrySmol 05.04.2013 23:10

Вложений: 1
Дошли у меня руки до этих двух девайсов:
Bluetooth-Transceiver-Module-BC-5-2-0-HiFI-High-Fidelity-V2-1-EDR
и
USB-2-0-to-TTL-UART-6PIN-Module-Serial-Converter-CP2102
но немогу их завести. USB-UART работает (соединял RX-TX). Может не так платку блютуз запитываю?
Может кто подскажет, опыта в этой теме мало=нету.
Вложение 30745

Митрич18 05.04.2013 23:16

А что нужно от него?

DmitrySmol 05.04.2013 23:24

Митрич18 хэндсфри для плашета :)

а для начала тупо законектиться к порту.

Митрич18 05.04.2013 23:46

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

DmitrySmol 05.04.2013 23:52

Сенкс, не додумался протетстить с телефоном. :)
Работает при подаче 5V, спарились. Но вот в Windows 7 x64 через Putty к нему достучаться не могу.

Митрич18 06.04.2013 00:06

Думаю модуль включен в таком режиме,хотя я не спец,тут я думаю свои нюансы.

DmitrySmol 06.04.2013 01:30

Цитата:

Сообщение от Митрич18 (Сообщение 254274)
Думаю модуль включен в таком режиме,хотя я не спец,тут я думаю свои нюансы.

Наверно так, завтра попробую еще програмно достучаться.
А что за NC штыречек там, может кто знает?

mas_u 06.04.2013 01:36

Цитата:

Сообщение от DmitrySmol (Сообщение 254278)
Наверно так, завтра попробую еще програмно достучаться.
А что за NC штыречек там, может кто знает?

No connection

DmitrySmol 06.04.2013 01:47

надо помощь знатоков :)
awtoap помоги!

P.S. вообще реально их спарить USB-UART и эту платку?
P.S.S mas_u а для чего она?

awtoap 06.04.2013 01:53

))) Без доки на модуль никак...ибо китайцы лепят что хотят...даже на плате в надписях очепятки. Я запрашивал раньше у них спеки и мне сказали, что есть на стринице тем и пользуйтесь. А там сгребли все, что нашли по этому чипсету. Но ни слово о командах.

DmitrySmol 06.04.2013 02:03

Команды пока второстепенно, законектиться к нему бы )
а ваш девайс на андройд портировать не пытались?

P.S. списался с продованом BT платки может что ответит.

mas_u 06.04.2013 02:14

Цитата:

Сообщение от DmitrySmol (Сообщение 254281)
P.S.S mas_u а для чего она?

Если ты про NC - то обычно так подписывают пустой вывод, т.е. тот который на плате ни к чему не подсоединен.

awtoap 06.04.2013 02:16

А без док счастья не видать ). Пробуй скорость 9600n8.
Нет, не пытался...я в ведроиде не соображаю. А програмеров разбирающихся в ведроиде тут нет (практически).

DmitrySmol 06.04.2013 02:34

awtoap, s.m мог бы попробывать. Ему б такой функционал не повредил.

P.S. 9600n8 теже яйца.
P.S.S. mas_u спасибо, просто я валенок в электронике.

macau 06.04.2013 10:26

возможно китаезы отрубили уарт в прошивке, и оставили только spi. А может ttl уровни не совпадают. Попробуйте тестером к tx прицепиться и посмотреть напряжение

DmitrySmol 06.04.2013 21:49

macau тестер на работе, в понедельник попробую.
Пробывал и 3.3V (это я так понял для батарейки) и 5V (это для зарядного) и все вместе. И скорости разные. Результат = 0. Надеюсь китаец че нить отпишет.

Интересно если подпояться к usb data +- это чтото даст?

awtoap 06.04.2013 22:28

Для питания и сигналов используй только гребенку контактов. Там где 3,3В не трож...это для прошивки флеша.

DmitrySmol 08.04.2013 13:26

Вложений: 1
Набрел на интересную статью ..

собственно вот это:
"Умеет работать в двух режимах: АТ-команд (для настройки и управления) и передачи данных (просто тупо отдает в эфир все, что получает по последовательному интерфейсу), переключение между режимами – аппаратное (в зависимости от состояния определенной ноги модуля.
..
В режим AT-команд модуль переводится подтягиванием вывода PIO11 к питанию с последующим сбросом, в режиме передачи данных этот вывод заземлен или болтается в воздухе."

в моем случае это видимо PIO0? поправьте если ошибаюсь.

Вложение 30772

awtoap 08.04.2013 13:56

Я же говорил что прошивок куча, а про то, что говоришь подходит для модуля HC05, который работает только как SPP (COM порт). Вообще выпросить доки очень проблематично.


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

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