小车舵机控制linux软件,在Linux(Ubuntu)上使用串口控制ROBOTIS Dynamxiel舵机

声明:此文档版权归属于北京小芽科技,可以转载,但要声明出处(北京小芽科技博客xiaoyatec)

硬件配置:

1、USB2Dynamixel串口模块

2、SMPS2Dynamixel电源模块

3、12V5A直流电源

4、Dynamixel舵机

软件配置:

1、roboplus (windows端)

2、cutecom (Ubuntu linux端)

这篇文章主要给大家介绍怎样用linux串口控制robotis 的 Dynamixel舵机。

Dynamixel舵机的通信方式分为两种:TTL和RS485。但这里得注意一点,TTL通信是半双工通信方式,而咱常见的TTL通信,都是全双工的,所以要使用TTL控制舵机,这里就得把全双工的串口转为半双工的通信模式。原理图如下:

以上原理图是给那些想自己画板子的人看的,一般用户可以直接使用USB2Dynamixel串口模块进行舵机控制。USB2Dynamixel串口模块具有TTL、RS232、RS485通信方式,所以控制robotis所有系列的舵机是完全没问题的。

以下图示是硬件连接部分,USB2Dynamixel串口模块具有三个档位,代表三种不同的通信方式,现在把它移至TTL档位:

首先,为了实验的方便,把测试舵机AX-12A的ID设置为1,波特率设置为9600(舵机出厂默认波特率为1000000)。

然后在windows系统上使用roboplus(robotis官方软件)来修改舵机信息

把舵机波特率修改为9600即可(对应软件里的波特率序号207(9615))。

最好再测试一下舵机的转动情况,如果这些测试都没问题的话,说明舵机是完好的,下面就可以进行linux的测试了。

现在,把USB2Dynamixel串口模块插入Ubuntu系统中,可以在 /dev 目录里边查看串口:

一般在 /dev 目录中会多出一个串口名称,这里出现的是 /dev/ttyUSB0 (也有可能是其他名称,比如 /dev/ttyUSB1等等),这就说明串口模块驱动成功。

下来,我们就可以进行舵机串口控制测试实验了。我们使用cutecom串口助手作为软件控制端。

首先得安装cutecom串口工具:

安装完毕之后就可以通过以下命令启动cutecom串口工具:

出现如下界面,选择 “/dev/ttyUSB0”串口,选择波特率“9600”。

然后点击“Open device”按钮,连接串口。

我们这里使用的测试协议样例如下:

读取当前位置:ff ff 01 04 02 24 02 d2

设置运动速度:ff ff 01 05 03 20 a6 00 30

转动到相应角度1:ff ff 01 05 03 1e 99 00 3f

转动到相应角度2:ff ff 01 05 03 1e 70 03 65

一般情况下,舵机都会执行相应指令,并做返回。这些协议测试没有问题的话,说明在linux上,串口测试舵机是成功的。

下来就可以自行写串口程序对舵机进行控制了。

如果windows上能够使用,而linux没法使用,那问题就出在linux的通信上,看看端口号和波特率是否正确,切记一点,舵机要独立供电。