Использование Bluetooth в Raspberry Pi Pico и управление светодиодом со смартфона


Мы продолжаем серию обучающих статей по применению платы Raspberry Pi Pico. В данной статье мы рассмотрим подключение к плате Raspberry Pi Pico Bluetooth модуля HC-06 и управление светодиодом, подключенным к плате, с помощью приложения android на смартфоне. Программирование платы Raspberry Pi Pico будет осуществляться на языке MicroPython.

Внешний вид подключения Bluetooth модуля HC-06 к плате Raspberry Pi Pico

Bluetooth модуль HC-06 – это дешевый модуль с поддержкой функционала технологии Bluetooth, сравнительно легко подключаемый ко всем современным микроконтроллерам по последовательному порту связи (UART). Таким образом, нашей задачей в этом проекте будет являться установление последовательной связи между Bluetooth модулем HC-06 и платой Raspberry Pi Pico.

Необходимые компоненты

  1. Плата Raspberry Pi Pico (купить на AliExpress).
  2. Bluetooth модуль HC-06 (купить на AliExpress).
  3. Светодиод (купить на AliExpress).
  4. Резистор 220 Ом (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Схема проекта

Схема подключения Bluetooth модуля HC-06 к плате Raspberry Pi Pico представлена на следующем рисунке.

Схема подключения Bluetooth модуля HC-06 к плате Raspberry Pi Pico

На представленной схеме мы подключили контакт передачи Bluetooth модуля к контакту GPIO1 (контакт № 2) платы Raspberry Pi Pico с помощью провода оранжевого цвета. Также мы подключили контакт приема Bluetooth модуля к контакту GPIO0 (контакт № 1) платы Raspberry Pi Pico с помощью провода зеленого цвета. Контакты VCC и ground передачи Bluetooth модуля подключены к контактам VBUS и ground платы соответственно с помощью проводов красного и черного цвета. Светодиод подключен к контакту GPIO16 платы через токоограничивающий резистор 220 Ом.

Скачивание и установка Android приложения Serial Bluetooth Terminal

Для работы данного проекта вам необходимо скачать на свой смартфон из магазина Google Play Market Android приложение под названием Serial Bluetooth Terminal. Когда вы откроете это приложение на своем смартфоне, вы увидите картину, показанную на рисунке ниже. Внизу приложения вы увидите кнопки обозначенные как “M1”, “M2”, “M3” и т.д. Нам необходимо установить “M1” в качестве кнопки включения светодиода (“Led On” button), а “M2” – в качестве кнопки выключения светодиода (“Led Off” button).

Главный экран приложения Serial Bluetooth Terminal

Чтобы назначить данным кнопкам эти функции вам необходимо нажать и удерживать их в нажатом состоянии некоторое время. После этого появится новое всплывающее окно как показано на рисунке ниже. Вам необходимо заполнить в этом окне настройки “Name”, “Value”, “Edit mode” и “Action” так, как показано на рисунке. Потом вам необходимо повторить эти действия для следующей кнопки. Когда вы выполните эти действия для обоих кнопок, вы увидите две кастомизированные (с названиями) кнопки “M1” и “M2” внизу приложения (рисунок справа). На этом настройку android приложения под наши потребности мы закончили.

Настройка кнопок в приложении Serial Bluetooth Terminal для нашего проекта

Объяснение программы для Raspberry Pi Pico

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Перед тем, как приступать к написанию кода программы, вам необходимо скачать каталог обучающих программ для платы Raspberry Pi Pico по данной ссылке с GitHub. Вам необходим будет каталог с названием “T7_bluetooth_pico_hc05_led_blink”, в нем подкаталог “code” с содержащимся в нем файлом “main.py”. Рассмотрим содержимое данного файла более подробно.

Файл main.py

Внутри файла мы main.py мы импортируем классы (библиотеки) “Pin” и “UART” из библиотеки “machine”. Затем мы создаем объект uart с помощью функции “UART(0, 9600)”, где 0 – это номер канала последовательного порта (UART). На плате Raspberry Pi Pico два последовательных порта – на контактах GPIO0 и GPIO1. 9600 в этой функции – это бодовая скорость передачи данных для нашего последовательного порта.

Далее мы даем контакту GPIO16 название “LedGPIO” и используем функцию “Pin(LedGPIO, Pin.OUT)” чтобы сконфигурировать этот контакт для работы в качестве цифрового выхода. Далее мы назначаем объект, созданный с помощью функции Pin() , переменной “led”.

В цикле while() мы используем функцию uart.any() чтобы проверить поступает ли какая либо информация по последовательному порту (UART). Если функция any() возвращает true, то мы считываем данные из последовательного порта с помощью функции uart.readline(). Далее нам необходимо проверить поступившие данные и в зависимости от них выполнить необходимые действия. Если в приложении android мы нажимаем кнопку “ON”, то на выходе мы получаем значение b'\xd0', а если в приложении мы нажимаем кнопку “OFF”, то мы получаем значение b'\xd5'. В зависимости от принятого значения мы используем либо функцию “led.high()” чтобы включить светодиод, либо функцию “led.low()” чтобы его выключить.

Загрузка кода программы в плату

В Thonny IDE откройте файл “main.py” и чтобы начать его сохранение нажмите на клавиатуре комбинацию клавиш “ctrl+shift+s”. Перед этим убедитесь в том, что ваша плата Raspberry Pi Pico подключена к компьютеру. Во время сохранения кода программы у вас на экране появится всплывающее окно, показанное на рисунке ниже. В нем вы должны выбрать Raspberry Pi Pico, ввести имя файла “main.py” и сохранить его. Эта процедура позволит вашей программе в дальнейшем запускаться на плате всегда, когда на нее подано питание.

Выбор места сохранения программы

Тестирование работы проекта

Убедитесь в том, что вы загрузили код программы в плату Raspberry Pi Pico. Когда вы подадите питание на плату, вы увидите что светодиод на Bluetooth модуле начнет медленно мигать. После этого вы можете нажать кнопку “connection button”, которое находится в правом верхнем углу приложения на смартфоне. Появится всплывающее окно с именем “Devices” (устройства) как показано на рисунке ниже. В нем вам необходимо выбрать ваше Bluetooth устройство. У нас на картинке оно обозначено как “Ble”, но в вашем случае оно может быть обозначено как “HC-06”. После того как вы выберете устройство, произойдет подключение к Bluetooth модулю.

Выбор устройства для подключения в приложении

Когда вы приложение подключите к Bluetooth модулю, вы можете нажимать в нем ранее сконфигурированные вами кнопки “Led ON” и “Led OFF”. При нажатии этих кнопок у вас в терминале приложения android будут появляться данные “1” или “0” в зависимости от того какую кнопку вы нажали. Этот процесс показан на следующем рисунке.

Выводимые данные в терминале приложения android

Также при нажатии этих кнопок вы будете наблюдать как будет загораться и гаснуть светодиод, подключенный к плате Raspberry Pi Pico. Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы на MicroPython

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
907 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *