项目简介
本项目是一个基于Arduino平台的开源项目,目标是通过Arduino软件控制SainSmart DIY 6轴机械臂和Sunfounder Rollpaw夹持器,使用平滑的Bernstein多项式来实现机械臂的精确控制。
项目的主要特性和功能
- 机械臂控制:可通过Arduino软件控制SainSmart 6轴机械臂,支持对多种伺服电机的角度和脉冲宽度进行控制。
- 平滑运动:利用Bernstein多项式实现机械臂的平滑运动,避免运动时出现突变和抖动。
- 设备兼容性:支持多种硬件设备,包括Redboard、DFRobot IO扩展板、6V DC/3A电源、USB Mini - B电缆等。
- 测试和调试:提供PC端的测试工具,便于开发者在PC上进行软件测试和调试。
- 串行控制:能通过串行终端(如
screen
)与机械臂交互,支持多种控制命令,可获取和设置伺服角度、脉冲宽度等。
安装使用步骤
假设用户已经下载了项目的源码文件:
1. 安装依赖:
bash
sudo aptitude install arduino - mk screen google - mock
2. 创建初始校准文件:
bash
cp calibration.hh.default calibration.hh
注意:需根据自己的机械臂调整校准文件中的限制和偏移,防止自碰撞。
3. 构建Arduino程序:
bash
make
注意:可能需要根据Arduino板卡修改arduino/Makefile
中的BOARD_TAG
,可查看/usr/share/arduino/hardware/arduino/boards.txt
获取支持的板卡标签。
4. 测试软件:
可在PC上构建并运行测试:
bash
make check
5. 上传到Arduino:
使用upload
目标将程序上传到Arduino板:
bash
make upload
警告:首次连接伺服电机前,先编程板卡,防止异常运动。
6. 控制机械臂:
可使用screen
串行终端控制机械臂(确保/dev/ttyUSB0
是正确的端口):
bash
screen /dev/ttyUSB0 115200
示例控制命令如下:
- o
:检查驱动是否准备好接收更多命令(1 = 准备,0 = 忙)
- t
:获取时间
- b
:获取基座伺服角度
- s
:获取肩部伺服角度
- e
:获取肘部伺服角度
- r
:获取滚动伺服角度
- p
:获取俯仰伺服角度
- w
:获取腕部伺服角度
- g
:获取夹持器伺服角度
- B
:获取基座伺服脉冲宽度
- S
:获取肩部伺服脉冲宽度
- E
:获取肘部伺服脉冲宽度
- R
:获取滚动伺服脉冲宽度
- P
:获取俯仰伺服脉冲宽度
- W
:获取腕部伺服脉冲宽度
- G
:获取夹持器伺服脉冲宽度
- c
:获取当前配置(基座、肩部、肘部、滚动、俯仰和腕部)
- l
:获取伺服的下限
- u
:获取伺服的上限
- 45b
:设置基座伺服角度为45度
- -12.5s
:设置肩部伺服角度为 - 12.5度
- 10e
:设置肘部伺服角度为10度
- 20r
:设置滚动伺服角度为20度
- 30p
:设置俯仰伺服角度为30度
- 40w
:设置腕部伺服角度为40度
- 0g
:设置夹持器伺服角度为0度
- 2400B
:设置基座伺服脉冲宽度为2400
- 1500S
:设置肩部伺服脉冲宽度为1500
- 720E
:设置肘部伺服脉冲宽度为720
- 1500R
:设置滚动伺服脉冲宽度为1500
- 1500P
:设置俯仰伺服脉冲宽度为1500
- 1500W
:设置腕部伺服脉冲宽度为1500
- 2000G
:设置夹持器伺服脉冲宽度为2000
- 1 2 3 4 5 6c
:设置配置(基座、肩部、肘部、滚动、俯仰和腕部)为1, 2, 3, 4, 5, 和6度
- 1 2 3 4 5 6t
:到达指定配置所需的时间
- ma
:保存教学点a
(共有12个教学点从a
到l
)
- 'a
:转到教学点a
- da
:显示教学点a
的配置
- x
:停止所有伺服(实际上任何未定义的键都可以)
使用Ctrl - A \\
退出screen
终端。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】