January 30, 2026
OP-BTS 设备示例
本文档汇总 OP-BTS 设备上 OPBTPython 脚本的常用示例:LED、串口、LCD、按键、透明传输、IEC 自动波特率及综合应用。
模块简介
opbt 模块提供设备硬件访问接口,使用前无需 import 其他模块即可调用 opbt.device(具体以固件为准)。内嵌示例:
import opbt
opbt.device.SetOutputMode(1) # 输出到蓝牙
print('Hello')
1. LED 控制示例
1.1 点亮指定 LED
import opbt
# 先关闭所有 LED
opbt.device.LedSet(0xff, 0)
# 点亮左上绿、右上蓝
opbt.device.LedSet(0x02 | 0x20, 1)
1.2 LED 闪烁
import opbt
opbt.device.LedSet(0xff, 0)
opbt.device.LedBlink(0x02, 10, 50, 300) # 左上绿闪 10 次
for i in range(500):
opbt.device.SystemProcess()
opbt.device.LedSet(0xff, 0)
说明:LedBlink 需在循环中周期调用 SystemProcess() 才能看到闪烁。
2. 串口通信示例
2.1 配置并发送字符串
import opbt
opbt.device.UartConfig(9600, "N", 8, 1)
opbt.device.UartSendString("Hello", 5)
2.2 发送单字节
import opbt
opbt.device.UartConfig(9600, "N", 8, 1)
opbt.device.UartSendByte(65) # 'A'
opbt.device.UartSendByte(66) # 'B'
2.3 读取一字节
import opbt
opbt.device.UartConfig(9600, "N", 8, 1)
ch = opbt.device.UartGetByte()
if ch >= 0:
print(ch)
3. LCD 显示示例
3.1 清屏并显示文字
import opbt
opbt.device.SetOutputMode(3) # 输出到 LCD
opbt.device.LcdClear()
opbt.device.LcdTextColor(0xF800, 0x0000) # 红字黑底
opbt.device.LcdTextXY(0, 0)
opbt.device.LcdPrint("Hello OPBTPython!")
3.2 指定位置与颜色
import opbt
opbt.device.LcdClear()
opbt.device.LcdTextColor(0x07E0, 0x0000) # 绿色
opbt.device.LcdTextXY(5, 2)
opbt.device.LcdPrint("Line 3")
3.3 填充矩形
import opbt
opbt.device.LcdClear()
opbt.device.LcdFill(10, 20, 50, 60, 0xFFFF) # 白色矩形
4. 按键检测示例
import opbt
opbt.device.SetOutputMode(1) # 输出到蓝牙便于观察
while True:
k = opbt.device.GetKeyStatus()
if k & 1:
print("Right key")
if k & 2:
print("Middle key")
opbt.device.Sleep(100)
说明:位 1 表示右键,位 2 表示中键(具体以设备定义为准)。
5. 透明传输模式示例
import opbt
opbt.device.TransparentModeOn() # 进入透明传输
# 此时设备在光电头与蓝牙间透传数据,脚本可做其他逻辑
# ...
opbt.device.TransparentModeOff() # 退出透明传输
6. IEC 自动波特率示例
import opbt
opbt.device.IecAutoOn() # 开启 IEC 自动波特率(如 IEC62056-21 模式 C/E)
# 与表计通信时设备可自动切换波特率
# ...
opbt.device.IecAutoOff() # 关闭
7. 综合应用示例
以下示例:设置输出到蓝牙、配置串口、控制 LED、轮询按键并在 LCD 上显示。
import opbt
opbt.device.SetOutputMode(1)
opbt.device.UartConfig(9600, "N", 8, 1)
opbt.device.LedSet(0xff, 0)
opbt.device.LcdClear()
opbt.device.LcdTextColor(0x07E0, 0x0000)
opbt.device.LcdTextXY(0, 0)
opbt.device.LcdPrint("Ready")
count = 0
for i in range(200):
opbt.device.SystemProcess()
k = opbt.device.GetKeyStatus()
if k != 0:
count += 1
opbt.device.LedSet(0x02, 1)
opbt.device.LcdTextXY(0, 1)
opbt.device.LcdPrint("Key " + str(count))
opbt.device.Sleep(50)
opbt.device.LedSet(0xff, 0)
注意事项
- 使用 LCD 或
print前建议先SetOutputMode,否则输出可能不可见。 LedBlink生效需在循环中调用SystemProcess()。- 串口参数需与对端一致;波特率支持范围见设备文档。
相关链接
- 主手册:OPBTPython 脚本使用手册
- 设备 API 说明请参考项目内
ScriptDoc/cn/cn_module-opbt-device.md(或设备命令/开发者文档)。