【LeArm】动手实践机械臂(一)

导语:由于工业机器人不开源,无法二次开发,不能让它按照我们想要的轨迹运动,于是索性直接买个小的开源机械臂,这样既能够对底层代码进行了解,也能动手实践一下,在此记录LeArm的学习历程。

LeArm智能机械臂简介

  LeArm是深圳幻尔科技Hiwonder旗下的一块产品,它是基于Scratch的6自由度可编程机械臂,采用图形化编程,配备十余种电子模块,兼容Arduino编程,支持二次开发。它拥有具有反馈功能的智能串行总线舵机,可以实现夹取、分拣等功能,支持3种编程方式和5种控制方式。这里我采用的是基于STM32单片机的编程方式

round 1 认识LeArm

机械臂本体:机身由6个数字舵机组成,具有6自由度,最后一个自由度为夹爪的夹取,主控板为开源三合一开发板,末端执行器为合金机械爪。
三合一开发板:主要包括舵机接口,总线接口,电源接口,控制板开关,usb接口,脱机按键(100号动作组)等。
芯片:STM32单片机芯片。
蓝牙4.0模块:用来接收手柄控制或手机控制的蓝牙信号。
PS2手柄和手柄接收器
  昨晚到的机械臂,因为我购买的是成品,所以很多零件不用自己组装,直接将电源接口与电源适配器连接接电即可。

round 2 遥控玩法

疑惑:昨晚试了一下手柄控制,发现手柄控制没有反应,手机控制尝试过可以进行控制。
解决方法:重新烧录初始程序到开发板中,此时手柄可以实现控制,问题解决。

手柄控制有两种控制方式,包括单舵机模式和动作组模式。
单舵机模式:手柄上的按键单独控制每个舵机的正反运转。
动作组模式:手柄只能执行动作组0-20号的动作,组合键执行。
注:机械臂动作组最多有230个,每个动作组最多只能有255个动作,超过255个只能在线运行不能下载。手柄上的组合按键只能实现0-20号动作组,超过20号的动作组只能通过上位机或手机APP来实现运行。

实践总结:手机app控制精度比手柄控制高,同时手机还可以执行20号以外的动作组编号。

round 3 机械臂动作编辑

3.1 上位机&动作组编辑
连接usb口和电脑接口,打开上位机软件,可以自己定义多个动作构成一个动作组,也可以打开已有的动作组文件,并将动作组下载到开发板中,新下载的动作组会覆盖原有的动作组。

3.2 串联动作文件
多个动作组作为一个动作组执行。

3.3 脱机运行
100号文件,100号动作组,按下脱机按键即可。

3.4 APP自定义控制
电脑下载动作组到开发板中,通过手机来定义动作组名称,编号与下载到开发板中编号一致。

round 4 开发环境搭建

一系列操作不再赘述,简而言之就是程序的编译与烧录。
烧录步骤:接上usb线,脱帽,开启机械臂电源开关,选择需要烧录的文件.hex后缀,开始烧录,提示一切正常后,断开ubs接线,插回跳帽,按下RST按键,切换为运行模式。

根据以上的知识点,我们可以给自己设计个题目来综合运用目前所学的知识。

习题1:自己编辑动作组来实现抓取和放置方块的动作,并通过手柄控制来实现动作

step1:将整个路径分解为多个路径点,再将每个路径点作为一个动作

如图所示,将这个路径规划为10个动作,并将整个动作组下载到手柄能够执行到的动作组编号中。(我这里下载到的是0号动作组)

step2:连接手柄蓝牙,一切正常显示后,通过手柄对应按键来执行动作组0号。如发生手柄不能控制机械臂情况,则需重新烧录程序实现初始化。

个人感想

  在实际操作之后,对LeArm机械臂有了一定的认识,对于精度方面,当然不能要求这样一款小型的物美价廉的机械臂和工业机械臂相比,同时发现这款机械臂底座有点轻,需要加重底座来实现更稳的控制,本次作业只应用到了机械臂的基础操作,后续将开始单片机底层编码的了解以及二次开发的应用,正好之前玩过树莓派,初步感觉可以用LeArm+树莓派实现二次开发。

### 问题分析 当使用 RealMan 65-B 串口调试助手向机械发送指令时,如果机械无响应,则可能涉及以下几个方面的原因:通信设置不匹配、硬件连接异常、软件协议错误或机械本身存在问题。 --- ### 解决方案 #### 1. **确认串口通信参数** 确保 RealMan 65-B 的串口通信参数与机械的要求致。常见的串口参数包括波特率、数据位、停止位和校验方式。通常情况下,默认波特率为 `9600` 或其他特定值(需查阅机械文档)。 例如,在 RealMan 中设置如下参数[^1]: ```plaintext 波特率:9600 bps 数据位:8 停止位:1 校验位:无 流控:无 ``` #### 2. **检查硬件连接** 验证 USB 转 TTL 模块或其他接口设备是否正常工作,并确保 TX 和 RX 线缆接反的情况已被排除。此外,还需注意电源供电是否稳定以及是否有短路现象发生。对于 LeArm 这类产品来说,其默认接收端为逻辑低电平信号输入模式。 #### 3. **测试命令格式** 不同品牌型号的机械支持各自独特的控制协议。以 Arduino 控制为例,某些版本可能接受 ASCII 字符串形式的数据包作为动作触发条件;而另些则依赖二进制编码序列完成操作。因此,请参照具体手册编写正确的帧结构并尝试重新下发测试用例。 以下是基于假设的个简单字符串型请求实例: ```python # Python 示例代码用于模拟发送有效负载至目标装置 import serial ser = serial.Serial('COM3', baudrate=9600, timeout=1) # 初始化串行对象 command_str = "MOVE:ARM_UP\r\n" # 定义合法的动作描述语句 ser.write(command_str.encode()) # 将文本转换成字节数组后传递出去 response_data = ser.readline().decode() # 获取返回消息以便后续诊断分析 print(f'Received feedback:{response_data}') ser.close() ``` #### 4. **排查固件状态** 假如上述方法均未能奏效,那么可以考虑升级或者恢复出厂设置当前所使用的控制器内部程序文件副本。这步骤往往能够修复因意外篡改而导致的功能紊乱状况。 #### 5. **咨询官方资源** 最后,若以上措施依旧无法解决问题,建议联系制造商获取进步的技术支援服务。通过访问官方网站下载最新驱动安装包或是加入专属交流群组寻求帮助都是不错的选择途径之。 --- ### 注意事项 - 在调整任何配置之前做好充分备份以防万造成不可逆损害。 - 如果不确定具体的通讯细节最好先查询相关资料动手实践以免误判引发更多麻烦。
评论 62
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值