主讲人: 阿凯爱玩机器人 & FashionStar
培训课程资料 - 百度网盘下载链接 (离线版PDF文件 + 开源代码 + 软件工具包)
链接:https://pan.baidu.com/s/1M5y_Qk6CvFyuNqi1fAERpg 提取码:asvu
课程实验配套物料
- Mega2560 R3开发板
- FashionStar串口总线舵机
RA8-U25 - UC-01舵机调试板
- 舵机线
- 电源
- 机械臂U形支架
串行总线舵机
可以在FashionStar官方Wiki里面学习关于串行总线舵机的知识
FashionStar在线产品使用手册 -Fashion Star Robot Wiki
UART串行总线舵机简介
为什么我们要用串口总线舵机,串口总线舵机相比较普通的PWM舵机有什么优势, 可以参考Wiki: UART串行总线舵机简介
串口通信协议
舵机正反两面各有一个单总线串口接口, UART通信接收端(Rx)跟发送端(Tx)共用一根线,数据发送与接收分时复用(半双工)。
串行总线舵机通信协议如下:
了解更多关于舵机自身的规格,结构参数等信息,可以参阅官方手册 UART串行总线舵机的结构与参数
舵机转接板
舵机的通信接口是3pin的, 信号线只有一根。 但是单片机的串口通信是4pin的, 接收端跟发送端是分开的, 术语称之为双线全双工异步串行通信. 因此在单片机跟串口总线舵机之间, 需要一个串行总线舵机转接板 来负责串口通信信号的转换以及供电.
详细介绍, 参见转接板UC01规格与接线说明
需要做的事情:
- 安装USB转TTL芯片 CH340的驱动
- 与舵机以及单片机之间的接线.
使用电脑的USB接口连接串行总线舵机转接板, 可以直接通过电脑上的上位机程序控制舵机, 并修改舵机的配置参数.
PS: 把上面的树莓派脑补为笔记本电脑.
舵机上位机
通过电脑上的上位机程序控制舵机, 并修改舵机的配置参数. 详细教程: UART串行总线舵机上位机软件使用说明
- 下载上位机
- 配置串口
- 设置波特率为115200, 进行舵机检索.
设置舵机ID号
舵机出厂的时候, 默认ID号为0, 而在同一个串行总线上, 每个舵机都需要一个独立的ID号。 而且在机械臂的SDK里面, 要求ID号必须是从0开始连续的分配.
需要使用上位机重新给舵机分配ID号, 且在分配ID号的时候, 每次总线上只连接一个舵机.
参见: UART串行总线舵机上位机软件使用说明 > 9.修改舵机ID
舵机安装中位点
在进行机械臂安装的时候,需要用到上位机的舵机角度实时控制, 将舵机调整到中位点, 例如90°
将上位机切换到舵机角度控制模式上面, 调整舵机角度
参见: UART串行总线舵机上位机软件使用说明 > 12.角度控制模式
FashionStar串口总线舵机-开源软件生态
机器人开发学习的资源宝库: FashionStar Github开源项目首页 servodevelop
PC
Arduino
STM32
MicroPython
Arduino Mega2560 开发板
预备工作
- 安装Arduino IDE
- 安装CH340驱动
Arduino Mega2560 与串行总线舵机转接板使用的是同一款USB转TTL芯片.
Arduino Mega 2560开发板上一共有四个串口资源, 分别为Serial0, Serial1, Serial2, Serial3
分配如下:
- Serial3 用作跟串口总线舵机进行通信,
- Serial0 用作日志输出(USB线所在的串口)。
Arduino Mega2560跟串口转接板的接线方式如下:
串口总线舵机(Arduino SDK)
串口总线舵机Arduino SDK, 代码仓库: fashionstar-uart-servo-arduino
SDK适配了Arduino Mega2560开发板, 在doc文件夹下面, 直接打开PDF文件.
需要掌握的知识点:
- 舵机角度控制
- 简单角度控制
- 角度控制添加功率约束 - 实现自适应夹爪的功能, 选定一个合适的功率值
- 舵机自身的轨迹规划算法, 梯形轨迹规划基本概念, 学会使用SDK里面的角度控制高阶API。
- 舵机角度查询
- 阻尼模式
- 同时控制多个舵机.
作业
: 只使用舵机SDK给机械臂写一套动作组.
自适应夹爪(Arduino SDK)
自适应夹爪Arduino SDK 代码仓库 fashionstar-gripper-arduino
打开上位机, 使用角度控制模式, 分别获取爪子张开跟闭合的角度.
// 爪子的配置
#define SERVO_ANGLE_GRIPPER_OPEN 15.0 // 爪子张开时的角度
#define SERVO_ANGLE_GRIPPER_CLOSE -45.0 // 爪子闭合时的角度
根据物体的重量以及舵机的型号, 选择一个合适的功率值
#define GRIPPER_MAX_POWER 400 // 爪子的最大功率 单位mW
- 如果功率值设置的过高, 夹爪力度可能就过高, 等于普通的舵机角度控制模式.
- 如果功率设置的过低, 会出现爪子卡顿, 没有力气, 停在特定位置, 不响应指令的情况.
五自由度机械臂(Arduino SDK)
五自由度机械臂Arduino SDK fashionstar-arm-5dof-arduino
SDK适配了Arduino Mega2560开发板, 在doc文件夹下面, 直接打开PDF文件.
- 在运行其他例程前, 需要先完成 机械臂舵机标定.
- 认识坐标系与关节的定义
- 例程学习
作业
编写一个简单的物块抓取的实例
修改连杆长度
如果根据项目需要, 针对工作区的要求, 可能会调整机械臂连杆的尺寸, 则需要同步修改代码里面连杆的配置, 单位cm.
#define FSARM_LINK2 8 // 连杆2的长度 单位cm
#define FSARM_LINK3 7.6 // 连杆3的长度 单位cm
#define FSARM_LINK4 13.6 // 连杆4的长度 单位cm(算上了爪子的长度)
评论(0)
您还未登录,请登录后发表或查看评论