14. [Micropython]TPYBoard F407 手机远程控制板载LED(蓝牙通信)¶
版权声明:翻译整理属于TPYBoard,转载时请以超链接形式标明文章原始出处和作者信息及本声明
14.1. 实验目的¶
- 学习在PC机系统中扩展简单I/O 接口的方法。
- 进一步学习编制数据输出程序的设计方法。
- 通过 TPYBoard F407开发板实现与蓝牙模块之间的串口通信。
14.2. 所需元器件¶
- HC-06 蓝牙模块 一个
- TPYBoard F407 开发板一块
- 数据线一条
- 杜邦线若干
14.3. HC-06蓝牙模块的介绍¶
(HC-06蓝牙模块是主从一体的蓝牙串口模块。简单的说,当蓝牙设备与蓝牙设备配对连接成功后,我们可以忽视蓝牙内部的通信协议,直接将蓝牙当做串口用。 当建立连接,两设备共同使用一通道也就是同一串口,一个设备发送数据到通道中,另一个设备便可以接收到通道中的数据。
14.4. 程序设计¶
我们使用TPYBoard F407的串口2连接HC-06蓝牙模块。使用手机打开蓝牙与HC-06蓝牙模块进行配对、连接。当它们之间成功建立链接后, 手机与TPYBoard F407之间就建立了一个透明的数据传输通道,HC-06蓝牙模块是手机和开发板之间的数据中转站,我们不用去管蓝牙的通信协议是什么, 只需要把想要发送的数据通过串口给HC-06蓝牙模块就可以,HC-06蓝牙模块会将数据原封不动的传递给手机;同样,手机发送的数据传递给HC-06蓝牙模块后, HC-06蓝牙模块再通过串口将数据原封不动的传递给开发板。所以对于开发板来说,我们只需要进行串口的读写操作即可。
14.5. 硬件的连接¶
TPYBoard F407与HC-06蓝牙模块的接线方法,如下:
TPYBoard F407 | HC-06 |
---|---|
GND | GND |
5V | +5V |
PC7 | TX |
PC6 | RX |
接线OK后,编写main.py。
14.6. 源代码¶
import pyb
from pyb import UART
#定义HC-05/06蓝牙模块连接的串口
#串口编号6 波特率9600 收发数据超时时间100ms
uart = UART(6,9600,timeout=100)
while True:
#判断串口缓存区是否有数据
if uart.any() > 0:
#读取全部数据,返回的是bytes
data = uart.read()
#字节数组转字符串
id = data.decode()
#字符串转整型
id = int(id)
#板载的LED编号是1 or 2,判断数据是否符合,防止程序异常
if id == 1 or id == 2:
pyb.LED(id).toggle()