本章将介绍Micro:bit通过Servo Driver for micro:bit(舵机驱动板)进行PWM接口扩展,通过I2C即可控制16路舵机。 1.基本介绍
Servo Driver for micro:bit是专为Micro:bit设计的舵机驱动板,通过I2C即可控制16路舵机,每路12位分辨率,适合用于机械臂或六足等机器人舵机驱动。 2.硬件说明
板子可以通过左边绿色端子VIN接电池供电,输入电压范围6V~12V。板载的5V稳压芯片可以最大输出3A电流。也可以通过右边的USB接口power供电,输入电压为5V。 5V电源经过3.3V稳压再给micro:bit供电。 最上面的排针是舵机接口,黑色排针是GND(大部分舵机对应的是褐色线),
红色排针是5V电源,黄色排针是PWM信号线,有0~15个通道,可以同时接16个舵机。注意舵机线不要接反,否则舵机不会转动。 注意: 1.如果只接micro:bit的USB口供电,扩展是没有5V电源的,不能驱动舵机。 2.如果接大功率的舵机可能会出现供电不足的现象,需要接更多的电源。 实际中,Micro:bit采用I2C接口与该模块连接,具体连接如下表所示:
3.软件设计
打开makecode,添加软件包,输入链接: https://github.com/waveshare/pxt-Servo 添加完成后积木栏出现Servo 选项,右边有两个可以控制舵机的积木。 下面这个积木是控制舵机角度的,通道可以选择0-15通道,角度范围是0-180度。
也可以通过下面这个设置脉宽的积木控制舵机,通道可以选择0-15通道,脉宽范围是500-2500。 启动脉宽和角度是以下对应关系:
控制舵机仅需以上两个积木即可,直接设置通道,脉宽或者角度即可。以下例程设置0和1通道的舵机为90度,下载程序,并运行后,舵机会转动到90度的位置,如果舵机已经是90度则舵机会不转动,继续保持在90度的位置。 以下例程实现的功能是控制16个通道的舵机在0-180度范围内不断转动。 item 变量表示当前的角度。Flag每次转动的步长,正数表示正转,负数表示反转。每20ms转动一次。 |