乐高官方提供的编程工具都是图形化的,这篇文章分享下如何用Python来连接控制LEGO Wedo 2.0中提供的蓝牙主控设备和电机。
学习资源
网上有两篇很有用的文章:
使用pygattlib可以通过Python和蓝牙低功耗设备通讯。这个库只支持Linux。
命令行工具和开发环境
通过测试发现,Windows的Linux子系统和VMWare虚拟机是不支持的。我最终选了树莓派做开发环境。
使用系统自带的命令行工具可以直接测试蓝牙连接。
扫描设备获取地址:
sudo hcitool -i hci0 lescan
LE Scan ...
98:07:2D:DD:98:56 (unknown)
98:07:2D:DD:98:56 LPF2 Smart Hub
连接设备:
gatttool -I
[ ][LE]> connect <ble address>
使用Python创建界面控制程序
安装依赖库以及gattlib
:
sudo apt-get update
sudo apt-get install libbluetooth-dev bluez bluez-hcidump libboost-python-dev libboost-thread-dev libglib2.0-dev
sudo pip install gattlib
用Tkinter
创建界面:
import Tkinter as tk
from gattlib import DiscoveryService
from gattlib import GATTRequester
from time import sleep
def run():
global button_run
button_run.after(DELAY, motor_run)
def stop():
global button_stop
button_stop.after(DELAY, motor_stop)
def connect():
global button_disconnect
button_disconnect.after(DELAY, smart_hub_connect)
def disconnect():
global button_disconnect
button_disconnect.after(DELAY