玩转micro:bit-用BXY玩360度舵机小车
幸福都是奋斗出来的,我要用代码写小车程序。
器材准备:
1、Micro:Mate 1 micro:bit 1
2、360舵机2
3、舵机转接乐高十字轴 2乐高轮 2
4、Laserblock件螺丝
5、电池盒及3节电池 USB供电口正好可以接扩展板
一、编程,如何使360度舵机转动起来,我前面用图形化编程和360舵机做过小车,知道360舵机在接近90度时停止,在0度和180度时正反转速度最快。
可是如何在BXY中用代码写,真不会呢,好在我有shou主意。用盛思的软件找下相关句子。;P
好了,在BXY中写,BXY中有提示,很适合我这样的小白呢。
说实话,控制舵机的代码还真不明白。
不过有了这两个句子,后面就好办了。
先让舵机转起来。
from microbit import *
#write your program:
pin8.set_analog_period(20)
while True:
pin8.write_analog((0.5 + 60/90)*1023/20)
好的,能转,可以写下去了。
我要定义前进,后退,停止三个函数。
(刚刚查过如何定义函数;P)
from microbit import *
#write your program:
pin8.set_analog_period(20)
pin12.set_analog_period(20)
def go():
pin8.write_analog((0.5 + 0/90)*1023/20)
pin12.write_analog((0.5 + 180/90)*1023/20)
def back():
pin8.write_analog((0.5 + 180/90)*1023/20)
pin12.write_analog((0.5 + 0/90)*1023/20)
def stop():
pin8.write_analog((0.5 + 90/90)*1023/20)
pin12.write_analog((0.5 + 90/90)*1023/20)
while True:
if accelerometer.current_gesture()==("face down"):
stop()
elif button_a.is_pressed():
go()
elif button_b.is_pressed():
back()
下载运行,还好,按A按钮转,按B按钮反转,屏幕向下停。
二、如何停下来,还要多次测试
有两种办法,第一种:把停止的语句单独写个小程序,传到bit上,不断修改
pin8.write_analog((0.5 + 90/90)*1023/20)
pin12.write_analog((0.5 + 90/90)*1023/20)
这两个红色数字,至能够停下来为止。
第二种:小心拆开舵机,调整里面的电位器,至在90度时能停下来为止。
我两种都用过,上面程序中用了拆舵机调整的方法。
三、准备器材 ,用Laserblock搭小车。
好的,过程见上图。
自由发挥。
电池上有小孔,可以固定在Laserblock上,扩展板和bit用橡皮圈吊在车体上好了。
四、测试视频
http://v.youku.com/v_show/id_XMzQzNjE5MDQ5Mg==.html
就这样吧,后面可以有别的玩法了。{:5_121:}
主旋律导入:)) digi_cow 发表于 2018-3-4 19:39
主旋律导入
传播正能量。;P BXY有自己的舵机控制模块,后面再更新一下。
腻害腻害 很酷
页:
[1]