180 光电编码电机

优质
小牛编辑
165浏览
2023-12-01

概述

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。