b2b外贸建站/创网站永久免费建站
这两天从某多平台买的小车底盘配件、电池、电源输出模块陆续到货,终于把我的Pico小车组装起来了,先晒图:
配件清单:
1)Pico,32元,如果自己焊针,只要30元
2)400孔小面包板,3.7元,为了给小车底板上留下更多的空间,选了一个小面包板
3)小车底盘套件(含2个电机、2个后轮、1个万向轮,1个电池盒),15.9元
4)18650电池盒(带DC开关),4.7元
5)18650电池3.7V(11500mWh)2节,13.9元
6)DC-DC电压转换模块,4.1元,可以将6V-12V输入电压转换为三路输出,分别是3.3V,5V和原始电压,用于给电机和Pico提供电力
7)L293D双路电机驱动芯片,我手里的不是单买的,网上价格大概3-4元,建议直接买个驱动力更强的L298N,7元
总共79.3元。
以前跑通了Pico连接L293D驱动电机的程序,当时只连接了一路电机,现在还需要把另一个电机也连上。接线有点复杂,需要一定的耐心。
几点需要注意的:
1)给L293D供电的是5V,接Vcc1,不要接错了,否则可能烧毁芯片
2)L293D芯片的压降好像非常大,如果Vcc2接5V,压降之后可能只有3V多,有可能带不动电机,可以将Vcc2接6V或7V电源
3)接地要与Pico的GND、外部电源的负极共地
4)我用GP16/GP17控制一组电机,GP21用于控制速度
5)GP14/GP15控制一组电机,GP10用于控制速度
代码:
import machine
import utime# direction: 旋转方向,1为顺时针,0停止,-1逆时针
# speed_pin:控制小马达起停的引脚编号
def motorRun(speed, direction, speed_pin, clockwise_pin, anti_clockwise_pin):if speed > 100: speed=100if speed < 0: speed=0cw = machine.Pin(clockwise_pin, machine.Pin.OUT)acw = machine.Pin(anti_clockwise_pin, machine.Pin.OUT)pwm = machine.PWM(machine.Pin(speed_pin))pwm.freq(500)pwm.duty_u16(int(speed/100*65535))if direction < 0:cw.value(0)acw.value(1)if direction == 0:cw.value(0)acw.value(0)if direction > 0:cw.value(1)acw.value(0)machine.Pin(25, machine.Pin.OUT).value(1)right_pwm = 21 #控制马达的转速
right_cw = 16
right_acw = 17left_pwm = 10
left_cw = 14
left_acw = 15motorRun(60, 1, right_pwm, right_cw, right_acw)
motorRun(60, 1, left_pwm, left_cw, left_acw)
utime.sleep(3)motorRun(100, 0, right_pwm, right_cw, right_acw)
motorRun(100, 0, left_pwm, left_cw, left_acw)
utime.sleep(1)motorRun(60, -1, right_pwm, right_cw, right_acw)
motorRun(60, -1, left_pwm, left_cw, left_acw)
utime.sleep(3)motorRun(100, 0, right_pwm, right_cw, right_acw)
motorRun(100, 0, left_pwm, left_cw, left_acw)machine.Pin(25, machine.Pin.OUT).value(0)
前进3秒,停1秒,再后退3秒,最后停止。后面再把它修改为一个类,可以调整左、右轮的转速,让其前进、后退、停止。
视频:
https://v.qq.com/x/page/b3305cdcxhw.html
推荐阅读:
树莓派Pico开发系列文章