Андроид + МК: Bluestick control

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


BlueStick Control умеет управлять движением робота, передавая команды «Вперед», «Назад», «Влево», «Вправо» и «Стоп». В качестве транспорта юзается, естественно, SPP, а значит — привет HC-04 :)

Под катом подробное описание и видео работы (на примере моей танкетки :)


Каждая команда кодируется единственным байтом и передается безо всякого дополнительного мусора. Коды комманд находятся в диапазоне 0x30 — 0x38, что радует:

Стоп — 0x30
Вперед — 0x38
Назад — 0x32
Влево — 0x34
Вправо — 0x36

При нажатии кнопки передается код команды, а при отпускании — 0 (стоп).

Есть два способа управления: кнопками и наклоном гуглофона.

При управлении наклоном, гуглофон надо держать в планшетном режиме, аки джойстик. А кнопки «поворачиваются» на 90 градусов: где была кнопка «вправо», теперь будет «вперед». Команда «стоп» тут подается, когда «пульт» возвращается в горизонтальное положение.

Еще один момент, касательно «tilt mode» — предполагается, что телефон будут держать немного наклонив экраном к себе. Поэтому кнопка «вперед» (ex «вправо») сработает при меньшем угле наклона, чем кнопка назад (ex «влево»).

При запуске программа покажет нам короткую справку на тему «где кнопка вниз, а где — вверх».

Затем мы сразу попадаем на экран управления в режиме «button mode». Пока мы еще ни к чему не подключены, но кнопки потыкать уже можно :)


Нажатие на название режима (внизу экрана) переключает button/titl mode.
Нажатие на шестеренку вызывает экран настройки подключения:


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

Неприятно, что статус подключения никак не отображается. Кроме всплывающих сообщений, если линк упал. Тут правда можно возразить, что робота, мол, мы и так видим, поэтому при проблемах со связью сразу станет ясно.

Еще один неприятный момент заключается в том, что обратная связь отсутствует как класс. То есть мы не можем передать состояние батарей робота или другую телеметрию. Впрочем, для «поиграцо» это и не нужно :)

Итак, начинаем развлекаться!
ATMega48+L293D. Питание от 12V 1.3Ah SLA. Гусеничное шасси с характерным звуком. Связь на HC-04.

(осторожно, теперь звук не тихий :)
  • +3
  • 09 мая 2012, 20:13
  • dcoder

Комментарии (7)

RSS свернуть / развернуть
кошаки уматные :)

а в чем принципиальная невозможность получения обратного канала?
0
В программе, видимо. Не нравится — Android SDK в зубы и вперед.
0
я вот о чем:
что обратная связь отсутствует как класс
т.е. я понял, что это принципиально невозможно.
0
Рассказ же о конкретной программе, в которой отсутствует как класс. А так я не верю что есть какие-то проблемы с организацией обратного канала через SPP.
0
Не, так-то можно. Вон, в предыдущей моей статье про андроид, как раз была обратная связь. Просто конкретно в этой программе она не предусмотрена
0
дада, реквестирую отдельный видос с тестами «на кошках» :D
0
«BlueStick Control»
Control your cats via bluetooth ;)
+2
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.