ARM mbed предназначен для предоставления высокопроизводительных решений Интернета вещей. На рынке доступно множество плат с различными конфигурациями от разных поставщиков. Некоторые из самых популярных плат — mbed LPC1768 от NXP, mbed LPC 11U24, Seeeduino-Arch и т. Д.
STMicroelectronics (STMicro) анонсировала плату разработки с поддержкой mbed под названием STM32 Nucleo. Эти платы Nucleo позволят разработчикам повторно использовать IP аппаратного и программного обеспечения для нескольких проектов, что сделает их более масштабируемыми. Это также дарует широкий спектр щитов, которые поддерживают такие функции, как Bluetooth Low Energy (BLE), подключение Wi-Fi, GPS, зондирование близости и т. Д. ST Nucleo F103RB, ST Nucleo L053R8, ST Nucleo F401RE и ST Nucleo F302R8 являются платы от STMicroelectronics.
По умолчанию связь по Bluetooth не включена на плате Nucleo ST F401RE. В этом блоге вы узнаете, как установить связь между модулем Bluetooth HC-06 и Nucleo ST F401RE, платой Nucleo с поддержкой mbed.
Обновление прошивки:
Поскольку на платах Nucleo возникают некоторые проблемы с установленными микропрограммами, на плате обязательно должна быть установлена последняя микропрограмма. Для более плавной работы платы убедитесь, что на ней установлена последняя версия прошивки. Если нет, следуйте инструкциям, приведенным ниже.
- Скачайте и установите драйверы ST-Link
- Чтобы установить драйверы ST-Link:
- Извлеките папку Zip и запустите либо dpinst_amd64.exe, либо dpinst_x86.exe в зависимости от конфигурации ПК.
- Следуйте инструкциям и завершите установку
- Загрузите последнюю версию прошивки отсюда
- Чтобы проверить обновление прошивки:
- Загрузите последнюю версию прошивки отсюда
- Запустите программу STLinkUpgrade.exe и нажмите кнопку подключения
- Подробные сведения об устройстве будут отображаться, если драйверы ST-Link были установлены правильно, а затем нажмите «Да».
- Это гарантирует, что прошивка была успешно обновлена
Bluetooth HC-06 и Nucleo ST F401RE:
На плате Nucleo имеются контакты заголовка, поддерживаемые Arduino, что позволяет использовать плату с другими устройствами / модулями, поддерживаемыми Arduino. В репозитории mbed было множество библиотек и программ, иллюстрирующих связь Bluetooth с использованием разных модулей. Для модуля Bluetooth HC-06 нет библиотек. Поэтому я изучил, как связать подчиненный модуль Arduino Bluetooth HC-06 с Nucleo ST F401RE. Вот шаги, которые необходимо выполнить для установления связи между ними:
Bluetooth HC-06 имеет 4 контакта, а именно RXD, TXD, GND и VCC. Подключите модуль Bluetooth к плате нуклео следующим образом:
Bluetooth HC-06 |
Nucleo ST F401RE |
RXD |
Техас |
TXD |
RX |
Помните, что контакты TX / Do и RX / D1 разъемов Nucleo Arduino не включены по умолчанию. Для их включения требуются некоторые конфигурации паяных перемычек (открытие / закрытие некоторых контактов). Вместо того, чтобы использовать эту процедуру, я чувствую себя комфортно при использовании выводов по умолчанию приемника и передатчика платы Nucleo. Контакты D10 и D2 настроены по умолчанию. Ниже описано, как управлять светодиодом с помощью мобильного телефона и ПК.
Подключите модуль HC-06 к разъемам Arduino на Nucleo ST F401RE, как показано на рисунке ниже
- Подключите плату Nucleo к ПК и убедитесь, что Nucleo обнаружен как диск
- Перейдите к онлайн-контроллеру mbed, импортируйте любой пример кода и замените его приведенным ниже кодом.
#include "mbed.h"
Serial bt(D10,D2);
Serial pc(USBTX,USBRX);
DigitalOut myled(D13);
int main() {
bt.baud(9600);
//prints data on mobile
bt.printf("Connection Established");
//print data on pc terminal
pc.printf("Connection Established");
while(1) {
//For reading and writing data from/to bluetooth HC-06
//check if bluetooth is readable and execute commands to toggle LED
if (bt.readable()) {
char input_key= bt.putc(bt.getc());
//tutn on LED if "y" is entered
if(input_key == 'y') {
myled = 1;
bt.printf("LED is ON");
}
//tutn on LED if "n" is entered
if(input_key == 'n') {
myled = 0;
bt.printf("LED is OFF");
}
}
//For reading and writing data from/to pc terminal
//check if pc is readable and execute commands to toggle LED
if (pc.readable()) {
char input_key= pc.putc(pc.getc());
if(input_key == 'y') {
myled = 1;
pc.printf("LED is ON");
}
if(input_key == 'n') {
myled = 0;
pc.printf("LED is OFF");
}
}
}
}
Таким образом, связь между модулем Bluetooth HC06 и платой Nucleo может быть установлена с помощью HTerm и Bluetooth SPP Manager.