roboforum.ru

Технический форум по робототехнике.

Модуль блютус + Android - пропажа символов.

Обсуждение и примеры готовых и самосборных компонент для построения роботов.

Модуль блютус + Android - пропажа символов.

Сообщение NorthStar » 31 янв 2012, 13:56

Добрый день!
Сейчас в устройстве использую модуль блютус от INEX (IE-ZX-BLUETOOTH). Само устройство на Ардуино управляет DC моторчиками - управление идет через смартфон на Андроид.
Алгоритм такой:
С телефона идет команда, например "A100", что значит - мотор А прокрутить на 100 единиц. Далее телефон ждет ответа от ардуины - символ "O" (Serial.print("O")), что говорит о том, что команда выполнена и можно слать следующую команду.
Проблемма как раз в том, что в одном испытании из 20 этот символ "O" до телефона не доходит. Причем связь по bluetooth не рвется.
Приложение для Android написано на основе примера BluetoothChat. Пока сделал кнопку на телефоне, чтоб можно было вручную перейти к следующей команде, но это конечно не совсем то, что хотелось.
Если бы дело было в чем-то еще, а не в символе О, то продолжение работы было бы невозможно. Программа бы зависала или еще что-то, а в данном случае все нормально.
Пока из идей:
1 это особенность платформы Андроид (блютус там конечно очень кривенько реализован) и ничего не поделаешь
2 попробовать поменять модуль блютус на другой, но этого не хотелось бы, так как устройство спроектировано с посадочными отверстиями под этот модуль
Может еще какие идеи будут? Наверняка кто-нибудь пробовал управлять роботом с Андроида - поделитесь результатами.
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Модуль блютус + Android - пропажа символов.

Сообщение galex1981 » 31 янв 2012, 14:16

А что за программа проита в Ардуину? Можете ее привести? Я склоняюсь именно к тому что в ней может быть ошибка.
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Модуль блютус + Android - пропажа символов.

Сообщение Myp » 31 янв 2012, 15:54

очень сомнительно что символ теряется...
я бы тоже посоветовал перепроверить ардуину как наиболее глючный компонент.

ардуина с модулем на какой скорости общается? есть возможность переконфигурировать модуль на другую скорость?
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Модуль блютус + Android - пропажа символов.

Сообщение NorthStar » 31 янв 2012, 17:48

Скорость 9600. На счет перепрограммирования не уверен. Скорее всего нет.
В коде тоже не очень-то сомневаюсь, так как приложение из примеров SDK - BluetoothChat называется.
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Модуль блютус + Android - пропажа символов.

Сообщение Myp » 31 янв 2012, 18:22

это для андроида пример, никто не сомневается что он работает.
мы же просим привести код для дуни или хотябы самому внимательно его посмотреть ибо дуня та ещё глюкало.
насколько обширна сама программа? при нехватке памяти дуня глючит произвольным образом...
насколько хорошо модуль подключен к самой ардуине?
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Модуль блютус + Android - пропажа символов.

Сообщение NorthStar » 01 фев 2012, 00:07

Программа простая - нет ни прерываний, ни больших объемов памяти.
Заменил модуль на BlueSMiRF Silver и пока проблемма не проявляласть. Я мало еще экспериментов провел, чтоб окончательные выводы делать, но похоже что дело в модуле, а мне он так нравился своей простотой и размерами (
Но к сожалению появился новый глюк, так же редко проявляющийся - иногда данные передаются с задержкой 5-10 секунд, но это еще можно объяснить какой-нибудь помехой и в целом допустимо.
А про дуню вы как будто накаркали - один раз вдруг начала подвисать, все выполняется, но с огромными задержками. Помог ресет и вроде больше такого не происходило. ))
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Модуль блютус + Android - пропажа символов.

Сообщение Delirium » 01 фев 2012, 13:24

У меня модуль BTM 112 и Arduino nano, с помощью которых вертолет управляется с андроида. Команды посылаю, кстати, по такому же принципу как и вы, А100В50С20... (казалось наиболее просто реализуемо), проверок нет, в ответ контроллер шлет то, что принял и еще данные с гироскопа. Команды отправляются с частотой один раз в 10мс, по таймеру android'a. Сталкивался с проблемой зависания проги, либо, иногда, с потерей символов, при этом до arduino доходит, например команда "A"... дальше байт потерян, и поступает символ "B", что воспринимается как А66 :) и, собственно, вертолет потряхивает. Ввел задержку в прошивке контроллера 9мс и вроде стало нормально, но что это было так и не разобрался до конца (может буффер переполняется? хотя я его очищаю периодически flush'ем). Скорость 19200бод.
При этом изменение велечины задержки +/- опять приводит к тем же проблемам.
И, кстати,видимо передача по bluetooth не гарантирует полную сохранность данных, сбои бывают. Но если у вас только "О" постоянно теряется, может с этим символом что-то не так? :)
Аватара пользователя
Delirium
 
Сообщения: 23
Зарегистрирован: 07 ноя 2011, 12:10
Откуда: СПб
Skype: anotherrain
прог. языки: C, C++, Delphy

Re: Модуль блютус + Android - пропажа символов.

Сообщение NorthStar » 02 фев 2012, 00:46

Ну "О" это раньше было "ОК" просто сама программа для Android (это моя первая прога, поэтому я там далеко не все знаю) иногда принимает ОК как целую строку, а иногда как 2 отдельные строки "О" и "К", поэтому сократил до одной буквы.
Сегодня еще огромное чило тестов было - BlueSMiRF ниразу не дал сбой. Разве что иногда задержки бывают, но это фигня по сравнению с потерянным символом. Так что дело в самом модуле было.
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Модуль блютус + Android - пропажа символов.

Сообщение Delirium » 02 фев 2012, 14:01

Круто, что замена модуля решила проблему!
Кстати, можно читать из буфера serial port'a в android, только если там 2 и более символов, например пришло два байта, если это "ОК" - работаем. Так и символы, возможно, не будут теряться. Хотя наверное вы так и делаете. :)
У меня, когда все начало уже работать, тоже внезапно появились сбои, прога висла, символы исчезали... Оказалось на линии RX модуля, где я сваял конвертер уровней, отвалился резистор. Случайно обнаружил, думал в программировании косяк.
Аватара пользователя
Delirium
 
Сообщения: 23
Зарегистрирован: 07 ноя 2011, 12:10
Откуда: СПб
Skype: anotherrain
прог. языки: C, C++, Delphy


Вернуться в Готовые модули

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3