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