1、简介
重要更新:micro:bit以及本电机驱动扩展板已正式支持Scratch!DFRobot基于Scratch3.0开发的mind+,集成了micro:bit及其周边产品的图形化编程,离线图形化编程方式,支持Arduino和python两种代码生成。
点击链接,火速下载mind+最新版本:https://mindplus.cc
自micro:bit问世以来,以其简单实用的编程方式广受创客,学生和老师的喜爱。其简洁的设计,配上丰富的管脚资源,赋予了其无限的可能性。此款micro:bit电机驱动扩展板不仅引出了9个micro:bit板载GPIO接口,还搭载了4路电机驱动和8个舵机接口,其中4路电机驱动可复用为2路步进电机驱动。
micro:bit电机驱动扩展采用I2C外扩驱动芯片的方式控制电机和舵机,仅占用I2C两个管脚,不占用其他资源,即可完成电机与舵机的双重控制。采用HR8833电机驱动,最大持续工作电流1.5A,可驱动普通小型马达和N20微型金属电机,每一个电机端口还带有正反转指示灯,方便识别电机运行方向,非常适用于学生和创客的一些小制作。扩展的GPIO口和舵机接口均采用DFRobot_Gravity标准接口,支持支持数量众多的模块和传感器,舵机接口更是直接与Vin电源相连,增加供电电流便可支持多个舵机同时工作。
扩展板支持3.5V~5.5V电源供电,提供DC2.1插头和接线端子两种电源接口方式,可直接接3节干电池盒。产品附带一根USB转DC2.1转接线,可使用充电宝供电,更加经济环保。
2、产品参数
- 供电电压:3.5~5.5V DC
- 数字输出电压:0V/3.3V
- 模拟输出电压:0~3.3V DC
- 使用标准Gravity接口
- micro:bit接口:9(P0 P1 P2 P8 P12 P13 P14 P15 P16)
- 舵机接口:8
- 电机接口:直流电机 x4/步进电机 x2(与电机接口复用)
- 模块尺寸:63 x 58(mm)
- 安装孔数:4个
- 安装孔尺寸:内径3.1mm 外径6.0mm
- 支持4线制42步进电机
3、功能说明
4、步进电机连线说明
注意:本产品仅支持4线制 42 步进电机.
-
4.1 判断电机线圈的方法:
1. 将万用表调至二极管档位
2. 用万用表的测试线去触碰电机上的任意两根线,若万用表发出蜂鸣声则两线之间导通,为一组线圈,余下两根线为另一组线圈。
-
4.2 步进电机连线说明
当按两组线圈正常接线后,步进电机仍然运行不正常。应为线圈极性未接对,此时,交换步进电机其中一组线圈的接线极性即可。
5、 Mind+ 上传模式编程
软件下载地址:https://mindplus.cc
基础使用流程:
1、切换到“上传模式”
2、“扩展”中选择“micro:bit电机舵机专用扩展板”
3、编写程序
4、连接设备
5、上传程序
5.1 驱动电机
程序执行结果:电机M1以200速度正转2秒,然后停止2秒,然后所有电机以200速度正转2秒,之后所有电机停转1秒,循环执行以上部分。
5.2 驱动舵机
程序执行结果:按下micro:bit板上的A按键,S1引脚上的舵机转动到90度的位置,按下micro:bit板上的B按键,S2引脚上的舵机转动到90度的位置,当同时按下A和B按键时,S1和S2上的舵机同时转到150度。
5.3 驱动步进电机
注意:当所使用的步进电机为减速步进电机时,您需要注意减速步进电机的减速比值。若按正常电机角度与圈速的值运行,得到的结果将与正常值有偏差。
程序执行结果:当开机时,步进电机顺时针旋转180度,逆时针旋转180度,无限循环。
6、 makecode图形化在线编程
MakeCode基础教程:点击进入makecode在线图形化编程基础操作教程
图形化模块软件库地址:https://github.com/DFRobot/pxt-motor 关于如何添加软件库
6.1 驱动电机
以上程序执行结果:电机M1和电机M2以150的速度正转2秒,然后反转2秒,无限循环;
以上程序执行结果:当按下A键的时候,M1正转,M2停止;当按下B键的时候,M2正转,M1停止;当同时按下AB键的时候,所有电机停止;
6.2 驱动舵机
以上程序执行结果:当按下A键的时候,舵机置角度为180度,当按下B键的时候,舵机置角度为0度
6.3 驱动步进电机
注意:当所使用的步进电机为减速步进电机时,您需要注意减速步进电机的减速比值。若按正常电机角度与圈速的值运行,得到的结果将与正常值有偏差。
以上程序执行结果:当开机时,步进电机顺时针旋转180度,逆时针旋转180度,无限循环。
以上程序执行结果:当开机时,步进电机顺时针旋转2圈,逆时针旋转2圈,无限循环。
7、 BXY平台python编程
下载《BXY》python编程软件
python函数列表
7.1 驱动电机
设置电机转速
函数原型:speed(speed)
参数:speed 速度值,取值范围0~255的整数
设置转动方向并执行
函数原型:run(dir)
参数:dir:转动方向,CW正转(顺时针), CCW 反转(逆时针)
电机停止转动
函数原型:stop()
参数:无
例:
from microbit import *
import DFMotor
M1=DFMotor(1)
while True:
M1.speed(255) #设置速度255
M1.run(1) #设置为正转并运行2秒
sleep(2000)
M1.stop() #停止2秒
sleep(2000)
M1.speed(150) #设置速度为150
M1.run(-1) #设置为反转并运行2秒
sleep(2000)
M1.stop() #停止2秒
sleep(2000)
#程序说明:以上程序的让接在M1的电机按255的速度正转2秒,然后停止2秒,再按150的速度反转2秒,再停止2秒,按此模式无限循环;
7.2 驱动步进电机
注意:当所使用的步进电机为减速步进电机时,您需要注意减速步进电机的减速比值。若按正常电机角度与圈速的值运行,得到的结果将与正常值有偏差。
按圈数方式驱动步进电机
函数原型:circle(num,dir)
参数:num: 设置转动圈数(如果设置为0,则一直转动) dir :旋转方向(CW正转 CCW反转)
例:
from microbit import *
import DFStepper
M1_M2=DFStepper(1)
while True:
M1_M2.circle(2,CW)
M1_M2.circle(2,CCW)
程序功能:让接在M1_M2的步进电机正转2圈,再反转2圈,如此无限循环。
按角度方式驱动步进电机
函数原型:angle(ang,dir)
参数:
ang: 转动角度
dir :旋转方向 CW正转 CCW反转
例:
from microbit import *
import DFStepper
M1_M2=DFStepper(1) #设置步进电机接在M1、M2的位置
while True:
M1_M2.angle(180,CW) #步进电机正转180度
sleep(2000)
M1_M2.angle(180,CCW) #步进电机反转180度
sleep(2000)
#程序功能:让接在M1_M2的步进电机正转180度,间隔2秒后再反转180度,如此无限循环。
步进电机停止
函数原型:stop()
参数:无
例:
from microbit import *
import DFStepper
M1_M2=DFStepper(1) #设置步进电机接在M1、M2的位置
while True:
M1_M2.circle(0,CW) #步进电机顺时针转动2秒
sleep(2000)
M1_M2.stop() #步进电机停止转动2秒
sleep(2000)
#程序功能:让接在M1_M2的步进电机正转2秒,再停止2秒,如此无限循环。
7.3 驱动舵机
按角度驱动舵机
函数原型:Angle(angle)
参数:angle 舵机角度值,取值范围:0~180度整型数
例:
from microbit import *
import DFServo
S8=DFServo(8) #设置舵机接在S8上
while True:
S8.angle(180) #设置接在S8上的舵机角度为180度,并停止2秒
sleep(2000)
S8.angle(0) #设置接在S8上的舵机角度为0度,并停止2秒
sleep(2000)
#程序说明:让接在S8端口的舵机在0~180度之间按2秒的时间间隔往复运动。
8、 Mind+ Python模式编程(行空板)
Mind+Python模式为完整Python编程,因此需要能运行完整Python的主控板,此处以行空板为例说明
连接图
注意:
此扩展板在对行空板进行扩展时,行空板与扩展板都需要单独供电
操作步骤
1、下载及安装官网最新软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装
2、切换到“Python模式”。“扩展”中选择“官方库”中的“行空板”和“pinpong库”中的”pinpong初始化“和“motor:bit”。切换模式和加载库的详细操作链接
3、进行编程
4、连接行空板,程序点击运行后,可在终端查看数据。行空板官方文档-行空板快速上手教程 (unihiker.com)
8.1驱动电机
图形化编程
代码编程
以pinpong库为例,行空板官方文档-行空板快速上手教程 (unihiker.com)
# -*- coding: UTF-8 -*-
# MindPlus
# Python
from pinpong.libs.microbit_motor import DFMotor
from pinpong.board import Board
import time
Board().begin()
p_dfr0548_motor_M1 = DFMotor(1)
p_dfr0548_motor_ALL = DFMotor(5)
while True:
p_dfr0548_motor_M1.speed(200)
p_dfr0548_motor_M1.run(p_dfr0548_motor_M1.CW)
time.sleep(1)
p_dfr0548_motor_M1.stop()
time.sleep(1)
p_dfr0548_motor_ALL.speed(200)
p_dfr0548_motor_ALL.run(p_dfr0548_motor_ALL.CW)
time.sleep(1)
p_dfr0548_motor_ALL.stop()
time.sleep(1)
8.2驱动舵机
接线图
图形化编程
代码编程
# -*- coding: UTF-8 -*-
# MindPlus
# Python
from pinpong.libs.microbit_motor import DFServo
from pinpong.board import Board
import time
Board().begin()
p_dfr0548_servo_S1 = DFServo(1)
while True:
p_dfr0548_servo_S1.angle(45)
time.sleep(1)
p_dfr0548_servo_S1.angle(135)
time.sleep(1)
8.3驱动步进电机
图形化编程
代码编程
# -*- coding: UTF-8 -*-
# MindPlus
# Python
from pinpong.libs.microbit_motor import DFStepper
from pinpong.board import Board
import time
Board().begin()
p_dfr0548_stepper_M1_M2 = DFStepper(1)
while True:
p_dfr0548_stepper_M1_M2.angle(180, p_dfr0548_stepper_M1_M2.CW)
time.sleep(2)
p_dfr0548_stepper_M1_M2.angle(180, p_dfr0548_stepper_M1_M2.CCW)
time.sleep(2)
9、 疑难解答
1.掌控板可以使用这个电机驱动扩展板吗?
A:可以,请参考这个用户库:https://mc.dfrobot.com.cn/thread-304133-1-1.html
更多问题及有趣的应用,请访问论坛