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

注意:此篇文章只做技术性分享,不建议用arduino uno直接控制ROBOTIS舵机,因其存在众多不稳定性和不确定性,我们不做相关技术支持,希望大家谨慎采用此方法。

建议大家采用robotis出品的 Dynamixel Shield扩展板对接arduino的板子:

1893207946_e67674d9_1

选购链接:https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3146103643.12.66c872f1O8rTdt&id=591558442503

 

————————————————————————————————————–

 

一直以来robotis的TTL串口通信都是让人为难的问题,它使用的是半双工TTL通信,也就是收和发都集中在一个管脚,并且不能同时进行。一直不理解当初robotis这样设计的目的(难道为了省一根线?)。

现在玩arduino的人比较多,而robotis的舵机在世界机器人领域都是比较有名和出众的。虽然robotis公司生产了一款OpenCM的arduino框架控制板,但是有很多开源库要想在上面使用,还是比较麻烦。很多人就想,如果arduino能直接驱动robotis舵机,那该多好。但arduino出来的串口是全双工的,不能直接连接Dynamixel TTL舵机通信,很多爱好者的做法就是,另外加一个全双工转半双工的模块来进行舵机驱动。这个方法不错,但毕竟增加了额外的硬件,不免有点不方便。

最近,应一个客户的需求,在网上寻找arduino直接驱动Dynamixel舵机的方法。很庆幸,已经有网友做出来了:通过软件方式模拟半双工通信,实现舵机驱动。

现在把这种驱动方式分享给大家!

 

测试环境:

1、arduino uno控制板  & 软件arduino v1.0.6版本

2、AX-12A舵机

3、SMPS2Dynamixel舵机电源模块

4、12V5A适配器

 

注意事项:

1、arduino本身的电流电压无法供应AX-12A舵机,所以AX-12A舵机要额外供电。

2、arduino控制板和舵机要共地。

QQ截图20160914095726

在上图中,SMPS2Dynamixel模块负责给Dynamixel舵机供电,同时,负责连接舵机与arduino直接的通信,它的两个接口其实是串联关系,只是为了供电与通信的方便,提供了这样一个模块而已(这个模块可以到小芽科技的淘宝店铺选购)。

arduino uno本身的5V电压电流无法驱动舵机,所以必须得给你舵机供应12v的电压。

在arduino uno的控制板上,GND与SMPS2Dynamixel的GND连通(其实就是与舵机共地),控制板的8管脚与SMPS2Dynamixel的DATA端连通(其实就是与舵机的DATA端连通)。由于不需要控制板提供电压,所以VCC电源端可以悬空(不接)。

这个例程一共驱动两个舵机,分别为底部舵机为ID=1,上端舵机为ID=2,舵机使用的波特率为57600。

注意:必须确定好舵机的ID号和波特率,可以使用USB2Dynamixel串口模块进行设置。详细流程请参考另外一篇博客:http://xiaoyatec.com/2016/08/19/%e4%bd%bf%e7%94%a8usb2dynamixel%e4%bf%ae%e6%94%b9%e8%88%b5%e6%9c%baid%e5%92%8c%e6%b3%a2%e7%89%b9%e7%8e%87%e7%9a%84%e6%96%b9%e6%b3%95/

 

涉及的两个库的链接:

https://github.com/akira215/DynamixelArduino

https://github.com/akira215/HalfDuplexSerial-for-Arduino

(或者)小芽科技提供的库和例程链接:

http://pan.baidu.com/s/1slL8FyH

把两个库下载之后,放置到arduino的客户库文件目录里边

例如:C:\Users\XXXXXX\Documents\Arduino\libraries

QQ截图20160914110106

解压缩,修改文件夹名称(最好不要有连接符),我修改为以下形式:

QQ截图20160914110351

 

然后,就可以运行例程了!

 

相关代码如下:

运行效果如下:

dfwerwreq

OpenCM9.04控制XM430-W350舵机

视频地址: https://haokan.baidu.com/v?vid=8171648541988572636

阅读全文

利用OpenCM9.04控制板获取舵机反馈

声明:此文档版权归属于北京小芽科技,可以转载,但要声明出处(北京小芽科技博客xiaoyatec.com)   OpenCM9.04控制板分为 A、B、C三个版本,这三个版...

阅读全文

Dynamixel Protocol 2.0 的协议使用样例介绍

声明:此文档版权归属于北京小芽科技,可以转载,但要声明出处(北京小芽科技博客xiaoyatec.com)   对于Robotis舵机来说,由于舵机版本的不同,使用的...

阅读全文

欢迎留言

你必须启用JavaScript才能看到这里的验证码!