180 光电编码电机
概述
180光电编码电机采用光编码器,可以高精度控制。它可以灵活地和各种其他零件组合使用,机身三面各有两个M4螺纹孔可以方便和 makeblock 平台机械件进行连接固定。同时,由于使用定制材料,使得此款电机运行时噪音小,并可以长时间大扭矩输出。此款电机支持多个电机驱动和主控板,如 Orion、MegaPi、MegaPi Pro、Me Auriga 主控板。
技术规格
- 减速比:39.6
- 额定电压:7.4V
- 空载电流:240mA
- 负载电流:≤750mA
- 空载转速:350RPM±5%
- 原始转速:14000RPM±5%
- 启动扭矩:5kg·cm
- 额定扭矩:800g·cm
- 输出轴长:9mm
- 功率:3.7W
- 编码器精度:360
编程指南
● Arduino编程
如果使用 Arduino 编程,需要调用库 Makeblock-Library-master
来控制电机。
以下程序运行后编码电机 1 和 2 将以 100 速度运行一秒,停止一秒,重复此过程。
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include <MeMegaPiPro.h>
double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
MeEncoderOnBoard Encoder_1(SLOT1);
MeEncoderOnBoard Encoder_2(SLOT2);
void isr_process_encoder1(void)
{
if(digitalRead(Encoder_1.getPortB()) == 0){
Encoder_1.pulsePosMinus();
}else{
Encoder_1.pulsePosPlus();
}
}
void isr_process_encoder2(void)
{
if(digitalRead(Encoder_2.getPortB()) == 0){
Encoder_2.pulsePosMinus();
}else{
Encoder_2.pulsePosPlus();
}
}
void setup(){
TCCR1A = _BV(WGM10);//PIN12
TCCR1B = _BV(CS11) | _BV(CS10) | _BV(WGM12);
TCCR2A = _BV(WGM21) | _BV(WGM20);//PIN8
TCCR2B = _BV(CS22);
attachInterrupt(Encoder_1.getIntNum(), isr_process_encoder1, RISING);
attachInterrupt(Encoder_2.getIntNum(), isr_process_encoder2, RISING);
}
void loop(){
Encoder_1.setTarPWM(100);
Encoder_2.setTarPWM(100);
delay(1);
Encoder_1.setTarPWM(0);
Encoder_2.setTarPWM(0);
delay(1);
loop();
}
● mBlock 编程
积木块说明
.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}
积木块 | 说明 |
---|---|
选择接口 设置动力(–255~+255) | |
选择接口 设置速度(最大速度由电机型号决定) | |
选择接口 设置旋转角度(非负整数) 设置速度(最大速度由电机型号决定) | |
获取当前电机速度 | |
获取电机当前相对于零点的角度位置 |
以下程序运行后编码电机 1 和 2 将以 100 速度运行一秒,停止一秒,重复此过程。
● 慧编程编程
积木块说明(以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}
积木块 | 说明 |
---|---|
选择接口 设置动力(–100~+100) | |
选择接口 设置速度(最大速度由电机型号决定) | |
选择接口 设置旋转角度(非负整数) 设置速度(最大速度由电机型号决定) | |
获取当前电机速度 | |
获取电机当前相对于零点的角度位置 |
以下程序运行后编码电机 1 和 2 将以 100 速度运行一秒,停止一秒,重复此过程。
● Python 编程
1、主控板 MegaPi Pro 和树莓派连接,180 光电编码电机和直流/编码驱动模块相连接。
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}
函数 | 功能 |
---|---|
EncoderMotor(port) | 创建直流编码电机对象。 port: MegaPiPro.PORT1~MegaPiPro.PORT4 |
run(speed) | 以指定速度旋转。 speed: 转速(范围为–180~+180) |
move_to(position,speed,callback) | 以指定速度旋转到指定位置。 position: 目标位置 speed: 转速(范围为–180~+180) callback: 达到目标位置时触发回调 |
set_home() | 设置当前位置为原点。 |
程序示例 1:
以下程序运行后接在 MegaPi Pro 直流/编码电机驱动接口 1 的编码电机以 50 速度旋转 2 秒,停止一秒,以 –50 速度旋转 2 秒,停止一秒,重复此过程。
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
encoder = board.EncoderMotor(MegaPiPro.PORT1)
while True:
encoder.run(50)
sleep(2)
encoder.run(0)
sleep(1)
encoder.run(-50)
sleep(2)
encoder.run(0)
sleep(1)
程序示例 2:
以下程序运行后接在 MegaPi Pro 直流/编码电机驱动接口 1 的编码电机旋转到目标位置
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
encoder = board.EncoderMotor(MegaPiPro.PORT1)
position = 0
def on_finished(value):
position = 5000 - position
encoder.move_to(position,100,on_finished)
on_finished(position)
接线方式
● 电子连接
使用180编码电机线接在主控板编码电机接口,或者编码电机驱动的编码电机接口上。
● 结构搭建
180 光电编码电机可用作动力,也可作为小车底盘使用。其轴兼容 Makeblock 创客平台带台阶的注塑同步带轮 62T 和带台阶的注塑同步带轮 90T。