智能舵机 MS-12A
概述
智能舵机 MS-12A 是 Makeblock 自主研发的新一代智能舵机,重点解决了传统舵机存在的控制复杂,角度范围小,不可连续旋转,配件单一等问题。 智能舵机 MS-12A 可以快速组装成多关节机器人:如人形机器人、多足蜘蛛机器人、机械臂等,也可以利用其可连续旋转的特性,组装成可控旋转平台,车轮驱动等机构。
配合软件,智能舵机 MS-12A 具有动作录制功能,无需编程,就能够实现复杂的动作。智能舵机 MS-12A 还支持Makeblock 丰富的编程软件平台:mBlock、Makeblock APP 图形化编程、神经元流式编程,同时支持 Arduino。
技术规格
- 型号:MS-12A
- 电机:铁芯电机
- 齿轮:全金属齿轮(减速比1:305)
- 轴承:球轴承
- 外壳材料:PA
- 安装孔:M4盲孔铜螺母,有效深度6mm,间距16mm
- 舵盘:带4个M4螺纹孔可与舵机支架或者其他零件固定
- 安装支架:铝合金材质,带有直径4mm、间距16mm得到安装孔,通过螺丝固定,可兼容makeblock平台零件和乐高零件
- 尺寸:48x24x41mm
- 重量:72g
- 通讯:全双工串口 UART
- 速度:0.18s/60°,7.4v
- 角度分辨率:4096
- 扭矩:12kgf.cm
- 转角范围:0~360°,可连续旋转
- 指示灯:RGB LED可编程控制灯光颜色、亮度
- 接线端子:左IN(红)右OUT(白)
- 工作电压:DC6V~12.6V
- 位置反馈:磁编码
- 堵转电流:2A
- 使用温度范围:0℃~80℃
- 保护:过流、过压、过温、欠压
- 死区带宽:无死区
- 反馈:位置、速度、温度、电流、电压
- 寿命:9万次
- 控制板支持:Me Auriga、MegaPi Pro、NovaPi
功能特性
- 高精度,大扭矩
- 丰富的硬件支持
- 可连续旋转
- 支持动作录制
- 智能保护,电机过热或电流过大是舵机启动智能保护
- 有Arduino库,方便编程
- 支持图形化编程软件 mBlock 和慧编程编程,适合全年龄用户
- 支持树莓派 Python 编程
编程指南
● Arduino编程
如果使用Arduino编程,需要调用库Makeblock-Library-master
来控制。
函数功能说明
函数 | 功能 |
---|---|
mysmartservo.begin(115200) mysmartservo.assignDevIdRequest() | 设置波特率并初始化智能舵机。 |
mysmartservo.setRGBLed(index,R,G,B) | 设置智能舵机灯颜色。 参数:(舵机序号,R,G,B) R,G,B 取值范围: 0~255 |
mysmartservo.setInitAngle(index) | 复位智能舵机。 参数:舵机序号 |
mysmartservo.moveTo(index,position,speed) | 设置智能舵机以指定速度旋转到指定角度。 参数:舵机序号 角度:整数 速度:–50~+50 |
mysmartservo.move(index,position,speed) | 设置智能舵机以指定速度旋转固定角度。 参数:舵机序号 角度:整数 速度:–50~+50 |
mysmartservo.setPwmMove(index,speed) | 设置智能舵机以指定pwm速度旋转。 参数:舵机序号 速度:–255~+255 |
mysmartservo.getSpeedRequest(index) mysmartservo.getTempRequest(index) mysmartservo.getCurrentRequest(index) mysmartservo.getCurrentRequest(index) mysmartservo.getAngleRequest(index) | 读取智能舵机的速度/温度/电流/电压/角度值。 参数:舵机序号 |
● mBlock编程
在使用mBlock控制智能舵机之前,需要通过扩展管理器添加智能舵机控制模块。
智能舵机设置说明: 在扩展菜单栏下,智能舵机有两个设置:设置零位 和 解除锁定 设置零位:当智能舵机连接上MegaPi Pro主控板时将当前舵机位置设置为0°; 例如:使用语句块将舵机 [角度] 设置成90°,则以当前位置为 0° 将舵盘旋转至绝对角度90°; 解除锁定:在舵机通电使用过程中,如需手动调整角度,点击即可以让舵机恢复自由调整状态。
积木块说明
.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~6);智能舵机转动到初始位置。 | |
选择智能舵机(1~6);设置智能舵机动力(–255~+255)。 | |
选择智能舵机(1~6);转动到目标角度(整数);设置速度(0~50)。 | |
选择智能舵机(1~6);相对转动角度(整数);设置速度(0~50)。 | |
选择智能舵机(1~6);设置 RGB 色(0~255)。 | |
选择智能舵机(1~6);获取当前电流/电压/速度/角度/温度值。 |
以下程序运行后智能舵机 1 一秒内旋转到 30°,然后一秒内旋转到 120°,重复此过程。
● 慧编程编程
在慧编程中使用舵机,如果在对应设备的运动语句块中里找不到此模块,则需要添加创客平台扩展。
积木块说明
.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~6);智能舵机转动到初始位置。 | |
选择智能舵机(1~6);设置智能舵机动力(–100~+100)。 | |
选择智能舵机(1~6);转动到目标角度(整数);设置速度(0~50)。 | |
选择智能舵机(1~6);相对转动角度(整数);设置速度(0~50)。 | |
选择智能舵机(1~6);获取当前电流/电压/速度/角度/温度值。 |
以下程序运行后智能舵机 1 一秒内旋转到 30°,然后一秒内旋转到 120°,重复此过程。
● Python 编程
1、主控板 MegaPi Pro 和树莓派连接,RJ25适配器与 MegaPi Pro RJ25 转接板接口相连,智能舵机与 RJ25 适配器相连接。
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}
函数 | 功能 |
---|---|
SmartServo(port) | 创建智能舵机对象。 port: 接口,默认MegaPiPro.PORT5 |
run(index,pwm) | 设置动力大小。 index: 舵机序号;pwm: PWM占空比,范围–100~+100 |
move_to(index,position,speed) | 按指定速度移动到绝对角度。 index: 舵机序号;position:目标角度;speed:转速,范围1~50,单位rpm |
move(index,position,speed) | 按指定速度移动相对角度。 index:舵机序号;position:目标角度;speed:转速,范围1~50,单位rpm |
set_zero(index) | 设置当前位置为原点。 index:舵机序号 |
set_led(index,red,green,blue) | index:舵机序号;red:红;green:绿;blue:蓝 |
程序示例 1:
以下程序运行后接在 MegaPi Pro 上的智能舵机 1 以速度 10 旋转 2 秒,停止一秒,以速度 -10 旋转 2秒,停止一秒,重复此过程。
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
smartservo = board.SmartServo()
while True:
smartservo.run(1,10)
sleep(2)
smartservo.run(1,0)
sleep(1)
smartservo.run(1,-10)
sleep(2)
smartservo.run(1,0)
sleep(1)
程序示例 2:
以下程序运行后 MegaPi Pro 连接的智能舵机 1 以 50 的速度旋转 720 度后停止,重复此过程运行。
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
smartservo = board.SmartServo()
while True:
smartservo.move_to(1,720,50)
sleep(4)
smartservo.move_to(1,0,50)
sleep(4)
程序示例 3:
程序运行后接在 MegaPi Pro6 口 RJ25 转接板 1 口的智能舵机旋转到30°,再旋转到 120°,重复运行。
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
smartservo = board.SmartServo()
while True:
smartservo.move(1,720,50)
sleep(4)
smartservo.move(1,-720,50)
sleep(4)
程序示例 4:
程序运行后接在 MegaPi Pro6 口 RJ25 转接板 1 口的智能舵机旋转到30°,再旋转到 120°,重复运行。
from time import sleep
from makeblock import MegaPiPro
board = MegaPiPro.create()
smartservo = board.SmartServo()
while True:
smartservo.set_led(1,50,0,0)
sleep(0.5)
smartservo.set_led(1,0,50,0)
sleep(0.5)
smartservo.set_led(1,0,0,50)
sleep(0.5)
连接方式
● 电子接线
● 结构连接