Приветствую Вас, Гость
Главная » 2013 » Ноябрь » 5 » BTCA2ALite библиотека для управления Arduino по Bluetooth
BTCA2ALite библиотека для управления Arduino по Bluetooth
Проекты | 05.11.2013 в 21:56 | от: ZSeregaA | Просмотров: 11765 | Комментариев: 0 | Рейтинг: 4.8 / 9
Библиотека BTCA2ALite создана для приема и обработки команд, посылаемых по Bluetooth приложением BT Controller Lite. Вы сможете создавать проекты на Arduino и управлять ими, используя Android смарфон или планшет в качестве контроллера. Библиотека BTCA2ALite поддерживает 14 команд, которые соответствуют кнопкам snes джойстика в BT Controller Lite. В ближайшее время будет доступна полная версия библиотеки. Она будет работать с полным приложением BT Controller, в котором вы сможете создавать свои, самые разнообразные контроллеры с любым количеством кнопок. При этом вам не нужно уметь писать приложения для Android. Библиотека BTCA2A будет поддерживать более двухсот команд, что обеспечит широкие возможности в отличи от других контроллеров.



История создания библиотеки BTCA2ALite:

BT Controller - это приложение, которое предназначено для управления в играх на Android устройствах. Например, можно подключить планшет к телевизору, а смартфон использовать как джойстик. В своей работе, приложение использует Bluetooth соединение, по которому отсылает команды кнопок. После приобретения блютуз модуля для Arduino, я вспомнил про BT Controller и решил написать для него библиотеку. Основная цель библиотеки, упростить использование BT Controller в качестве контроллера для Arduino. Это была моя первая библиотека и опыта в написании подобных программ у меня было очень мало. Мне на помощь пришел Дмитрий Шумельчук и работа закипела. Результатом нашего командного труда стала первая, лайт версия библиотеки.

Инструкция по использования библиотеки BTCA2ALite:

Библиотека BTCA2ALite создана для работы с приложением BT Controller Lite для Android. Но даже если у вас полная версия приложения, вы также можете использовать эту библиотеку.

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

Для нормальной работы библиотеки BTCA2ALite, скорость последовательной передачи данных установлена на 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. Пример работы библиотеки BTCA2ALite:

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

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

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



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

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

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

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

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

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

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


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

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


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

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

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


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

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

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

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

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

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



Список названия кнопок поддерживаемые библиотекой BTCA2ALite:

KEYCODE_DPAD_UP
KEYCODE_DPAD_DOWN
KEYCODE_DPAD_LEFT
KEYCODE_DPAD_RIGHT
KEYCODE_BUTTON_A
KEYCODE_BUTTON_B
KEYCODE_BUTTON_X
KEYCODE_BUTTON_Y
KEYCODE_BUTTON_R1
KEYCODE_BUTTON_R2
KEYCODE_BUTTON_L1
KEYCODE_BUTTON_L2
KEYCODE_BUTTON_SELECT
KEYCODE_BUTTON_START


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

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

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



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



4. Выберите snes джойстик из списка.



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



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



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



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

Видео с демонстрацией управления машинкой:

На видео видно залипание кнопки, эта проблема исправлена в BTCA2ALite 1.0



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

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

Дмитрий Шумельчук – Вконтакте http://vk.com/id61438007

Полная версия библиотеки уже скоро!
Оцените Материал!
Рейтинг: 4.8 / 9
Понравилась запись? - поставь лайк.

Это может быть вам интересно:
Всего комментариев: 0
avatar