用microbit遥控BitBot小车
发表于 : 2019年 11月 8日 09:14
前一段时间在微信订阅号中介绍了国外的BitBot小车,今天尝试了小车的控制,用另外一个microbit作为遥控器,通过无线方式进行控制,通过遥控器(microbit)上的加速度传感器,可以灵活的实现前进、后退、转弯等动作,十分有趣。
参考程序:
遥控器
小车控制
参考程序:
遥控器
代码: 全选
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)
代码: 全选
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)