В этой статье мы подробно распишем, как создать небольшое приложение для Android и скетча Arduino, чтобы можно было это приложение для Android подключить к Arduino через Bluetooth и при этом выполнять команды.
Что будем делать
Итак, мы создадим мобильную программу, которая будет подключаться к беспроводному модулю нашего «робота» и посылать команду. Скетч по этой команде будет включать или отключать один из установленных к Arduino светодиодов.
Что будем использовать:
- Arduino Uno.
- Bluetooth Bee.
- Arduino Wireless Shield.
- Зеленый и красный светодиоды.
- Резисторы.
- Breadboard Half.
- Провода «папа-папа».
Создаем мобильное приложение
Разработка приложений для Android ведется в Android Development Tools. Ее можно загрузить с Google портала по ссылке (developer.android.com/studio). После загрузки и установки запустите ADT. После нужно скачать Android SDK необходимой версии. Выбирайте ту же версию, что и у вас на смартфоне. Наш подопытный старый телефон имеет версию 2.3.3, ее мы и выберем. Нажмем на «Install_Packages» для запуска процесса установки.
После завершения предыдущей операции нужно создать программу. Нажмем «File-> New-> Android Applications Project» и заполним существующие поля.
- Application Name – имя вашей программы, оно же будет отображаться в Google Play.
- Project Name – имя проекта в среде разработки.
- Package Name – id приложения. Составлять его нужно по следующей логике: название вашего веб-сайта задом наперед + имя программы.
- В остальных трех выпадающих строках нужно выбрать версию используемого Android-гаджета.
- В поле «Theme» ставим «none», чтобы избавиться от проблем с совместимостью в разных версиях SDK.
Перейдем к следующему шагу, нажав на «Next».
- Снимем флажок с «Create custom icon», чтобы не тратить время на создание иконки нашего приложения. Нажмем «Next».
- В новом окне можно оставить вид «Activity»: это тот вид, который будет на экране, когда будет запущена программа. Выберем «Blank_activity», чтобы начать все с нуля. Нажимаем на «Next».
- Наше приложение будет иметь всего одно окно Activity, поэтому в новом окне можно оставить все как есть и выбрать «Finish». На этом этапе приложение создано.
Настраиваем эмулятор
Отладку можно производить на реальном девайсе или же на эмуляторе. Давайте рассмотрим вариант с эмулятором и сконфигурируем его.
Для этого нажмем «Window -> Android_Virtual_Device_Manager» и тапнем по «New». Заполним поля в окне. От выбранных значений зависит, сколько ресурсов даст эмулятор виртуальному телефону. После нажмите «ОК».
В окне AVDM выберите «Start», после чего должен будет запуститься эмулятор. Процедура может занять несколько минут в зависимости от мощности ПК. По окончании вы должны будете увидеть рабочий стол, как на смартфоне.
Заполняем Activity
На данном экране мы будем иметь 2 кнопки: «включить красный светодиод» и «включить зеленый светодиод». Для того чтобы добавить их, нужно в панели «Package Explorer» открыть «res/layout/activity_main.xml».
Перетащим кнопки (2 шт) «ToggleButton» на нашу форму. После переключимся на вкладку «activity_main.xml» и увидим следующий код:
Изменим наши имена компонентов, чтобы было более понятно. Поля android:id изменим следующим способом.
Также добавим подписи. Изменим размер текста и цвет. Конечный код будет иметь такой вид.
Проделанные изменения можно выполнить также в графическом режиме, выбрав вкладку «Outline/Properties».
Первый запуск
Открываем настройки запуска, нажав «Run -> Run Configurations», в левой части нажмем «Android Application». Появится «New configuration». Справа окна выберем вкладку «Target» и нажмем на «Launch_on_all_compatible_devices/AVD».
Нажмем на «Apply», а после на «Run». Программа откроется в эмуляторе.
На данном этапе мы только сможем протестировать внешний вид. Осталось написать обработчик нажатий.
Пишем код для Android
Если вы знаете, каждое приложение должно уведомить систему о правах, которое она должна ему предоставить. Перечень прав находится в файле манифеста с названием «AndroidManifest.xml». В этом файле нам нужно указать, что нужно использовать Bluetooth. Нужно будет добавить в файле пару дополнительных строчек.
Пишем основной код
Откроем файл «MainActivity.java». Он уже имеет в себе код.
Нам нужно добавить в него команды:
- Активация Bluetooth.
- Обработка нажатия кнопок.
- Отсылка информации о нажатой кнопке.
Отправлять на Arduino будем 1 байт с числом (двухзначным). Первая цифра – номер пина, к которому будут подключены диоды. Вторая – состояние диода (1 – активен, 0 – неактивен).
Число с командой рассчитывается следующим методом: если нажмем красную кнопку, то берется число 60 (для красной лампочки выберем 6-й пин Arduino) и к нему прибавится 1 или 0 в зависимости от состояния диода.
Для зеленой все так же, только вместо 60 возьмем 70 (подключили его к 7-му пину). В итоге получаем 4 из возможных команд: 70, 71, 60, 61.
Код, который реализует написанное, будет следующим:
Пишем скетч
Bluetooth-модуль принимает данные через UART со скоростью 9600 бит/с. Сам беспроводной модуль сразу готов к работе, поэтому настраивать его не надо. Скетч в свою очередь должен уметь:
- Принимать данный через UART.
- Активировать необходимый диод в зависимости от полученного кода.
Особенности заливки скетча
Чтобы связать Bluetooth-bee с контроллером, будут использоваться все те же пины (1 и 0), что и для самой прошивки. Поэтому при написании кода контроллера переключатель «SERIAL_SELECT» на «Wireless_Shield» должен быть выставлен в положение «USB», после прошивки его нужно вернуть в состояние «MICRO».
Полученный результат
В итоге получаем вот такую вот картину.
Вывод
В нашей статье мы описали создание небольшого приложения Bluetooth robot control для Android, которое по команде зажигает лампочки через Bluetooth.
Это самое простое, что можно сделать с данным чипом. Arduino удобен тем, что на его базе можно собрать множество разнообразных роботов с ограниченным функционалом без какой-либо пайки, а только лишь подключив нужные модули. Имея базовые знания по программированию, можно самостоятельно создать приложение для более сложных систем, например, Bluetooth rc car для Android, через которое вы сможете со своего телефона управлять радиоуправляемой машинкой, или любым другим устройством, которое смастерите сами.