电机驱动扩展板

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、功能说明

4、步进电机连线说明

注意:本产品仅支持4线制 42 步进电机.

1. 将万用表调至二极管档位

万用表档位选择














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 驱动电机

驱动电机CN 驱动电机EN

以上程序执行结果:电机M1和电机M2以150的速度正转2秒,然后反转2秒,无限循环;

驱动电机CN 驱动电机EN

以上程序执行结果:当按下A键的时候,M1正转,M2停止;当按下B键的时候,M2正转,M1停止;当同时按下AB键的时候,所有电机停止;

6.2 驱动舵机

驱动舵机CN

驱动舵机EN

以上程序执行结果:当按下A键的时候,舵机置角度为180度,当按下B键的时候,舵机置角度为0度

6.3 驱动步进电机

注意:当所使用的步进电机为减速步进电机时,您需要注意减速步进电机的减速比值。若按正常电机角度与圈速的值运行,得到的结果将与正常值有偏差。

步进电机按角度

以上程序执行结果:当开机时,步进电机顺时针旋转180度,逆时针旋转180度,无限循环。

步进电机按圈数

以上程序执行结果:当开机时,步进电机顺时针旋转2圈,逆时针旋转2圈,无限循环。

7、 BXY平台python编程

下载《BXY》python编程软件

《BXY》pthon编程平台官方下载地址

《BXY》pthon编程平台官方教程

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

更多问题及有趣的应用,请访问论坛

10、 更多

DFshopping_car1.png Link DFRobot商城购买链接