设计一款无线体感遥控器,模拟控制赛车前进、后退、左转、右转、停止。
- 使用三轴加速度传感器,判断当前遥控器状态
- 发送状态至接收系统
- 接收系统通过5*5 LED点阵箭头指示赛车行进方向。X表示停止
使用:2块microbit板件
设计思路:
通过检测三轴加速度传感器X/Y轴的数值,通过判断数值的范围,来确定当前行走的方向,只考虑前进、后退、左转、右转,不考虑左转+前进这种情况(可通过增加判断来支持这种模式),然后发送单一字符给接收端。
发送程序
# 在这里写上你的代码 :-)
# F:前进 B:后退 L:左转 R:右转 S:停止
import radio
from microbit import *
radio.on()
radio.config(channel=20) # 修改为自己的组别,防止干扰
state = "S"
while True:
if accelerometer.get_x() > 450:
state = "R"
elif accelerometer.get_x() < -450:
state = "L"
elif accelerometer.get_y() > 450:
state = "B"
elif accelerometer.get_y() < -450:
state = "F"
else:
state = "S"
radio.send(state)
sleep(500)
接收程序
# 在这里写上你的代码 :-)
import radio
from microbit import *
radio.on()
radio.config(channel=20) # 修改为自己组别,防止干扰
while True:
incoming = radio.receive()
if incoming != None:
if incoming == "F":
display.show(Image.ARROW_N)
elif incoming == "B":
display.show(Image.ARROW_S)
elif incoming == "L":
display.show(Image.ARROW_W)
elif incoming == "R":
display.show(Image.ARROW_E)
else:
display.show(Image.NO)
sleep(100)
这个只是简单的程序,如果考虑加速这种情况的话,可以将X、y轴的数据打包后发送,接收方解包来判断数值大小,根据数值来进行速度调整。