一起来开发一个磁条机器人(一)
描述
之前的几个章节,我们依次介绍了使用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>
- 1
功能4 充电
机器人需要电池及充电模块。目前我知道的充电方式有三种:手充、接触式充电、无线充电。
手充:这是一种专业的口语,实际上就是将充电变压器,通过220V直接插到机器人上。目前我的机器人采用这种方式,充电效率高,也简单,适合有人在的场景。
接触式充电:机器人上设置正负极,与充电桩的正负极进行接触,完成充电。这种充电方式效率也很高,适合无人场景。不过这种方式适合AMR,并不太适合磁条机器人。同时,这种方式需要设计充电桩,做好安全性设计,即使这样有时还是会有电火花存在。
无线充电:机器人和充电桩上,都安装有线圈,通过磁场产生电压(不专业,不是物理学的)。这种方式挺高级,但实际上并不实用。第一这种方式充电效率极低,对机器人与充电桩的距离有要求,这对本身低廉的磁条机器人的到位精度有很高的要求。第二这种方式没意义啊,你都设计充电桩了,需要机器人停靠的又这么精确,你干脆设计一个接触式充电啊。你看看无线充电的都是什么高级货:iphone、apple watch(虽然我都有吧。。。)
其他必要功能
1. 外壳
外壳需要一个专业的机械结构工程师进行设计。在这一趴未来将是我介绍最简略的部分,因为我除了对机械图纸在solidworks上进行一些简单的修改之外,是一无所知的。好在,我有机械团队的同事,对这个机器人进行了一个非常简单的开发。
这个设计虽然简单,但还是一个比较巧妙和美观的设计。
2. 开关机
开关机实际上,是指的一个成熟机器人的必须——一个开关。这个开关控制着机器人的开关机,控制电池的电什么时候输送给控制板。
我使用的开关按钮是这样的5脚带自锁的金属开关,如图。我还是比较喜欢这种按钮,平时不按的时候是常开的(断开),按下后中间部分会陷进去,然后发亮,同时开关闭合。我平时选绿色的,工程师的自觉,代表没有bug哈哈。
3. 急停
机器人的急停功能,我认为有三种实现方式。
算法主动急停:利用传感器的数据,进行停止的判断。我的机器人使用的是超声传感器和磁条传感器,数据融合进行判断。
机械主动急停:机器人外部机械结构需要增加一条碰撞开关。碰撞开关实际上就是一个开关,一般有常闭和常开两种。
人为主动按停:利用急停按钮,我设计的机器人急停按钮按下后,会断开电机驱动器的输入电压,达到机器人急停的目的。
超声传感器如下:
碰撞开关和急停按钮如下:
4. 避障
在磁条机器人中,由于磁条机器人的移动特性是按照磁条布线进行移动,没有脱离磁条移动的能力,因此避障实际上就是一种主动急停。既然是主动的,我们肯定依然是利用传感器完成,也就是超声传感器及磁条传感器,在这不赘述。
5. 状态显示
机器人需要状态显示的功能,来传达自身当前状态。这里我们用到了之前开发过的WS2812灯带。咱叔不赘述,之后会针对灯带的能力,进行一个状态切换的程序开发。
总结
这一篇文章,大体梳理了如何一个完整磁条机器人所需要的各个模块及功能。接下来,我们会对每个部分进行展开介绍。
写的不容易,欢迎各位朋友点赞并加关注,谢谢!
- 分享
- 举报

-
浏览量:1402次2023-04-20 08:57:01
-
浏览量:890次2023-04-23 09:46:58
-
浏览量:1106次2023-04-21 08:46:56
-
浏览量:1095次2023-04-23 09:44:59
-
浏览量:876次2023-04-21 08:55:25
-
2023-12-06 11:28:37
-
浏览量:6737次2022-05-30 15:26:15
-
浏览量:1331次2023-03-20 15:51:34
-
浏览量:1196次2023-08-10 14:45:17
-
浏览量:875次2023-09-20 11:37:44
-
浏览量:2335次2022-03-22 09:00:12
-
浏览量:1061次2023-02-15 15:42:15
-
浏览量:4208次2019-10-23 14:55:46
-
浏览量:1289次2023-10-28 16:11:07
-
浏览量:680次2023-09-28 10:38:10
-
浏览量:521次2023-11-15 15:54:49
-
浏览量:1236次2023-12-11 11:01:31
-
浏览量:2221次2023-04-19 09:11:52
-
浏览量:1766次2020-04-03 09:38:23
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖

MOmo






举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明