Приветствую Вас, Гость
Главная » 2013 » Ноябрь » 16 » BTCA2A - управление Arduino по Bluetooth при помощи Android
BTCA2A - управление Arduino по Bluetooth при помощи Android
Проекты | 16.11.2013 в 21:26 | от: ZSeregaA | Просмотров: 16589 | Комментариев: 3 | Рейтинг: 5.0 / 3
BTCA2A - это библиотека для Arduino. Данная библиотека написана под приложение BT Controller для Android. Применяя библиотеку BTCA2A совместно с приложением BT Controller, можно управлять Arduino, используя смартфон или планшет в качестве Bluetooth контроллера.



Библиотека BTCA2A поддерживает более двухсот команд. Что даёт вам возможность управлять Ардуино, используя свои контроллеры созданные в приложении BT Controller. Наглядное применение смотрите на видео.




Если вы не желаете использовать платное приложение или хотите опробовать работу библиотеки. Специально для Вас существует библиотека BTCA2ALite, написанная под бесплатное приложение BT Controller Lite. Подробное описание и инструкция тут http://robocontroller.ru/news/2013-11-05-35

Работа с библиотекой BTCA2A:

1. Подготовка Bluetooth модуля для работы с библиотекой BTCA2A:

Для нормальной работы библиотеки BTCA2A, скорость последовательной передачи данных установлена на 115200bps. По этому, вам нужно изменить скорость вашего блютуз модуля. Сделать это не сложно. Просто следуйте инструкции и у вас всё получится. Далее в тексте Bluetooth модуль будет указываться как БТ.

1.1. Скачайте скетч для изменения скорости Bluetooth модуля. BT_AT_Setup_SoftwareSerial
Если у вас Arduino Mega то скачайте вот этот скетч BT_AT_Setup_Mega

1.2. В скетче укажите пины, к которым будет подключен БТ. Если у вас Arduino Mega подключите БТ к пинам Serial1.

1.3. Загрузите скетч на ардуино. Откройте монитор портов в Arduino IDE.

1.4. Проверьте, отвечает ли ваш БТ, отправьте команду AT (латинскими буквами). Вы должны получить ответ OK. Если ответ не пришел, убедитесь в следующем: ваш БТ подключен к нужным пинам, его скорость совпадает со скоростью указанной в инициализации портов в скетче. В некоторых случаях нужно отключить провод массы от БТ, затем подключить его снова и нажать кнопку перезагрузки платы ардуино.

1.5. Если вы получили ответ OK, отправьте команду AT+BAUD8. Вы должны получить ответ OK115200. Скорость вашего БТ изменена.

2. Пример работы библиотеки BTCA2A:

В библиотеку BTCA2A добавлен пример BTCA2A_Example. Для использования этого примера вам понадобиться три светодиода. На основе данного примера разберем работу основных функций библиотеки.

2.1. Скачайте библиотеку BTCA2A (ссылка BTCA2A v1.0). Распакуйте библиотеку в папку libraries в установленной программе Arduino IDE.

2.2. Подключите светодиоды по следующей схеме.



2.3. Откройте пример BTCA2A_Example из библиотеки. Укажите пины к которым подключены светодиоды.

2.4. В библиотеке реализован выбор последовательных портов для подключения Bluetooth к Arduino Mega. Если вы используете другую плату ардуино тогда первое число в btca2a.SetupHardwareSerial(0, 115200) должен быть 0. Если вы используете Arduino Mega или её аналоги, тогда вы можете выбрать номер нужного порта. 1 - Serial1, 2 - Serial2, 3 - Serial3, 0 - основной Serial. Например, Bluetooth модуль будет использовать Serial2, результат btca2a.SetupHardwareSerial(2, 115200). Это обязательная часть кода, располагается до setup.

ВАЖНО!!! Для нормальной работы библиотеки, скорость последовательной передачи данных должна быть 115200.

2.5. btca2a.ReadCommand() – Считывает принятые команды и изменяет статус кнопок. Это обязательная часть кода, располагается в начала loop.

2.6. btca2a.Button(НАЗВАНИЕ_КНОПКИ) – считывает статуса кнопок в момент нажатия. Действие в условии будет выполняться только в момент нажатия выбранной кнопки.

В момент нажатия на джойстике кнопки X (KEYCODE_BUTTON_X), светодиод LED1 загорится.

if (btca2a.Button(KEYCODE_BUTTON_X)){
digitalWrite(LED1, HIGH);
}


В момент нажатия на джойстике кнопки Y (KEYCODE_BUTTON_Y), светодиод LED1 погаснет.

if (btca2a.Button(KEYCODE_BUTTON_Y)){
digitalWrite(LED1, LOW);
}


2.7. btca2a.ButtonPressed(НАЗВАНИЕ_КНОПКИ) – считывает статус зажатой кнопки. Действие в условии будет выполняться пока указанная кнопка зажата. Как только вы отпустите кнопку, действие в условии выполняться не будет.

Светодиод LED2 будет гореть пока вы удерживаете кнопку A (KEYCODE_BUTTON_A). Как только вы отпустите кнопку, светодиод LED2 погаснет.

if (btca2a.ButtonPressed(KEYCODE_BUTTON_A)){
digitalWrite(LED2, HIGH);
}
else{
digitalWrite(LED2, LOW);
}


2.8. btca2a.ButtonReleased(НАЗВАНИЕ_КНОПКИ) – считывает статус не нажатых кнопки. Действие в условии будет выполняться если указанная кнопка не нажата.

Светодиод LED3 будет гореть пока удерживаете кнопку L1 (KEYCODE_BUTTON_L1) и при этом не нажата кнопка L2 (KEYCODE_BUTTON_L2). Если нажать и удерживать сразу две кнопки L1 и L2, светодиод LED3 не загорится.

if (btca2a.ButtonPressed(KEYCODE_BUTTON_L1) && btca2a.ButtonReleased(KEYCODE_BUTTON_L2)){
digitalWrite(LED3, HIGH);
}
else{
digitalWrite(LED3, LOW);
}

Используя данные методы, вы сможете запрограммировать нужное действие для каждой кнопки на джойстике.

2.9. Загрузите пример на плату Ардуино и переходите к инструкции по использованию приложения BT Controller.

Видео с демонстрацией работы примера:



Все названия кнопок в библиотеке BTCA2A соответствуют названиям кнопок в приложении BT Controller.

Инструкция по использованию приложения BT Controller:

1. Скачайте и установите приложение BT Controller на Android смартфон или планшет (ссылка).

2. Включите Bluetooth на вашем андроид устройстве. Запустите приложение и выберите способ соединения.



3. Выберите Controller.



4. Выберите любой контроллер из списка. Для работы с примером из библиотеки, выберите snes контроллер.



5. Из списка выберите блютуз модуль подключенный к Ардуино. Если вашего модуля нет в списке, нажмите на кнопку поиска блютуз устройств «Scan for bluetooth devices».



6. Через несколько секунд после выбора блютуз модуля из списка, должен включиться контроллер. Если этого не произошло, проверьте правильность подключения БТ.



Если изображение контроллера появилось, значит всё готово к работе. Управляйте своими проектами, нажимая соответствующие кнопки на контроллере.

Создание нового контроллера:

В приложении BT Controller можно создавать свои уникальные контроллеры. Для этого вы сможете использовать фоновое изображение вашего контроллера, на которое будете накладывать нужное количество кнопок. В готовом виде, наложенных кнопок не будет видно, так что картинка служит ориентиром для размещения кнопок. Приложение BT Controller поддерживает разные размеры экранов, если вы создали джойстик на планшете с большим экраном. На телефоне с маленьким экраном картинка будет адаптирована, кнопки не сместятся.

1. Создайте картинку своего контроллера. Желательно знать разрешение экрана вашего устройства и создавать картинку соответствующую размерам вашего экрана. Пример картинки:



2. В меню приложения BT Controller, зайдите в пункт «CONTROLLERS». Затем выберите пункт «Create».



3. [1] Напишите имя вашего контроллера. [2] Выберите тип контроллера. Разница между Аналоговым (левый пункт) и Цифровым (правый пункт), в наличии стикера. Но стикеры вы сможете добавлять на любой тип контроллера. [3] Выберите картинку вашего контроллера. После чего нажмите на кнопку «Next».



4. На экране появиться изображение вашего контроллера. В середине вы увидите заготовку кнопки. Нажав на середину, передвигайте кнопку в нужное место. Для изменения размера кнопки нажмите в правом нижнем углу и двигайте палец до достижения нужного размера. Чтобы добавить дополнительную кнопку, нажмите на + в левом нижнем углу. Кнопки можно накладывать друг на друга.



5. Двумя кратковременными нажатиями на кнопку, назначьте её новое название. Перед вами появиться меню. Для изменения названия нажмите «Change» (рис. 1). Выберите раздел из списка (рис. 2). Выберите нужное название кнопку из списка (рис. 3). Нажмите кнопку «Save Key» (рис. 1). Данные действия применяются для назначения новой кнопки и изменения названия готовой.

ВАЖНО – название кнопок будут использоваться в скетче на Arduino.


(рис. 1)

(рис. 2)

(рис. 3)

6. В своих контроллерах вы можете использовать два стикера. Для добавления стикера, нажмите на кружок в левом нижнем углу (рис. 4). Измените размер стикера и расположите его в нужном месте. Двойным кратковременным нажатием можно изменить кнопки используемые стикером, в появившемся меню нажмите «Edit Keycodes» (рис. 5). Задайте нужные кнопки и сохраните изменения нажав «Save» (рис. 6).


(рис. 4)

(рис. 5)

(рис. 6)

7. Для удаления ненужной кнопки, сделайте двойное кратковременное нажатие на нужную кнопку. В появившемся меню нажмите на «Delete Tile».

8. После того как вы укажете все необходимые кнопки, нажмите на «гаечный ключ» в правом нижнем углу (рис. 7). В появившемся меню нажмите Save Controller (рис. 8). Затем, выберите свой контроллер из списка, нажмите на него (он выделится), нажмите кнопку «назад» на вашем устройстве (рис. 9). Если вы были подключены, то ваш новенький контроллер сразу начнет действовать.


(рис. 7)

(рис. 8)

(рис. 9)

Изменение готового контроллера:

В меню приложения BT Controller, зайдите в пункт «CONTROLLERS». Затем из списка выберите нужный контроллер, нажмите на пункт «Edit» (рис. 10). Используйте инструкцию по созданию нового контроллера, начиная с пункта номер 4.


(рис. 10)

Если у вас есть вопросы по работе с библиотекой BTCA2A или приложением BT Controller, пишите в комментариях.

Для вас старались:

Зайцев Сергей (ZSeregaA) – Вконтакте http://vk.com/robocontroller

Дмитрий Шумельчук – Вконтакте http://vk.com/id61438007
Оцените Материал!
Рейтинг: 5.0 / 3
Понравилась запись? - поставь лайк.

Это может быть вам интересно:
Всего комментариев: 3
avatar
0
3 shoitov • 21:00, 16.06.2014
Здравствуйте,у меня возникла проблема при изменение скорости передачи данных блютуз модуля. Я делаю всё в точности по инструкции но при проверки блютуз модуля, на отправку сообщения "AT" он выдаёт: A или AT или ATO или ATOy и тд. Пожалуйста подскажите что мне с этим делать. Заранее спасибо.
avatar
1 Евгений • 04:58, 01.12.2013
Подскажите где можно прочитать по подробнее по переводу модулей в режим slave?
avatar
2 ZSeregaA • 17:27, 01.12.2013
Найдите полный список AT соманд, они возможно есть на сайте производителя модуля.
avatar