【microbit】micropython 之 体感遥控器

设计一款无线体感遥控器,模拟控制赛车前进、后退、左转、右转、停止。

  • 使用三轴加速度传感器,判断当前遥控器状态
  • 发送状态至接收系统
  • 接收系统通过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轴的数据打包后发送,接收方解包来判断数值大小,根据数值来进行速度调整。

上一篇:《Effective Modern C++》学习笔记 - Item 5: 倾向于使用auto而不是显式类型声明


下一篇:C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-上)