Подключаем Arduino к Android через Bluetooth

Arduino через Bluetooth для Android

В этой статье мы подробно распишем, как создать небольшое приложение для Android и скетча Arduino, чтобы можно было это приложение для Android подключить к Arduino через Bluetooth и при этом выполнять команды.

Что будем делать

Итак, мы создадим мобильную программу, которая будет подключаться к беспроводному модулю нашего «робота» и посылать команду. Скетч по этой команде будет включать или отключать один из установленных к Arduino светодиодов.

Подключение Arduino

Что будем использовать:

  1. Arduino Uno.
  2. Bluetooth Bee.
  3. Arduino Wireless Shield.
  4. Зеленый и красный светодиоды.
  5. Резисторы.
  6. Breadboard Half.
  7. Провода «папа-папа».
Нам понадобится

Создаем мобильное приложение

Разработка приложений для Android ведется в Android Development Tools. Ее можно загрузить с Google портала по ссылке (developer.android.com/studio). После загрузки и установки запустите ADT. После нужно скачать Android SDK необходимой версии. Выбирайте ту же версию, что и у вас на смартфоне. Наш подопытный старый телефон имеет версию 2.3.3, ее мы и выберем. Нажмем на «Install_Packages» для запуска процесса установки.

Android SDK manager

После завершения предыдущей операции нужно создать программу. Нажмем «File-> New-> Android Applications Project» и заполним существующие поля.

New Android applications
  • 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». Заполним поля в окне. От выбранных значений зависит, сколько ресурсов даст эмулятор виртуальному телефону. После нажмите «ОК».

Edit Android virtual Device

В окне AVDM выберите «Start», после чего должен будет запуститься эмулятор. Процедура может занять несколько минут в зависимости от мощности ПК. По окончании вы должны будете увидеть рабочий стол, как на смартфоне.

Вид эмулятора

Заполняем Activity

На данном экране мы будем иметь 2 кнопки: «включить красный светодиод» и «включить зеленый светодиод». Для того чтобы добавить их, нужно в панели «Package Explorer» открыть «res/layout/activity_main.xml».

Заполнение Activity

Перетащим кнопки (2 шт) «ToggleButton» на нашу форму. После переключимся на вкладку «activity_main.xml» и увидим следующий код:

Вкладка activity_main

Изменим наши имена компонентов, чтобы было более понятно. Поля android:id изменим следующим способом.

Android id

Также добавим подписи. Изменим размер текста и цвет. Конечный код будет иметь такой вид.

Добавить подписи

Проделанные изменения можно выполнить также в графическом режиме, выбрав вкладку «Outline/Properties».

Вкладка Outline/Properties

Первый запуск

Открываем настройки запуска, нажав «Run -> Run Configurations», в левой части нажмем «Android Application». Появится «New configuration». Справа окна выберем вкладку «Target» и нажмем на «Launch_on_all_compatible_devices/AVD».

Run configurations

Нажмем на «Apply», а после на «Run». Программа откроется в эмуляторе.

Вид написаного приложения

На данном этапе мы только сможем протестировать внешний вид. Осталось написать обработчик нажатий.

Пишем код для Android

Если вы знаете, каждое приложение должно уведомить систему о правах, которое она должна ему предоставить. Перечень прав находится в файле манифеста с названием «AndroidManifest.xml». В этом файле нам нужно указать, что нужно использовать Bluetooth. Нужно будет добавить в файле пару дополнительных строчек.

Файл AndroidManifest

Пишем основной код

Откроем файл «MainActivity.java». Он уже имеет в себе код.

Файл MainActivity

Нам нужно добавить в него команды:

  1. Активация Bluetooth.
  2. Обработка нажатия кнопок.
  3. Отсылка информации о нажатой кнопке.

Отправлять на Arduino будем 1 байт с числом (двухзначным). Первая цифра – номер пина, к которому будут подключены диоды. Вторая – состояние диода (1 – активен, 0 – неактивен).

Число с командой рассчитывается следующим методом: если нажмем красную кнопку, то берется число 60 (для красной лампочки выберем 6-й пин Arduino) и к нему прибавится 1 или 0 в зависимости от состояния диода.

Для зеленой все так же, только вместо 60 возьмем 70 (подключили его к 7-му пину). В итоге получаем 4 из возможных команд: 70, 71, 60, 61.

Код, который реализует написанное, будет следующим:

Финальный код

Пишем скетч

Bluetooth-модуль принимает данные через UART со скоростью 9600 бит/с. Сам беспроводной модуль сразу готов к работе, поэтому настраивать его не надо. Скетч в свою очередь должен уметь:

  1. Принимать данный через UART.
  2. Активировать необходимый диод в зависимости от полученного кода.
Код bluetooth

Особенности заливки скетча

Чтобы связать Bluetooth-bee с контроллером, будут использоваться все те же пины (1 и 0), что и для самой прошивки. Поэтому при написании кода контроллера переключатель «SERIAL_SELECT» на «Wireless_Shield» должен быть выставлен в положение «USB», после прошивки его нужно вернуть в состояние «MICRO».

Полученный результат

В итоге получаем вот такую вот картину.

Результат

Вывод

В нашей статье мы описали создание небольшого приложения Bluetooth robot control для Android, которое по команде зажигает лампочки через Bluetooth.

Это самое простое, что можно сделать с данным чипом. Arduino удобен тем, что на его базе можно собрать множество разнообразных роботов с ограниченным функционалом без какой-либо пайки, а только лишь подключив нужные модули. Имея базовые знания по программированию, можно самостоятельно создать приложение для более сложных систем, например, Bluetooth rc car для Android, через которое вы сможете со своего телефона управлять радиоуправляемой машинкой, или любым другим устройством, которое смастерите сами.

Управляем Arduino c Android смартфона по Bluetooth: Видео

Все про систему Андроид
Добавить комментарий