OWI 535 Robotic Arm Edge 通信原理及Python控制

OWI 535 Robotic Arm Edge(owi535,owi 535,owi-535)是一套非常流行的五自由度机械臂套件,常见于创客改造与科研用途。
owi 535
机械臂由USB通信实现控制,每个控制指令由3个字节组成,分别为Byte0Byte1Byte2。每个字节控制特定的一部分手臂功能,同时所有的电机(和LED灯)都可以被单独控制。字节中的对应部分处于“00”状态时,一般用于停止对应电机(或LED)动作。

注意:机械臂在得到控制指令后会持续运行,直到接到下一条指令。

字节中的比特位

首先简单定义一下字节中的比特位顺序。一个字节有8个比特位,从低位到高位依次定义为0到7,如下图所示:
bit numbering

Byte0

第一个字节Byte0控制Gripper(抓手)、Shoulder(肩关节电机)、Elbow(肘关节电机)还有Wrist(腕关节电机)。

Byte0的各个比特位从低到高的控制分配如下表所示:

比特位关节规则
1, 0抓手00-停止移动, 01-闭合, 10-张开
3, 200-停止移动, 01-向上移动, 10-向下移动
5, 400-停止移动, 01-向上移动, 10-向下移动
7, 600-停止移动, 01-向上移动, 10-向下移动

比特位数值的不同组合分别实现了对不同关节电机的控制,各自之间是独立的,所以能够同步控制。

这里向上移动和向下移动可能会有些费解,因为在不同的姿态下“上”和“下”的概念是可以翻转的,所以这里只要简单地理解为控制电机朝两个方向转动就好了。

另外,也可以发现这里是没有“11”组合的。

Byte1

第二个字节Byte1控制Base(基座)。

Byte1的比特位分配如下:

比特位关节规则
1, 0基座00-停止移动, 01-顺时针转动, 10-逆时针转动

更高位的比特被忽略,不参与机械臂控制。

Byte2

Byte2控制抓手中间的LED灯

Byte2的比特位分配如下:

比特位关节规则
0LED灯0-关闭, 1-打开

更高位的比特被忽略,不参与机械臂控制。

通过Python发送控制指令

我整理了一份Python控制代码,封装了上面提到的机械臂基本运动控制指令,本质上是调用Python的usb库来与机械臂进行usb通信,已开源至自己的GitHub仓库。如果有帮助的话欢迎给个star⭐: )

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值