littlebot
Published on 2025-04-10 / 0 Visits
0

【源码】基于Arduino的SainSmart机械臂控制系统

项目简介

本项目是一个基于Arduino平台的开源项目,目标是通过Arduino软件控制SainSmart DIY 6轴机械臂和Sunfounder Rollpaw夹持器,使用平滑的Bernstein多项式来实现机械臂的精确控制。

项目的主要特性和功能

  1. 机械臂控制:可通过Arduino软件控制SainSmart 6轴机械臂,支持对多种伺服电机的角度和脉冲宽度进行控制。
  2. 平滑运动:利用Bernstein多项式实现机械臂的平滑运动,避免运动时出现突变和抖动。
  3. 设备兼容性:支持多种硬件设备,包括Redboard、DFRobot IO扩展板、6V DC/3A电源、USB Mini - B电缆等。
  4. 测试和调试:提供PC端的测试工具,便于开发者在PC上进行软件测试和调试。
  5. 串行控制:能通过串行终端(如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个教学点从al) - 'a:转到教学点a - da:显示教学点a的配置 - x:停止所有伺服(实际上任何未定义的键都可以)

使用Ctrl - A \\退出screen终端。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】