MegaPi Pro 步进电机驱动模块
概述
MegaPi Pro 步进电机驱动模块用于驱动步进电机适用于 MegaPi 和MegaPi Pro 主控板。采用 DRV8825 芯片,最大驱动电流为 2.5A。DRV8825是一款完整的微步进电机驱动器,内置转换器,操作方便。它可用于驱动以 1/2,1/4,1/8 / 1/16 或 1/32 步进模式操作的双极步进电机。它还配备有一个板载电位器,可轻松地调整电机的电流大小。配合丝杆机构可以做运动精确控制,可以用于工业级的直线运动控制,如3D打印机,激光切割机等XYZ结构的机器。
技术规格
- 电机驱动:DRV8825
- 输出电流:1.75A(24V和25℃散热适当条件下)
- 最大电流:2.5A(注意散热)
- 驱动电压:8.2V-45V 注: MegaPi 最大电源电压为 12V。 • 逻辑电压:5V • 尺寸:1.5cm x 2.0cm
功能特性
- 兼容四线双极步进电机
- 板载电位器,用于控制步进电机的电流
- 板载散热器,用于散热
- 可驱动一步步进电机(绿色接口)
- 公母针脚采用颜色进行区分,确保连接正确
- 小尺寸,便于连接
- 有 Arduino 库,方便编程
- 支持图形化编程软件 mBlock3 及 慧编程
- 支持树莓派 Python 编程
编程指南
● Arduino编程(以 MegaPi Pro 为例)
函数 | 功能 |
---|---|
MeStepperOnBoard (uint8_ port) | 选择接口 (stepper_1(1) ~ stepper_4(4)) |
move(position) | 移动到指定位置(非负整数) |
setSpeed(speed) | 设置速度(最大速度由电机型号决定) |
编程示例
以下程序运行后步进电机 1 以 3000/RPM 的速度旋转到指定位置,停止 1 秒,重复此过程。
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include <MeMegaPiPro.h>
MeStepperOnBoard stepper_1(1);
void setup(){
TCCR1A = _BV(WGM10);//PIN12
TCCR1B = _BV(CS11) | _BV(CS10) | _BV(WGM12);
stepper_1.setMicroStep(16);
stepper_1.enableOutputs();
}
void loop(){
stepper_1.move(1000);
stepper_1.setMaxSpeed(3000);
stepper_1.setSpeed(3000);
delay(1);
stepper_1.move(0);
stepper_1.setMaxSpeed(0);
stepper_1.setSpeed(0);
delay(1);
loop();
}
● mBlock编程
积木块说明(以MegaPi Pro为例)
.tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-ycr8{background-color:#ffffff;text-align:left;vertical-align:center} .tg .tg-7g6k{font-weight:bold;background-color:#ffffff;border-color:inherit;text-align:center;vertical-align:center} .tg .tg-3xi5{background-color:#ffffff;border-color:inherit;text-align:center;vertical-align:center} .tg .tg-c6of{background-color:#ffffff;border-color:inherit;text-align:left;vertical-align:center} .tg .tg-i81m{background-color:#ffffff;text-align:center;vertical-align:center}
积木块 | 说明 |
---|---|
设置接口(接口1~接口4);设置速度(–3000~+3000);设置距离(非负整数) |
以下程序运行后 MegaPi Pro 接口 1 的步进电机以 3000 的速度运动 1000 距离,停止运动 1 秒,以 –3000 的速度运动 1000 距离,停止运动 1 秒,重复此过程。
● 慧编程编程
积木块说明
.tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-ycr8{background-color:#ffffff;text-align:left;vertical-align:center} .tg .tg-7g6k{font-weight:bold;background-color:#ffffff;border-color:inherit;text-align:center;vertical-align:center} .tg .tg-3xi5{background-color:#ffffff;border-color:inherit;text-align:center;vertical-align:center} .tg .tg-c6of{background-color:#ffffff;border-color:inherit;text-align:left;vertical-align:center} .tg .tg-i81m{background-color:#ffffff;text-align:center;vertical-align:center}
积木块 | 说明 |
---|---|
设置接口(接口1~接口4);设置距离(非负整数);设置速度(–3000~+3000) |
以下程序运行后 MegaPi Pro 接口 1 的步进电机以 1000 的速度运动 1000 距离,停止运动1 秒,以 –1000 的速度运动 1000 距离,停止运动 1 秒,重复此过程。
● Python3 编程
1、主控板 MegaPi Pro 和树莓派连接。
2、树莓派安装最新的 makeblock 库 pip3 install makeblock --upgrade
。
3、新建 Python 文件,后缀为 .py。
4、在 Python 文件里写入程序。
5、运行 Python文件,如 “python123.py ”。
函数功能说明
.tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-ycr8{background-color:#ffffff;text-align:left;vertical-align:center} .tg .tg-7g6k{font-weight:bold;background-color:#ffffff;border-color:inherit;text-align:center;vertical-align:center} .tg .tg-3xi5{background-color:#ffffff;border-color:inherit;text-align:center;vertical-align:center} .tg .tg-c6of{background-color:#ffffff;border-color:inherit;text-align:left;vertical-align:center} .tg .tg-i81m{background-color:#ffffff;text-align:center;vertical-align:center}
函数 | 功能 |
---|---|
StepperMotor(port) | 创建步进电机对象。 port:MegaPiPro.PORT1~MegaPiPro.PORT4 |
run(speed) | 以指定速度旋转。 speed:转速 |
move_to(position,speed,callback) | 以指定速度旋转到指定位置。 position:目标位置;speed:转速;callback:达到目标位置时触发回调 |
set_home() | 设置当前位置为原点 |
示例程序 1
以下程序运行后 MegaPi Pro 接口1的步进电机以 50 的速度旋转 2 秒,停止 1 秒,以 –50 的速度旋转 2 秒,停止 1 秒,按照此过程循环。
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
stepper = board.StepperMotor(MegaPiPro.PORT1)
while True:
stepper.run(50)
sleep(2)
stepper.run(0)
sleep(1)
stepper.run(-50)
sleep(2)
stepper.run(0)
sleep(1)
示例程序 2
以下程序运行后 MegaPi Pro 接口 1 的步进电机旋转到指定位置。
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
stepper = board.StepperMotor(MegaPiPro.PORT1)
position = 0
def on_finished(value):
position = 5000 - position
stepper.move_to(position,100,on_finished)
on_finished(position)