rzyzzxw 发表于 2018-3-3 14:29:17

玩转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:48

主旋律导入:))

rzyzzxw 发表于 2018-3-5 08:21:08

digi_cow 发表于 2018-3-4 19:39
主旋律导入

传播正能量。;P

rzyzzxw 发表于 2018-5-2 08:41:31

BXY有自己的舵机控制模块,后面再更新一下。

健身戒酒减肥 发表于 2019-10-22 15:16:11


腻害腻害

gada888 发表于 2019-10-25 18:08:07

很酷
页: [1]
查看完整版本: 玩转micro:bit-用BXY玩360度舵机小车