12308| 5
|
[入门教程] 玩转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中有提示,很适合我这样的小白呢。 说实话,控制舵机的代码还真不明白。 不过有了这两个句子,后面就好办了。 先让舵机转起来。 [mw_shl_code=applescript,true]from microbit import * #write your program: pin8.set_analog_period(20) while True: pin8.write_analog((0.5 + 60/90)*1023/20)[/mw_shl_code] 好的,能转,可以写下去了。 我要定义前进,后退,停止三个函数。 (刚刚查过如何定义函数;P) [mw_shl_code=applescript,true]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()[/mw_shl_code] 下载运行,还好,按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用橡皮圈吊在车体上好了。 四、测试视频 就这样吧,后面可以有别的玩法了。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed