基于STM32的可遥控自动跟随小车设计与实现_第1页
基于STM32的可遥控自动跟随小车设计与实现_第2页
基于STM32的可遥控自动跟随小车设计与实现_第3页
基于STM32的可遥控自动跟随小车设计与实现_第4页
基于STM32的可遥控自动跟随小车设计与实现_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于STM32的可遥控自动跟随小车设计摘要随着智能技术在各行业得到了广泛的应用和研究,各种功能的智能小车系统在针对不同领域不同需求的功能划分也越来越明确。在小区快递站环境中往往存在无配送人员配送上门,老人等弱势人群无能力取件的情况。传统物流人员运力不足,针对这种应用场景下的智能小车系统,本课题设计了一种基于STM32的可遥控自动跟随小车主要完成了硬件平台搭建和软件层面设计两个方面的工作。论文工作的硬件平台采用STM32F103RCT6开发板,在遥控模式下,选择了HX1838通过红外遥控器实现对小车移动控制,在跟随模式下,使用HX711检测物品重量,HC-SR04获取数据。电源方面选择了便宜耐用的18650电池盒,该电池轻盈,便捷,易更换。在软件设计方面在Keil5的基础上完成了各个模块的驱动开发。通过显示模块观察数据,红外遥控实现对小车的控制,超声波检测跟随目标物体。关键词STM32F103RCT6;红外遥控;超声波检测;压力传感器检测;Designofaremote-controlledautomaticfollowingcarbasedonSTM32AbstractWiththewidespreadapplicationandresearchofintelligenttechnologyinvariousindustries,intelligentcartsystemswithvariousfunctionsareincreasinglyclearlydividedintofunctionswithdifferentneedsindifferentfields.Intheenvironmentofregionalexpressdeliverystations,thereareusuallysituationswheretherearenodeliverypersonneldeliveringgoodstothedoorstep,andelderlyandothervulnerablegroupsareunabletopickupthegoods.Thetraditionallogisticspersonnelhaveinsufficientcapabilities.Inordertocopewiththeapplicationscenarioofthisintelligentcarsystem,thistopicdesignsaremote-controlautomatictrackingcarbasedonSTM32,mainlycompletingthehardwareplatformconstructionandsoftwareleveldesignintwoaspectsofwork.ThehardwareplatformforthepaperworkusestheSTM32F103RCT6developmentboard.Inremotecontrolmode,HX1838isselectedtoachievebracketmotioncontrolthroughinfraredremotecontrol.Intrackingmode,HX711andHC-SR04areusedtodetecttheweightofitemstoobtaindata.Intermsofpowersupply,choosethe18650-batterypackthatischeap,durable,lightweight,practical,andeasytoreplace.Intermsofsoftwaredesign,thedevelopmentofdifferentmodulesisbasedonKeil5.Byobservingthedatathroughthedisplaymodule,theinfraredremotecontrolallowsforcontrollingthecarandtrackingthetargetobjectthroughultrasonicdetection.KeywordsSTM32F103RCT6,infraredremotecontrol,ultrasonicdetection,pressuresensordetection目录摘要 [23]。如图4-11所示:在HX711未进入采集周期时,DOUT保持高电平,此时MCU控制的PD_SCK应保持低电平,当DOUT的状态变为低电平时,HX711进入采集周期,保持低电平时间T1>1us。然后MCU开始控制PD_SCK输出25~27个时钟周期,其不同的周期数代表不同的增益和通道。图4-11HX711时序图对此模块进行程序设计,首先需要进行物理连接,根据STM32F103RCT6使用手册,对该模块进行IO口配置,HX711IO口配置状态如图4-12所示:图4-12HX711IO口配置图其次需要读取HX711芯片数据,根据PD_SCK的输入时钟脉冲数不应少于25或多27,否则会造成串口通讯错误,选择了25脉冲数,以及增益128,具体的程序图如图4-13所示:图4-13HX711数据获取程序图由上述内容可知,要对该模块进行程序设计需要先进行物理连接配置IO口,其次需要采集模块中的数据,最终需处理数据等到所测量的重量。模块流程图如图4-14所示:图4-14压力传感器程序流程图超声波模块程序设计超声波模块测距依据超声波从模块中发射碰到物体反弹回模块。记录来回的时间,在根据声波的速度就可以粗略估算出距离。将其计算出的数据传递到STM32核心,进行下一步处理。为了实现精确的计时和控制,STM32F103RCT6微控制器使用定时器和中断模式。本设计选用PB6作为触发信号的输出。定时器是一个硬件模块,它生成精确的时间间隔。通过设置定时器的重装载值和预分频系数,可以控制定时器的计时周期和频率。在超声波测距系统中,系统周期由定时器的设置和预分频系数决定。超声波测距的时序图中,可以看到触发信号持续10us的高电平,这个信号通过IO口的TRIG引脚发送给超声波传感器。传感器接收到触发信号后开始发送40KHz方波信号,然后等待信号返回。超声波时序图如图4-15所示:当传感器接收到信号的返回时,通过IO口的ECHO引脚将信号返回给微控制器。微控制器通过中断程序来处理返回信号,并根据计时器的值计算出距离。整个过程由定时器和中断模式实现精确的计时和控制。图4-15超声波时序图本设计所需两个超声波模块,需要占用4个IO口,本设计选用RCT6定时4的4个通道,PB6-PB9。PB6,PB8为Trig口需要设置为输出模式,PB7,PB9IO口需要设定为浮空输入模式,程序如图4-16所示:图4-16超声波模块IO口配置图其次需要配置超声波测距函数,声明数据量,为了数据准确进行5次数据测量。计算超声波响应时间,通过采集到的响应时间去计算距离,并且取5次的平均值返回结果。具体程序如图4-17所示:图4-17超声波测距函数程序图超声波模块测距依据超声波从模块中发射碰到物体反弹回模块。记录来回的时间,在根据声波的速度就可以粗略估算出距离。将其计算出的数据传递到STM32核心,进行下一步处理。具体的模块流程图如图4-18所示:图4-18超声波模块流程图显示模块程序设计首先,在程序开始时引入所需的库文件,这些库文件提供了简化操作0.96英寸显示屏的函数和方法。然后,进行显示屏的初始化设置,包括初始化通信接口(如SPI、I2C等),配置显示屏的参数(如分辨率、亮度等),以及设置显示模式等。接下来,使用库文件提供的函数或方法,将需要显示的内容(如文本、图形等)写入显示缓存区。可以通过指定坐标位置、选择字体大小和颜色等来进行灵活的显示设计。最后,将写入显示缓存区的内容实时更新到显示屏,以确保内容能够在屏幕上正常显示。通过这些步骤,可以实现对0.96英寸显示屏的控制和显示内容的更新。在开发过程中,可以通过调试工具和输出信息来调试和优化程序,以提高显示效果和性能。图4-19WireSPI时序图WireSPI时序图如图4-19所示:根据SSD1306的4-WireSPI的时序图,可以得知在写入一字节数据时,需要按照数据的高位先行的顺序进行发送操作。具体操作如下:首先,使用CS#(片选)信号选通SSD1306器件。然后,通过4-WireSPI进行通讯。在通讯过程中,使用D/C#(数据/命令选择)信号来区分命令字节和数据字节。数据字节由8位的数据位组成,通过D0和D1线传输。数据的写入操作在上升沿时进行,每次写入一个字节的数据。可以通过连续发送多个字节来传输更多的数据。最后,结束通讯。最终将OLED显示屏初始化后,调用显示函数即可在屏幕中显示数据,具体程序图如图4-20所示:图4-20OLED主程序图电机驱动模块程序设计编写L9110的程序设计可以按照以下步骤进行:首先,在程序开始时引入所需的库文件。这些库文件提供了简化操作L9110的函数和方法。然后,进行引脚的初始化设置,将L9110的控制引脚连接到适当的GPIO引脚上。电机IO配置图如图4-21所示:图4-21电机IO配置图接下来,通过调用相应的函数或方法来控制L9110的驱动功能。例如,通过设置GPIO引脚的高低电平来控制L9110的电机正转、反转、停止等操作。同时,可以根据需要调整电机的转速或转向。如图4-22所示:图4-22驱动函数程序图在程序的主循环中,可以根据具体的应用场景来控制L9110的运行逻辑。例如,通过按键、传感器等触发条件来控制电机的启停或转向等动作。在开发过程中,可以使用调试工具和输出信息来验证程序的运行情况,并根据需要进行调整和优化。通过这些步骤,可以实现对L9110的控制和驱动,使其能够根据程序逻辑实现相应的电机动作。如图4-23所示:图4-23电机驱动模块流程图本章小结本章节从主到次完成对小车系统的软件设计。首先介绍STM32单片机软件程序设计,介绍了STM32程序开发环境,完成STM32主程序流程设计和主要功能模块程序设计。其次讲述各个模块程序设计,超声波测距模块程序设计,分析了测距的原理,配置的IO口,和该模块程序流程;红外模块程序设计与实现,确定使用RCT6的定时器3进行配置,介绍了红外遥控器按键的处理;压力传感器检测程序设计,介绍了压力传感器模块的组成,以及连接的IO口;OLED显示,介绍了OLED屏幕的通讯形式和显示方式;电机驱动模块,介绍了电机驱动模块驱动电机的具体过程。可遥控自动跟随小车测试与调试调试方案在本章中,将介绍可遥控自动跟随小车的测试与调试过程。该小车具备远程遥控和自动跟随功能,能够在空旷环境下,实现一定功能的跟随。本章将详细说明如何正确设置和操作小车,以确保其功能正常运行。对本基于STM32可遥控自动跟随小车进行调试时。需要采取以下步骤进行:1.确定硬件连接:检查红外接收器,超声波模块,压力传感器模块,电机驱动器的连接。确保上述各个模块正确连接到主控制板,并且驱动器正确连接到电机。如图5-1所示:图5-1小车实物图2.确认电源供应:确保小车的电源供应正常工作,并且电池或电源适配器已正确连接。打开稳压电源模块的开关,确保稳压模块正常运行,最终打开18650电池盒开关,观察到全部模块指示灯正常亮起,表示各模块正常运行。如图5-2所示:图5-2检查电源连接图3.代码检查:检查KEIL代码,确保Main主函数正确使用了传感器库和相关函数。确保代码没有语法错误,没有错误报告,无冗余代码,传感器IO口合理配置完成并且正确地处理各个模块信号,部分核心代码配备注释。这些信息可以帮助你理解代码的执行流程,以及检查变量和状态的值。可以使用串口调试输出、LED指示灯或者其他适当的方式输出信息。如图5-3所示:图5-3中断函数程序图4.测试传感器:数据传输:例如使用红外遥控器发送信号,确保接收器能够正确接收信号。可以观察到当摁下红外遥控器按键时,接受模块LED指示灯亮起,也可以通过在主控制板上输出信号或打印接收到的信号来验证。该信号通过串口调试助手在PC端观察到红外遥控的键值,以及执行内容。如图5-4所示:该图表示摁下了键值为56的按键,执行小车停止前进的指令内容。图5-4串口数据图5.检查控制电机:本设计最终指令都需电机完成,确保电机正确物理连接,使用接收到的信号控制电机为本设计的重要一环。首先确保电机驱动器正确工作,与电机的物理连接是否断开,其次检查电机是否损坏,最终确保电机能够根据接收到的指令正确运行。如图5-5所示:图5-5电机连接图当上述准备工作完成后,需对本设计的功能进行调试,应对小车两种模式进行测试。首先,需要测试小车的跟随模式,在确认上述调试步骤全部完成后,开启电源,等待系统化初始后,蜂鸣器发出开机提醒后,摁下红外遥控按键,切换小车模式,此时显示屏显示MODE:1(跟随模式),小车需要跟随前方人体。由人体检测模块判断前方是否有人体,如有,小车里利用两侧超声波传感器使用三角算法,跟随人体,如判断没有,小车不断规避周围物体,直至接收到人体检测存在信号。小车跟随模式下状态如下图5-6所示:图5-6跟随状态图其次,测试小车的遥控模式,在确认上述调试步骤全部完成后,开启电源,等待系统初始化后,蜂鸣器发出开机提醒后,此时显示屏显示MODE:0(遥控模式),按压红外遥控器的按键,小车应做出前进、左转、右转、停止等行动指令。当按下红外遥控器前进键时,红色LED灯亮起,小车两侧电机开启正转。当按下红外遥控器停止键时,红色LED灯亮起,小车两侧电机停止转动。小车遥控模式下状态如图5-7所示图5-7遥控状态图各模块调试方案超声波模块调试方案将传感器模块引脚正常连接,电池盒电源开启,稳压电源模块开启,在小车前方放置物体,调整物体与传感器的距离,利用串口打印工具观察传感器上传的数据。首先,选取平面镜作为做测试物,如图5-8所示:通过PC端串口调试助手观察数据,数据显示此时物体与传感器大致相距4cm左右。可知小车前段两侧传感器全部探知前方近距离存在物体。图5-8两侧近距离检测图如图5-9所示:当物体远离传感器时,传感器所检测的数据也会改变。当将测试物品远离小车前方两侧超声波模块时,通过PC端串口调试助手观察数据,发现数据正在逐渐变大。数据显示此时物体与传感器大致相距12cm左右。由上述两次测试可知,小车前方两侧超声波模块可以同时进行测距。图5-9两侧远距离检测图如图5-10所示,此时物体距离小车前段右侧传感器较近时,通过PC端串口助手观察数据可知,左侧传感器并没有探测到前方近距离存在物体,右侧传感器数据显示前方近距离存在物体,通过两侧传感器的数据差异,可以粗略的估计小车前方物体在小车的右侧。但本设计在移动过程中,传感器数据有一定延迟,需要设置一个误差范围,当两侧传感器数据差超过误差范围时,小车向左或向右移动。图5-10右侧近距离检测图如图5-11所示,此时物体距离小车前段左侧传感器较近时,通过PC端串口助手观察数据可知,右侧传感器并没有探测到前方近距离存在物体,左侧传感器数据显示前方近距离存在物体,通过两侧传感器的数据差异,可以粗略的估计小车前方物体在小车的左侧。由两次调试结果,大致设计误差范围为5cm。图5-11左侧近距离检测图压力传感器模块调试方案在系统完成初始化后,将小车利用红外遥控,调节为称重模式,将物品放在传感器检测盘上,传感器将重量数据传递给STM32核心板,通过串口打印助手在PC端进行数据观察,首先,将一块镜子放入放置盘照片那个测试,如图5-12所示:图5-12放置物品1图其次,换用小车红外遥控器进行数据测试。如图5-13所示:当改变小车后方载物盘中所载物体时,传感器所传输的数据也有所改变。但在小车未打开电源时,就放置物品,数据获得一定量的初重,影响数据的准确性。图5-13放置物品2图红外遥控模块调试方案在系统完成初始化后,操纵红外遥控器按钮,传感器将数据传递给STM32核心板,Main函数通过键值判断执行命令,并且通过串口打印助手在PC端进行数据观察,改结果表示红外遥控器发射信号,STM32核心成功接受信号,如图5-11所示图5-14红外接受信号图红外遥控作为本设计的核心部件之一,小车绝大部分功能都需要以此实现,首先为小车的模式转换。按下星号键,小车为遥控模式,按压井号键,小车为跟随模式。如图5-15、5-16所示:当按下星号键时,OLED显示屏显示为MODE:0,该代码代表着小车的红外遥控模式。当按下星号键时,OLED显示屏显示为MODE:1,该代码代表着小车的跟随模式。图5-15遥控模式OLED显示图图5-16跟随模式OLED显示图本章小结本章节主要对本设计功能进行测试。分析了采用的测试方法以及测试达到的效果,实现了小车两种基本功能、超声波测距功能、红外遥控功能和重量检测功能。测试结果表明,基于STM32的可遥控自动跟随小车能够满足系统设计功能需求。结论本文通过查询国内外相关资料和文献,分析了国内外智能小车的发展情况。考虑到当前社会的发展趋势,普通家庭对物流服务的需求日益增长,同时也存在大量弱势群体难以自行取快递的问题。鉴于这一社会背景,本文设计一种基于STM32的可遥控自动跟随小车。主要研究内容如下:1.本设计使用超声波传感器HC-SR04进行距离探测,使用0.96寸OLED显示屏显示距离数据。当两侧传感器数据有一侧小于设定值,小车进行倒退,完成避障功能。2.本设计通过压力传感器模块采集物品重量情况,配合蜂鸣器和OLED显示屏,重量数据显示在OLED屏幕。当数据高于设定值时,小车发出超重警报,完成超重报警功能。3.本设计通过红外遥控模块来控制小车的模式切换,配合蜂鸣器提醒和OLED显示屏显示小车模式(默认为遥控模式),摁下红外按键改变MODE值(切换模式),在遥控模式下,能够控制小车移动,实现了红外遥控功能。4.本设计通过电机驱动模块来控制直流电机工作,STM32核心发送电平信号,配置控制行动函数PWM占空比,调节电机正转反转。完成小车基本移动功能。5.本设计通过人体检测模块检测前方是否存在人体,OLED显示屏显示数据,配合超声波模块判断前方物体位置。如前方存在人体,则小车进行跟随,否则进行避开,一定程度实现了人体跟随功能。本文的不足如下:1.两侧电机存在转速差。在小车移动过程中,观察到其中一侧电机转速较高,而另一侧电机转速较低。这导致了小车的移动轨迹不稳定,并且影响了功能的准确性。对此情形,通过更改两侧电机PWM占空比,使得小车能够正常行驶。2.传感器数据不稳定,本设计使用的多为价格低廉的模块。在小车移动过程中,观察到传感器模块的输出数据存在波动和不一致性,对小车的运行带来很大挑战。3.红外遥控距离有限。在小车运行中,观察到使用的红外遥控模块的信号传输距离较短,限制了用户对小车的遥控能力。这种红外遥控距离有限的问题可能涉及到使用的红外遥控模块的性能和设计限制发射器和接收器的功率限制,导致信号无法有效传播并达到较远的距离。参考文献王河涛.城市社区物流共同配送模式研究[D].吉林大学,2016(10).贺冰倩.仓库智能AGV路径设计及调度研究[D].华中科技大学,2019(03).李金鑫,陈娜.电商快递最后一公里配送问题分析及对策研究[J].中国物流与采购,2023,No.662(01):55-56.马建,刘晓东,陈轶嵩等.中国新能源汽车产业与技术发展现状及对策[J].中国公路学报,2018,31(08):1-19.唐修俊,蔡世忠.智能车路径跟踪控制[J].计算技术与自动化,1989,(02):19-23.周龙旗,刘建平.智能车视觉导航系统[J].机器人,1991,(02):33-38.徐友春,王荣本,李兵,纪寿文.一种机器视觉导航的智能车辆转向控制模型设计[J].中国公路学报,2001,(03).胡海峰,史忠科,徐德文.智能汽车发展研究[J].计算机应用研究,2004,(06):20-23.金辉,牛若飞.基于A*算法的智能车多红绿灯信号交叉口通行的经济车速规划研究[J].北京理工大学学报.冯三槐,陶文华,张华峰,王佳明.树莓派自动避障小车的消防应用[J].物联网技术,2023,13(04):144-146+149.FioriniP,ShillerZ.Motionplanningindynamicenvironmentsusingvelocityobstacles[J].Theinternationaljournalofroboticsresearch,1998,17(7):760-772.GrossHM,MuellerS,SchroeterC,etal.Robotcompanionfordomestichealthassistance:Implementation,testandcasestudyundereverydayconditionsinprivateapartments[C]//2015IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems(IROS).IEEE,2015:5992-5999.ShashankMS,SaikrishnaP,AcharyaGP,etal.DesignandDevelopmentofHumanFollowingAutonomousAirportBaggageTransportationSystem[C]//2022InternationalCo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论