一起来开发一个磁条机器人(一)

一起来开发一个磁条机器人(一) MOmo 2023-04-20 08:54:12 443
描述

之前的几个章节,我们依次介绍了使用stm32的开发经历,文章的顺序是按照机器人从无到有的开发逻辑:stm32的基本使用,stm32是如何和模块完成通信的,stm32控制电机及灯带。

这一章节,我们将正在开始去设计一个机器人,并且使用之前章节的开发经验,完成一个磁条机器人的开发与设计工作。

这一篇是一个先导文章,主要是梳理我们机器人的功能和大体设计逻辑。

磁条机器人的功能

在进行设计与开发工作之前,我们当然要认真的思考:一个磁条机器人被生产出来后,它究竟应该有什么样的功能。那么我们会说,这个磁条机器人应该具有

移动——我们要做的是以磁条未导航的移动机器人,移动功能是最基础的
到位——机器人应该能够精准的到达指定的位置
通信——机器人需要与上层的控制器进行通信
充电——机器人必须要能够充电呀
其他必要功能,包括外壳、开关机、急停、避障、状态显示等
对此,我们将每个功能展开进行说明

功能1 移动能力

移动能力可以分为两个阶段的能力:可移动+沿磁条移动,分别对应机器人需要的两个模块:电机+磁条传感器。

可移动:电机需要能够调速(加速、减速),停止,反向
沿磁条移动:磁条传感器能够返回机器人检测磁条的情况,机器人需要根据传感器的返回状态,调整左右电机的速度,保证磁条始终位于机器人的中间部分。
下图是我使用的磁传感器,该模块的具体性能已经在之前篇章介绍过了,这里不进行赘述。

功能2 到位功能

除了移动能力,显然磁条机器人还需要额外的一项关键能力,那就是到位功能。作为工业机器人的一种,移动机器人的到位精度是非常关键的一项指标。只不过我们这里做的是小成本的磁条机器人,并不是依靠相机和雷达的SLAM的AMR,因此我们的到位功能可以通过另外一种方式来实现,这就是RFID射频技术。

这是我使用的RFID射频模块,截图如下,该模块的具体性能已经在之前篇章介绍过了,这里不进行赘述。

功能3 通信功能

通信能力是机器人的基础功能之一,我们需要有一种方式能够对机器人进行控制。磁条机器人需要通信的模块包括磁传感器和RFID传感器。我们的控制算法以这两个模块为核心,通过两个传感器返回的数据进行机器人相应的控制。

对于需要上位机控制机器人这一需求,我们在控制板上的stm32芯片自带的管脚,使用了一个串口转usb的模块,利用USART串口的RX和TX完成。暂时的,我们没有为机器人增加其他上位机控制的方式。

对于需要远程控制机器人的需求(我的机器人没有用到,但是这部分我会考虑介绍一下),我们实际上可以采用一组232收发模块,发射模块自带天线放置在机器人上,另一端接收模块通过USB口连接到上位机,通过QT的QSerialPort头文件进行一个上位机串口软件的开发。

该功能可以参考QT creator中的示例程序,名字叫做terminal example,里面是QT针对串口通信设计的一个小的窗口程序,之后我会介绍。使用的头文件就是QSerialPort。

#include <QSerialPort>
功能4 充电

机器人需要电池及充电模块。目前我知道的充电方式有三种:手充、接触式充电、无线充电。
手充:这是一种专业的口语,实际上就是将充电变压器,通过220V直接插到机器人上。目前我的机器人采用这种方式,充电效率高,也简单,适合有人在的场景。
接触式充电:机器人上设置正负极,与充电桩的正负极进行接触,完成充电。这种充电方式效率也很高,适合无人场景。不过这种方式适合AMR,并不太适合磁条机器人。同时,这种方式需要设计充电桩,做好安全性设计,即使这样有时还是会有电火花存在。
无线充电:机器人和充电桩上,都安装有线圈,通过磁场产生电压(不专业,不是物理学的)。这种方式挺高级,但实际上并不实用。第一这种方式充电效率极低,对机器人与充电桩的距离有要求,这对本身低廉的磁条机器人的到位精度有很高的要求。第二这种方式没意义啊,你都设计充电桩了,需要机器人停靠的又这么精确,你干脆设计一个接触式充电啊。你看看无线充电的都是什么高级货:iphone、apple watch(虽然我都有吧。。。)

其他必要功能
1. 外壳

外壳需要一个专业的机械结构工程师进行设计。在这一趴未来将是我介绍最简略的部分,因为我除了对机械图纸在solidworks上进行一些简单的修改之外,是一无所知的。好在,我有机械团队的同事,对这个机器人进行了一个非常简单的开发。

这个设计虽然简单,但还是一个比较巧妙和美观的设计。

2. 开关机

开关机实际上,是指的一个成熟机器人的必须——一个开关。这个开关控制着机器人的开关机,控制电池的电什么时候输送给控制板。

我使用的开关按钮是这样的5脚带自锁的金属开关,如图。我还是比较喜欢这种按钮,平时不按的时候是常开的(断开),按下后中间部分会陷进去,然后发亮,同时开关闭合。我平时选绿色的,工程师的自觉,代表没有bug哈哈。

3. 急停

机器人的急停功能,我认为有三种实现方式。

算法主动急停:利用传感器的数据,进行停止的判断。我的机器人使用的是超声传感器和磁条传感器,数据融合进行判断。
机械主动急停:机器人外部机械结构需要增加一条碰撞开关。碰撞开关实际上就是一个开关,一般有常闭和常开两种。
人为主动按停:利用急停按钮,我设计的机器人急停按钮按下后,会断开电机驱动器的输入电压,达到机器人急停的目的。
超声传感器如下:

碰撞开关和急停按钮如下:

4. 避障

在磁条机器人中,由于磁条机器人的移动特性是按照磁条布线进行移动,没有脱离磁条移动的能力,因此避障实际上就是一种主动急停。既然是主动的,我们肯定依然是利用传感器完成,也就是超声传感器及磁条传感器,在这不赘述。

5. 状态显示

机器人需要状态显示的功能,来传达自身当前状态。这里我们用到了之前开发过的WS2812灯带。咱叔不赘述,之后会针对灯带的能力,进行一个状态切换的程序开发。

总结

这一篇文章,大体梳理了如何一个完整磁条机器人所需要的各个模块及功能。接下来,我们会对每个部分进行展开介绍。

写的不容易,欢迎各位朋友点赞并加关注,谢谢!
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
MOmo
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
MOmo
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区