用microbit遥控BitBot小车
用microbit遥控BitBot小车
shaoziyang 发表于5个月前
用microbit遥控BitBot小车
  • 发表于 5个月前
  • 阅读 88
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

前一段时间在微信订阅号中介绍了国外的BitBot小车,今天尝试了小车的控制,用另外一个microbit作为遥控器,通过无线方式进行控制,通过遥控器(microbit)上的加速度传感器,可以灵活的实现前进、后退、转弯等动作,十分有趣。

小车控制

from microbit import *
import radio

def _dat(l1,l2,r1,r2):
    pin0.write_analog(l1)
    pin8.write_analog(l2)
    pin1.write_analog(r1)
    pin12.write_analog(r2)

def _bd(t):
    if(t>1000):
        a=1000;b=0
    elif(t>200):
        a=t;b=0
    elif(t>-200):
        a=0;b=0
    elif(t>-1000):
        a=0;b=-t
    else:
        a=0;b=1000
    return [a,b]

def bitbot(l,r):
    t=_bd(l)
    a=t[0];b=t[1]
    t=_bd(r)
    c=t[0];d=t[1]
    _dat(a,b,c,d)
    print(a,b,c,d)

print('BitBot start:')
radio.on()
while 1:
    sdat=radio.receive()
    if sdat!=None:
        li=sdat.split(',')
        if li[0]=='BB':
            bitbot(int(li[1]),int(li[2]))
    
    sleep(50)

 

遥控

from microbit import *
import radio

radio.on()
cnt = 0
a=b=0
start=0
while 1:
    if button_a.was_pressed():
        start=1
        print('start')
    
    if button_b.was_pressed():
        start=0
        radio.send('BB,0,0')
        display.show('E')
        print('stop')
    
    sleep(100)
    if start==1:
        cnt = cnt +1
        if cnt>99:
            cnt=0
        display.show(str(cnt//10))
        a=(a+accelerometer.get_y())//2
        b=(b+accelerometer.get_x())//2
        l=a-b
        r=a+b
        radio.send('BB,'+str(r)+','+str(l))
        print(a,b)
    

 

共有 人打赏支持
粉丝 12
博文 75
码字总数 25881
×
shaoziyang
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: