基于STM32的智能载重机器人小车的设计
2023-12-25华永翔宫丽娜谢柏蓉
华永翔 宫丽娜 谢柏蓉
摘要:21世纪是一个智能化的时代,各种智能化设备正在逐步替代人为的操作。随着科学技术的迅速发展,关于智能机器人的研究也就越来越受人关注。系统采用STM32F103C8T6作为系统主控芯片,采用L293D大功率H桥电机驱动芯片完成对机器人小车的两只电机进行驱动,当检测到小车与障碍物距离较近时会自动转动方向行驶避开与障碍物直接碰撞。总的来说,基于STM32的智能载重机器人小车的设计,可以提高自动化水平,减轻人力劳动,提高生产效率,具有非常重要的现实意义和社会价值。
关键词:STM32最小系统;传感器;智能载重;自动循迹;机器人小车
中图分类号:TP302 文献标识码:A
文章编号:1009-3044(2023)31-0110-05
开放科学(资源服务)标识码(OSID)
0 引言
随着社会经济和科学技术的发展,为解决城市中剩余的部分特殊人群(低保户、丧失劳动力、鳏寡孤独等)缺乏劳动力问题,设计一款智能机器人解放人们的双手是非常有必要的,同时搭载人工智能和大数据技术,为了方便一些特殊人群,机器人同样具备人脸识别功能,然后通过大数据来分析是否为服务对象,该帮助人们在有需要的时刻提供一定载重,或能够将物品送至指定地点,并且自动判断地形及优化最佳路线,形成智能送快递等服务,为城市新型智能化公共服务发展起到推进作用,造福于民[1]。
智能载重机器人小車是一种自动导引机器人系统,能够在无人值守的情况下自动识别路线并选择正确的路线。该机器人运用了传感器、开发板、电机驱动及自动控制等技术,使其能够在不同的环境下行走、搬运物品,极大地提高了生产效率,降低了劳动成本。因此,基于STM32的智能载重机器人小车的设计,旨在提高自动化水平,减轻人力劳动,提高生产效率,具有非常重要的现实意义和社会价值[2]。
1 设计思路
随着社会的不断发展,人们的生活变得智能化和科技化,智能家居开始走进人们的生活。而对于智能载重机器人,传统的载重机器人功能相对简单,就是将重物送到地方后,然后就停止工作了,并且耗电量很大,而且后续的工作还是需要人来完成,对人的身体健康是一种消耗,同时也大大降低了人们的工作效率。现在市面上的很多智能载重机器人附带按键、显示屏,但是对于更为关键的人脸识别、远程控制和软件一体化等问题却并没有很好的解决方案。
智能载重机器人小车运行中所用电磁铁智能载重技术、自动循迹、避障传感器、电机驱动、STM32最小系统的开发及微电子技术得到了迅速发展,其主要表现在传统人工搬运货物被智能载重机器人小车所替代,智能载重控制中所用先进技术为控制的高效运行提供了有利条件,因此,智能载重技术已经成为自动化系统的发展趋势。本设计利用计算机技术并辅助以其他手段,编写适合的程序,实现机器人小车的按预定路径行进、避障、搬运等功能。需要利用控制器的定时器、PWM输出等功能,对电机进行精确控制,同时对传感器进行数据采集和处理,实现机器人小车的感知和决策。
本系统是以STM32最小系统为控制器的核心,主要由电源电路、电机调速电路、复位电路、循迹传感器模块、红外避障传感器模块、按键模块、电磁铁控制模块、左电机和右电机组成。工作时,红外线传感器采集物品的轻重、判断附近是否有物品等信息送到STM32单片机最小系统,STM32最小系统根据这些信息通过控制电路对电磁铁设备进行开关操作,从而实现搬运货物控制,以达到智能载重的目的。系统的硬件设计原理图如图1所示。
2 主要硬件电路的设计
STM32核心板电路:选择适合的STM32核心板,根据其规格书和原理图设计核心板的电路。包括电源电路、晶振电路、复位电路、通信接口电路等。
传感器接口电路:根据所选传感器的接口规范,设计传感器与STM32核心板的接口电路。例如,如果选择红外传感器,需要设计红外传感器的信号放大、滤波、解调等电路;如果选择超声波传感器,需要设计超声波发射和接收电路等。
电机驱动电路:选择适合的电机和驱动器,根据其规格书和驱动电压、电流等要求,设计电机驱动电路。考虑电机的转速控制、转向控制、电流控制等问题,以及驱动器与STM32核心板的接口设计。
称重传感器接口电路:选择合适的称重传感器,根据其规格书和接口要求,设计称重传感器接口电路。考虑传感器的量程、精度、稳定性等因素,以及如何减小系统误差和提高测量准确性[3]。
通信接口电路:根据系统需求,设计与其他设备或计算机通信的接口电路,如串口通信、蓝牙通信、Wi-Fi通信等。
电源电路:设计整个系统的电源电路,考虑电源的稳定性、功耗、噪声等问题,以及各个模块所需的电压和电流要求。系统总体设计结构框架图如图2所示。
2.1 STM32最小系统
STM32F103C8T6增强型系列使用高性能的ARM/Cortex-M3/32位的RISC内核,它是一种低功耗、高性能的32位微控制器,工作频率为72MHz,内置高速存储器(高达128KB字节的闪存和20KB字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN[4]。
STM32F103C8T6增强型系列工作于-40℃至+105 ℃的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。
完整的STM32F103C8T6增强型系列产品包括从36脚至100脚的五种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系列产品中所有外设的基本介绍。
这些丰富的外设配置,使得STM32F103C8T6增强型微控制器适合于多种应用场合:电机驱动和应用控制;医疗和手持设备;PC外设和GPS平台;工业应用:可编程控制器、变频器、打印机和扫描仪;警报系统、视频对讲和暖气通风空调系统。STM32最小系统原理图如图3所示。
2.2 电源电路
电源输入一般通过电源适配器或电池提供,输入电压可能为直流电压或交流电压。根据实际需求选择适合的电源输入方案。电源管理单元一般包括电源转换电路、稳压电路等,用于将输入电压转换为系统所需的各种稳定电压,为芯片和其他外设提供稳定的电源供应。电源保护电路主要包括过电压保护、过电流保护等,用于保证电源电路的安全稳定运行,防止因异常电压或电流对电路和芯片造成损害。外设电源根据系统需求,可能需要为其他外设提供电源,如传感器、电机驱动器等[5]。需要根据外设的供电需求,设计相应的电源电路。本次设计的电源电路如图4所示。
2.3 电机调速电路
2.3.1 脉宽调制原理
PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调速、温度控制、压力控制等。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”,如图5所示。
设电机始终接通电源时,电机转速最大为[Vmax],设占空比为[D=t1/T],则电机的平均速度为[Va = Vmax × D],其中Va指的是电机的平均速度;[Vmax]是指电机在全通电时的最大速度;[D=t1/T]是指占空比。
由上面的公式可见,当改变占空比[D=t1/T]时,就可以得到不同的电机平均速度[Vd],从而达到调速的目的。严格来说,平均速度[Vd]与占空比[D]并非严格的线性关系,但是在一般的应用中,可以将其近似地看成是线性关系[6]。
2.3.2 电机调速电路设计
L293D为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片(Dual Full-Bridge Driver) ,内部包含4信道逻辑驱动电路,它是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号,但在本驱动电路中用L293D来提供时序信号,节省了单片机IO 端口的使用。L293D内部的原理图如图6所示,Pin1 Pin15 与电流侦测用电阻连接来控制负载的电路;OUTl、OUT2和OUT3、OUT4之间分别接2个步进电机;input1~input4 输入控制电位来控制电机的正反转;Enable则控制电机停转。
OUT1与OUT2与小车的一个电机的正负极相连,OUT3与OUT4与小车的另一个电机的正负极相连,单片机通过控制IN1与IN2,IN3与IN4分别控制电机的正反转。ENA与ENB分别控制两个电机的使能。L293D控制表如表1所示。
2.3.3 L293DN驱动电路设计
2.4 复位电路
STM32F103C8T6最小系统无论在刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。然而,关于电容大小对复位时间的影响,这取决于具体的应用环境和电路设计。复位电路的电容大小主要决定了复位所需的电压阈值以及复位的时间。通常情况下,较大的电容可以提供更长的复位时间。
2.5 循迹传感器模块
TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和,此时模块的输出端为低电平,指示二极管被点亮。
2.6 红外避障传感器模块
该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接 收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围 2~30cm,工作电压为3.3V~5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合[7]。
2.7 电磁铁控制模块
电磁铁控制模块可以通过STM32的GPIO口进行控制,电磁铁控制模块需要一个GPIO口来控制继电器通断,从而实现电磁铁的通断。另外,也可以使用PWM(脉冲宽度调制)控制电磁铁的通电时间,以控制电磁鐵吸附物体的时间。
具体来说,如果电磁铁需要通电10秒,然后断电5秒,可以通过STM32的定时器进行PWM输出。定时器每计时10秒输出一个高电平信号,然后通过GPIO口控制继电器通电,从而实现电磁铁通电吸附物体。5秒后,定时器再次计时10秒输出一个高电平信号,然后通过GPIO口控制继电器断电,从而实现电磁铁断电释放物体。
另外,如果需要实现电磁铁的通断频率可调,可以使用STM32的PWM通道进行PWM输出。通过调整定时器的计时周期和占空比,可以实现电磁铁通断频率的调整。
需要注意的是,电磁铁控制模块需要考虑到电磁铁的吸力大小和通电时间,以确保电磁铁可以正确地吸附和释放物体。同时,也需要考虑到电磁铁的发热问题,如果连续通电时间过长,可能会造成电磁铁过热而损坏。因此,需要进行合理的控制和保护。
2.8 按键模块
按键电路采用独立按键通过程序进行控制,通过按键进行电路的控制检测是自动控制还是手动控制,然后另有两个按键是控制检测的开或是关。当用户按下按键后会输出低电平给STM32最小系统,松开后输出高电平这样就知道按键是否被按下,通过程序写入按键扫描函数就执行所需要实现的功能。
3 系统软件设计
3.1 发射系统程序流程图
发射系统部主要完成键盘扫描发送。用户需要选择机器人把自己的物品搬到相应的位置,并且发送指令给机器人。发射系统流程图如图8所示。
3.2 接收系统程序流程图
接收系统部主要完成扫描按键接收与转换,控制电机驱动芯片驱动机器人到需要去的地方。接收系统流程图如图9所示。
4 系统调试
4.1 硬件调试
在充分了解电路功能的基础上做好检验文件,如原理图、PCB图、功能图等,测试的参数及位置,需要达到的技术要求,了解电路的基本工作原理、主要技术性能指标、各参数的调试方法和步骤等。
仪器的使用:本次使用的仪器包括数字电源、万用表、示波器等检测仪器,首先检查仪器是否能正常工作,并将仪器设置到所需要的范围内。
调试前检查:调试前要检查被调试电路是否按电路设计要求正确安装连接,有无虚焊、脱焊、漏焊等现象,检查元器件的好坏及其性能指标,检查被调试设备的功能选择开关、量程挡位和其他面板元器件是否安装在正确的位置。经检查无误后方可按调试操作程序进行通电调试[8]。
对被调试电路的准备具体分为以下几点:
1) 连线是否正确
检查电路连线是否正确,包括错线、少线和多线。按照电路图检查安装的线路这种方法的特点是,根据电路图连线,按一定顺序逐一检查安装好的线路。由此,可比较容易查出错线和少线。
2) 元、器件安装情况
由于元器件比较多,使用万用表检查二极管元、器件引脚之间是否有短路,连接处有无接触不良,二极管、三极管、集成电路和电解电容极性等具有极性的是否连接有误。
3) 电源供电、信号源连线是否正确,否则一旦上电电位是反的就很容易使芯片烧坏,检查直流极性是否正确,信号线是否连接正确。在通电前,使用万用表检查电源端对地(⊥) 是否存在短路,可以断开一根电源线。直流稳压电源通电正常,且其他方面也都没有问题的话,就可转入调试。
4.2 软件调试
软件调试是通过 keil、连接以及执行用户程序来找寻程序中存在的语法错误和逻辑错误 ,然后加以排除纠正的一个过程。程序运行后,编辑查看程序是否存在逻辑错误。本系统的软件程序完全用C语言编写。调试过程中采用的是自上至下的调试方法 分别调试好每一个模块,最后再连接成一个完整的系统调试。
具体的调试过程为:先由单片机最小系统向外搭建外围电路组成的模型电路,将编写好的程序燒写进STM32最小系统运行,通过观察外围电路和使用万用表检测相对应的参数对程序和模型电路进行检测,对软件和硬件正确性和实用性进行验证。智能载重机器人实物如图10所示。
5 结束语
本设计完成了基于STM32最小系统的智能载重机器人小车的设计,此课设的过程主要包括了硬件电路设计和软件程序的编写两个部分。从确定此次的设计,到查阅资料确定总体方案设计,总体方案论证,硬件电路的设计、硬件电路的优化、软件的设计、软件的优化、焊制硬件电路板、检验硬件电路、调试软件程序到最后的软硬件联调,其中的每一个过程都是精心设计、仔细完成的。通过本课题的研究,让智能载重机器人小车的功能与技术得到了验证。
在设计基于STM32的智能载重机器人小车的过程中,不仅实现了小车的自动控制和路径规划,还通过集成多种传感器和执行器,实现了小车的智能感知和交互。通过这一设计过程,不仅提高了自身的技术水平,也深刻理解了智能载重机器人小车在现代工业自动化和物流运输领域的重要作用。
总之,基于STM32的智能载重机器人小车的设计过程是一次富有挑战和创新的实践。通过这一过程,不仅提高了自身的技术水平,也深刻认识到了智能机器人技术在现代工业自动化和物流运输领域的重要作用。在未来,我们将继续努力,不断提高自身的技术能力和创新能力,为智能机器人技术的发展和应用做出更大的贡献。
参考文献:
[1] 黄文智,李玲.基于STM32单片机的自动绕障行走小车设计[J].通信与信息技术,2023(5):29-32.
[2] 田杰,胡秋霞,杨毕康.基于STM32的物流搬运小车控制系统设计[J].现代电子技术,2023,46(18):172-176.
[3] 姚庆,穆怀辉,王瑞红.智能避障小车的设计与开发[J].南方农机,2023,54(18):161-164.
[4] 付裕.基于单片机STM32的搬运机器人控制系统设计与实现[J].无线互联科技,2023,20(5):39-42.
[5] 刘昌林.基于STM32单片机的智能避障小车设计[J].科技风,2022(23):1-3.
[6] 周健,徐志国.基于STM32的智能循迹机器人的设计[J].集成电路应用,2020,37(2):45-47.
[7] 陈桐焕,赖忠喜,金炜翔.基于STM32的运输机器人小车设计[J].电子技术与软件工程,2022(17):124-127.
[8] 王辉,沈淑涛,鞠昊翀.基于STM32单片机的智能搬运机器人的设计[J].计算机产品与流通,2020(2):90-91.
【通联编辑:朱宝贵】