本文主要介绍了如何快速上手用树莓派控制Dynamixel X系列电机,并以电机成功执行一个官方案例作为结束。
首先将所有接线连接完成,打开树莓派终端,依次执行:
sudo apt install git
cd ~
git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git
sudo apt install gcc-5 (P.S.一般Linux自带高于5.0版本以上的gcc编译器,因此此步无需执行)
sudo apt install build-essential
随后Build Library:
cd ~/DynamixelSDK/c/build/linux_sbc
make
sudo make install
接下来我们运行一个官方案例检验电机的正常工作:
首先:cd ~/DynamixelSDK/c/example/protocol2.0/read_write
用喜欢的编辑器打开read_write.c文件,如:vim read_write.c
由于我们使用的是X系列的电机,因此相关参数需要调整,具体需要把原有位置内容修改如下:
// Control table address
#define ADDR_PRO_TORQUE_ENABLE 64
#define ADDR_PRO_GOAL_POSITION 116
#define ADDR_PRO_PRESENT_POSITION 132
// Default setting
#define DXL_ID 1 // Dynamixel ID: 1
#define BAUDRATE 57600
#define DXL_MINIMUM_POSITION_VALUE 100 // Dynamixel will rotate between this value
#define DXL_MAXIMUM_POSITION_VALUE 4000 // and this value (note that the Dynamixel would not move when the position value is out of movable range. Check e-manual about the range of the Dynamixel you use.)
修改完后记得保存退出。
接下来我们继续准备执行案例,依次执行:
cd ~/DynamixelSDK/c/example/protocol2.0/read_write/linux_sbc
make
sudo chmod a+rw /dev/ttyUSB0
./read_write
随后按照终端输出的信息,进行相应的操作就可以看见电机成功转动起来。
其他编程语言操作类似,具体参考:DYNAMIXEL SDK (robotis.com)
参考资料:
[3.5.4][C++][USB2Dynamixel][XM540-W270-R] Issue: RxPacketError - Data is out of range · Issue #175 · ROBOTIS-GIT/DynamixelSDK (github.com)