两轮自平衡电芯搬运机器人控制系统的设计_第1页
两轮自平衡电芯搬运机器人控制系统的设计_第2页
两轮自平衡电芯搬运机器人控制系统的设计_第3页
两轮自平衡电芯搬运机器人控制系统的设计_第4页
两轮自平衡电芯搬运机器人控制系统的设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

两轮自平衡电芯搬运机器人控制系统的设计摘要随着新能源汽车产业的爆发式增长,动力电池电芯生产环节的物料流转需求持续提升,传统人工搬运与固定轨道AGV难以适配车间狭窄通道、高洁净度的作业场景。本文设计了一套基于STM32F103微控制器的两轮自平衡电芯搬运机器人控制系统,实现了机器人的稳定直立控制、精准运动操控、负载搬运与远程无线交互。系统通过MPU6050六轴传感器采集车身姿态数据,搭配编码器获取电机实时转速,完成串级闭环控制,同时集成了OLED状态显示、按键参数调整、蜂鸣器安全报警与ESP8266无线通信功能。实际测试表明,系统空载静态直立倾角波动控制在±1°以内,满载5kg状态下可稳定行进与转向,无线遥控距离可达50米,连续8小时运行无故障。研究成果为新能源车间窄通道场景的物料搬运提供了可行的技术方案,对工业场景下两轮自平衡机器人的应用落地具有参考价值。关键词两轮自平衡机器人;电芯搬运;STM32F103;姿态解算;运动控制AbstractWiththeexplosivegrowthofthenewenergyvehicleindustry,thedemandformaterialcirculationintheproductionlinkofpowerbatterycellscontinuestoincrease.Traditionalmanualhandlingandfixed-trackAGVsaredifficulttoadapttothenarrowpassageandhighcleanlinessoperationscenariosintheworkshop.Thispaperdesignsatwo-wheeledself-balancingcellhandlingrobotcontrolsystembasedonSTM32F103microcontroller,whichrealizesstableuprightcontrol,precisemotioncontrol,loadhandlingandremotewirelessinteractionoftherobot.ThesystemcollectsthebodyattitudedatathroughtheMPU6050six-axissensor,obtainsthereal-timespeedofthemotorwiththeencoder,completesthecascadeclosed-loopcontrol,andintegratestheOLEDstatusdisplay,keyparameteradjustment,buzzersafetyalarmandESP8266wirelesscommunicationfunction.Actualtestsshowthattheno-loadstaticuprightinclinationfluctuationofthesystemiscontrolledwithin±1°,itcantravelandturnstablyunderthefullloadof5kg,thewirelessremotecontroldistancecanreach50meters,anditrunscontinuouslyfor8hourswithoutfailure.Theresearchresultsprovideafeasibletechnicalschemeformaterialhandlinginnarrowchannelscenesofnewenergyworkshops,andhavereferencevaluefortheapplicationandlandingoftwo-wheeledself-balancingrobotsinindustrialscenes.Keywords:Two-wheeledself-balancingrobot;Cellhandling;STM32F103;Attitudecalculation;Motioncontrol目录3906摘要 I4158Abstract II127031绪论 5218051.1研究背景 5136661.2国内外研究现状 5200501.3论文组织结构 6185041.4本章小结 6306562功能与设计方案 736412.1系统功能要求 795642.2系统设计方案 7134972.3器件选型对比分析 869162.3.1主控芯片的选择 8130402.3.2电机驱动芯片的选择 9130472.3.3姿态传感芯片的选择 989432.4本章小结 9277873系统的硬件设计 10179493.1STC12C5A60S2单片机 10198183.2电源稳压与供电电路 1156063.3MPU6050姿态传感电路 1145983.4TB6612FNG电机驱动电路 1228623.5无线通信接口电路 13198373.6OLED显示电路 14230633.7按键输入电路 14249363.8蜂鸣器报警电路 1533393.10本章小结 16108924系统的软件设计 173184.1软件介绍 17323154.2软件程序的设计 1761354.2.1主程序流程图 1773854.2.2按键函数子流程图 18192964.2.3显示函数子程序流程图 19117624.3本章小结 2027435系统的测试 21148865.1硬件调试 2184615.2软件调试 21310875.2实物展示 22171435.3.1温度检测功能测试 22165165.3.1静态直立稳定性测试 227395.3.2动态行进控制测试 22282635.3.3转向控制精度测试 23104735.3本章小结 23870结论 244691参考文献 255394谢辞 277727附录A 2812025附录B 291绪论1.1研究背景全球新能源汽车产业的快速扩张,带动动力电池产能持续攀升,电芯生产全流程的物料流转效率成为制约产能提升的关键环节。在电芯涂布、辊压、分切到模组堆叠的全工序中,车间内物料转运频次极高,且作业环境存在通道狭窄、洁净度要求严苛、物料价值高等特点。传统人工叉车搬运易引入粉尘与静电,存在电芯跌落损坏的风险,工人长期重复操作也面临较高的劳动强度;固定磁导航AGV转弯半径大,无法适配宽度不足1米的狭窄通道,且产线调整时需要重新铺设轨道,柔性化程度不足。两轮自平衡机器人基于倒立摆控制原理,具备零半径原地转向、结构紧凑、占地面积小的天然优势,能够在狭窄空间内灵活通行,同时全封闭的电控结构不会对洁净车间造成污染,完美适配电芯生产车间的物料搬运需求。基于此,本研究设计一套适配工业场景的两轮自平衡电芯搬运机器人控制系统,解决新能源车间窄通道场景下的精细化物料转运难题。1.2国内外研究现状国外两轮自平衡技术的研究起步较早,技术成熟度较高。美国Segway公司率先将两轮自平衡技术商业化,推出的代步与巡检产品已广泛应用于工业园区与安防场景;波士顿动力研发的Handle轮腿式平衡机器人,将平衡控制与机械臂结合,实现了重载物料的灵活搬运,展现了自平衡技术在工业物流领域的巨大潜力。德国、日本的工业企业也将自平衡技术与AGV结合,推出了适配窄通道场景的柔性搬运设备,在汽车零部件生产车间实现了规模化应用。国内自平衡技术的研究与应用发展迅猛,高校与科研机构在控制算法、多传感器融合等领域取得了丰富成果,针对自平衡机器人的直立稳定性、抗干扰能力、路径规划等方向开展了大量研究。工业应用层面,新松、京东等企业推出了多款适配工业场景的自平衡搬运设备,在仓储、产线转运等场景实现了落地应用。但整体来看,国内针对高洁净度、窄通道的电芯生产场景的专用自平衡搬运设备研究较少,现有产品在负载适应性、工业级稳定性等方面仍有提升空间,难以完全适配电芯生产的特殊作业需求。1.3论文组织结构本论文共分为五个核心章节,第一章绪论阐述研究背景、国内外现状与核心研究内容;第二章明确系统功能需求,完成总体方案设计与核心器件选型对比;第三章详细介绍系统各部分硬件电路的设计原理与连接方式;第四章讲解系统软件的整体架构与核心子程序的设计逻辑;第五章完成系统的分级测试,验证各项功能与性能指标;最后通过结论总结研究成果,对后续优化方向进行展望。1.4本章小结本章围绕新能源电芯生产的物料转运痛点,明确了两轮自平衡搬运机器人的研究背景与应用价值,梳理了自平衡技术的国内外研究现状与发展趋势,确定了本次研究的核心内容与设计目标,同时明确了论文的整体组织结构,为后续各章节的展开奠定了基础。2功能与设计方案2.1系统功能要求结合电芯搬运的工业场景需求,系统需要实现以下核心功能:空载与满载状态下,均可在水平地面保持稳定直立,倾角波动控制在合理范围内,受到轻微外力扰动后可快速恢复平衡,无倾倒风险。可通过无线遥控实现前进、后退、原地转向、行进中转向等操作,速度与转向角度可灵活调整,运动过程中保持车身稳定。可承载最大5kg的模拟电芯负载,满载状态下仍能保持直立与运动稳定性,满足电芯托盘的转运需求。通过OLED显示屏实时显示电池电压、车身倾角、运行状态、电机转速等信息,通过按键完成启停控制、参数调整、界面切换等操作。实时监测电池电压,电压过低时触发声光报警,严重欠压时强制停机;车身倾角超出安全范围时,立即关闭电机输出,避免倾倒损坏;具备过流、短路保护机制,保障硬件安全。可通过无线模块与手机APP或上位机通信,实现远程遥控与运行状态上传,遥控距离满足车间作业需求。2.2系统设计方案系统以STM32F103C8T6微控制器为核心,围绕自平衡控制与搬运需求,搭建完整的硬件与软件体系。硬件层面,通过MPU6050六轴传感器实时采集车身的加速度与角速度数据,解算出车身俯仰角与角速度,作为直立控制的核心依据;通过电机内置的霍尔编码器采集两路电机的实时转速与转向,作为速度控制的反馈依据;主控芯片根据采集到的姿态与速度数据,经过控制逻辑运算后,输出PWM信号与方向控制信号到电机驱动电路,控制两路直流减速电机的转速与转向,实现车身的直立平衡与运动控制。同时,系统配套设计了电源稳压电路,为不同器件提供稳定供电;设计了OLED显示电路与按键输入电路,实现人机交互;设计了蜂鸣器报警电路,实现异常状态提醒;设计了无线通信接口电路,实现远程遥控与数据交互。软件层面,采用前后台架构,主循环处理按键扫描、显示刷新、数据解析、状态监测等非实时任务,定时器中断处理高频姿态采集与运动控制运算,保障控制的实时性与稳定性,最终实现所有设计功能。图2.1系统中各个组件的功能示意图2.3器件选型对比分析2.3.1主控芯片的选择方案一:STC89C52芯片。该芯片基于8051内核,开发门槛低,相关学习资料丰富,采购成本低廉,IO口操作逻辑简单,非常适合基础控制场景的应用。芯片内置8KBFlash程序存储空间,512BRAM,最高工作频率可达40MHz,集成多路ADC采集通道,可满足简单的信号采集与控制需求,在小型控制项目中应用广泛。方案二:STM32F103C8T6芯片。该芯片基于ARMCortex-M3内核,主频可达72MHz,内置64KBFlash与20KBRAM,运算能力远超8位单片机,可满足高频姿态解算与实时控制的算力需求。芯片内置多路高级定时器与通用定时器,可直接输出多路PWM信号与采集编码器脉冲,同时集成丰富的USART、I2C、SPI通信接口,可便捷连接各类外设,适配机器人多器件协同的控制需求,开发生态完善,函数库资源丰富,可大幅缩短开发周期。综合算力需求、外设接口与开发便捷性,本次设计选用STM32F103C8T6作为主控芯片。2.3.2电机驱动芯片的选择方案一:L298N驱动芯片。该芯片为经典的双H桥直流电机驱动芯片,最高支持46V工作电压,单通道最大持续输出电流2A,峰值电流可达3A,可同时驱动两路直流电机,支持正反转与PWM调速控制。芯片外围电路设计简单,相关应用资料丰富,上手难度低,在直流电机驱动场景中应用广泛,可满足基础的电机驱动需求。方案二:TB6612FNG驱动芯片。该芯片内置双路H桥驱动电路,单通道持续输出电流1.2A,峰值电流可达3.2A,内置过流、过热与短路保护功能,适配工业场景的安全需求。相比L298N,该芯片导通内阻更小,工作过程中发热量更低,能量转换效率更高,芯片体积更为小巧,适配机器人紧凑的底盘布局,同时支持更高频率的PWM信号输入,可实现电机的平稳调速,减少低速运行时的抖动现象。综合驱动效率、体积与发热控制,本次设计选用TB6612FNG作为电机驱动芯片。2.3.3姿态传感芯片的选择方案一:ADXL345三轴加速度计搭配ENC03单轴陀螺仪。该方案可分开采集加速度与角速度数据,调试过程灵活度高,单芯片功能单一,出现故障时排查难度低,可满足基础的姿态检测需求。两款芯片均为成熟的工业级器件,采购渠道稳定,相关应用资料丰富,在简单的姿态检测场景中应用广泛。方案二:MPU6050六轴运动处理芯片。该芯片内置三轴加速度计与三轴陀螺仪,单芯片即可完成加速度与角速度数据的采集,集成度高,占用主控IO口数量少,大幅简化电路设计。芯片内置DMP运动处理引擎,可直接输出解算后的姿态数据,有效降低主控芯片的运算压力,同时芯片测量精度高,内置16位ADC转换器,可实现高精度的模数转换,输出数据噪声低,适配机器人高频姿态检测的需求。综合集成度、运算压力与测量精度,本次设计选用MPU6050作为姿态传感芯片。2.4本章小结本章明确了电芯搬运场景下机器人控制系统的功能需求,完成了系统总体方案的设计,同时针对主控芯片、电机驱动芯片、姿态传感芯片三类核心器件,完成了多方案的对比论证,确定了最终的器件选型方案,为后续硬件电路的设计与软件程序的编写奠定了基础。3系统的硬件设计3.1STC12C5A60S2单片机整个系统的信号采集、逻辑运算、指令输出都围绕STM32F103C8T6芯片展开,所有外设的运行都需要这颗芯片的协调与控制。电路设计分为最小系统与外设引脚分配两部分,最小系统是芯片正常运行的基础,包含电源、时钟、复位与启动配置电路。电源输入采用3.3V稳压供电,芯片每个电源引脚旁都并联0.1μF去耦电容,紧邻引脚放置,有效降低电源噪声对芯片运行的干扰,保障高频运算时的稳定性。时钟电路由8MHz高速晶振与32.768kHz低速晶振组成,晶振两端均并联30pF负载电容,保证时钟信号的稳定输出,与代码中系统时钟配置为72MHz的主频完全匹配。复位电路采用10K上拉电阻搭配手动复位按键,实现上电自动复位与手动复位双重功能,保障芯片出现运行异常时可快速复位重启。BOOT启动选择电路通过跳线帽设置BOOT0与BOOT1引脚的电平,可灵活切换程序下载与正常运行两种模式,适配开发与实际使用两种场景。外设引脚分配上,PA9与PA10配置为USART1的收发引脚,用于串口调试与数据交互;PB8与PB9配置为定时器PWM输出引脚,连接电机驱动电路;PA0、PA1、PA6、PA7配置为编码器输入引脚,采集电机转速信号;PB10与PB11配置为I2C通信引脚,连接姿态传感电路,所有引脚配置均与代码中的初始化函数一一对应,保障硬件连接与软件驱动的匹配。图3.1STC12C5A60S2单片机接线情况3.2电源稳压与供电电路电芯搬运场景要求机器人脱离市电独立运行,而系统内不同器件的供电电压、电流需求差异极大,必须设计稳定的多级供电电路,同时兼顾电池续航与器件安全。系统总电源采用12V锂电池组供电,直接满足电机驱动的大电流需求,在此基础上设计两级稳压电路,为不同器件提供匹配的供电。第一级稳压采用MP1584电源芯片,将12V输入电压稳压至5V,为电机驱动逻辑电路、显示电路、无线接口提供供电,芯片输入端并联220uF极性电容与0.1μF陶瓷电容,分别滤除电源输入的低频与高频噪声,输出端同样搭配滤波电容,将输出电压纹波控制在50mV以内,保障供电稳定。第二级稳压采用XC6206线性稳压芯片,将5V电压进一步稳压至3.3V,为主控芯片、姿态传感电路提供纯净的供电,电路中串联0Ω电阻做数字与模拟电路的隔离,避免两类电路之间的相互干扰,保障传感器采集精度。电源输入口并联防反接二极管,避免电源正负极接反损坏后级器件,同时串联自恢复保险丝,出现过流故障时可自动断开,故障消除后自动恢复,无需更换保险丝,适配工业场景的使用需求。代码中通过ADC1的通道4采集电池电压,对应电路中的电阻分压网络,将12V电池电压按比例缩小至3.3V以内,匹配ADC的输入量程,实现电池电量的实时监测。图3.2电源稳压与供电电路3.3MPU6050姿态传感电路两轮自平衡机器人的稳定运行,完全依赖车身倾角数据的实时、精准采集,姿态数据的刷新率与精度,直接决定了机器人直立控制的稳定性,这部分电路的设计核心是降低干扰,保障信号传输的稳定可靠。MPU6050芯片通过I2C总线与主控芯片通信,原理图中SCL时钟引脚连接到主控的PB4引脚,SDA数据引脚连接到PB3引脚,两个引脚都通过4.7K上拉电阻接到3.3V电源,保障I2C总线在空闲时处于稳定的高电平状态,避免总线出现误触发,保障通信的连续性。INT中断引脚连接到主控的PB5引脚,配置为下降沿触发的外部中断,与代码中的EXTIx_Init初始化函数对应,芯片每完成一次姿态数据采集,就会通过中断引脚发送信号,通知主控及时读取数据,保障数据采集的同步性,避免出现数据丢失或错位。芯片VCC引脚接入3.3V稳压电源,串联0Ω磁珠隔离数字与模拟电源,电源引脚旁并联0.1μF去耦电容,紧邻芯片引脚放置,最大程度降低电源噪声对传感器采集精度的影响。ADO引脚直接接地,将芯片的I2C地址设置为0x68,与代码中的器件地址定义完全一致,XDA与XCL引脚悬空,不外接额外的磁力计芯片,简化电路设计,降低故障概率。图3.3MPU6050姿态传感电路3.4TB6612FNG电机驱动电路电机是机器人实现运动的核心执行部件,驱动电路需要将主控输出的弱电流PWM信号,转换为可驱动电机运转的大电流信号,同时精准控制电机的正反转与转速,还要抑制电机启停时的反向电动势,避免损坏主控芯片。TB6612FNG芯片内置双路H桥驱动电路,可同时独立控制两路直流减速电机,原理图中PWMA与PWMB引脚分别连接到主控的PB8与PB9引脚,接收主控输出的PWM调速信号,与代码中定时器PWM初始化函数对应,配置PWM频率为10kHz,保障电机低速运行时的平稳性,减少抖动现象。AIN1、AIN2与BIN1、BIN2引脚分别连接到主控的PA0、PA1与PB6、PB7引脚,通过引脚电平的高低组合,控制电机的正转、反转与停机状态,逻辑简单清晰,调试便捷。STBY引脚直接连接到3.3V电源,保持芯片始终处于工作状态,避免误触发进入休眠模式,导致电机失控。VM引脚接入12V电池电源,为电机功率输出提供大电流供电,VCC引脚接入5V稳压电源,为芯片内部逻辑电路供电,两个电源引脚都并联大容量滤波电容,吸收电机启停时产生的尖峰电压,保障芯片运行稳定。芯片输出端分别连接左右两路电机,电路中并联续流二极管,抑制电机换向时产生的反向电动势,保护驱动芯片不被电压尖峰击穿。图3.4TB6612FNG电机驱动电路3.5无线通信接口电路电芯搬运的工业场景中,操作人员需要在安全距离外对机器人进行遥控操作,同时需要远程读取机器人的运行数据,无线通信电路实现了机器人与上位机、手机APP之间的数据交互,大幅提升了系统的操作灵活性与场景适配性。系统预留了ESP8266无线模块的标准接口,原理图中接口的TXD引脚连接到主控的TX1引脚,RXD引脚连接到RX1引脚,对应USART2的收发引脚,实现串口透传通信,代码中将USART2初始化为9600波特率,与无线模块的默认波特率完全匹配,保障通信的稳定性。接口的VCC引脚接入5V稳压电源,GND引脚直接接地,EN引脚通过10K电阻上拉到3.3V电源,保障模块上电后自动进入工作状态,无需额外的使能控制,简化了软件驱动逻辑。电路中在串口信号线中串联20Ω限流电阻,避免模块与主控之间的电平不匹配导致的器件损坏,同时在电源引脚并联100μF滤波电容,抑制模块无线发射时产生的电源噪声,避免对主控与传感器电路造成干扰,保障姿态采集的精度。代码中通过串口中断接收无线模块传输的遥控指令,解析出前进、后退、转向、启停等操作指令,传递给运动控制程序执行,同时定时将机器人的运行状态数据打包,通过串口发送到无线模块,上传到上位机或手机APP,实现远程状态监控。图3.5无线通信接口电路3.6OLED显示电路机器人运行过程中,需要将实时状态信息直观呈现给操作人员,显示电路是人机交互的核心组成部分,设计时兼顾了信息显示的清晰度、电路的简洁性,同时尽可能降低对主控IO口的占用。系统选用0.96英寸OLED显示屏,分辨率为128×64,采用I2C通信方式与主控芯片连接,原理图中SDA数据线连接到主控的PA15引脚,SCL时钟线连接到PA12引脚,仅用两根信号线就完成了所有显示数据的传输,相比并行接口,大幅减少了IO口的占用,简化了电路设计。显示屏的VCC引脚接入3.3V稳压电源,GND引脚直接接地,无额外的外围器件,电路结构非常简洁,可完美适配机器人紧凑的底盘布局。代码中通过模拟I2C时序实现显示屏的驱动控制,初始化函数完成屏幕清屏、显示模式设置与亮度调节,主循环中定时调用显示刷新函数,将电池电压、运行状态、车身倾角、电机转速等信息实时更新到屏幕上。屏幕设计了两个可切换的显示界面,通过按键切换,第一个界面聚焦运行状态显示,将电池电压、车身倾角等关键信息放在屏幕顶部,放大字号,保障操作人员在移动过程中也能清晰读取;第二个界面为参数设置界面,可查看与调整直立控制、速度控制的相关参数,适配不同负载下的调试需求。图3.6OLED显示电路3.7按键输入电路操作人员需要对机器人进行启停控制、参数调整、界面切换等操作,按键输入是最直接、最可靠的人机交互方式,电路设计的核心是保障按键触发的可靠性,同时通过软件逻辑消除机械抖动导致的误触发。系统设置了三个独立按键,分别对应功能切换、参数加、参数减的核心操作,原理图中三个按键的一端分别连接到主控的PC14、PB1、PC15引脚,另一端统一接地,每个引脚都通过10K上拉电阻接到3.3V电源,按键未按下时,引脚处于稳定的高电平状态,按键按下时,引脚被直接拉低到低电平,主控通过检测引脚电平的变化,即可判断按键的触发状态。代码中的按键扫描函数采用状态机设计,每隔10ms扫描一次引脚电平,连续两次检测到低电平,才判定为有效按键触发,有效消除了按键机械抖动带来的误操作,同时设置了长按触发功能,长按参数加减按键时,参数会连续变化,大幅提升参数调整的便捷性。三个按键的功能会根据当前的显示界面动态调整,在运行界面,按键1控制机器人的启停,按键2与按键3调整目标运动速度;在参数设置界面,按键1切换需要调整的参数项,按键2与按键3调整参数的数值,实现了单按键多用途的设计,减少了按键数量,简化了电路布局,同时保障了操作的全面性。图3.7按键输入电路3.8蜂鸣器报警电路机器人在工业场景运行过程中,会出现电池电压过低、车身倾角超出安全范围、硬件通信异常等情况,需要通过声光报警的方式,及时提醒操作人员处理异常,避免出现设备损坏或安全事故,蜂鸣器电路是系统安全保护机制的重要组成部分。系统选用有源蜂鸣器,只要接入额定电压就会发出固定频率的声响,无需额外的振荡电路,电路设计简洁,触发逻辑简单,可靠性高。原理图中蜂鸣器的正极通过1K限流电阻连接到5V电源,负极连接到S8050三极管的集电极,三极管的基极通过1K电阻连接到主控的PC13引脚,与代码中的BUZ_PIN宏定义对应,发射极直接接地。当主控引脚输出高电平时,三极管导通,蜂鸣器两端形成稳定的电压差,发出报警声响;当引脚输出低电平时,三极管截止,蜂鸣器停止发声。采用三极管驱动的方式,避免了主控IO口直接驱动蜂鸣器时,大电流烧毁IO口的风险,同时通过控制引脚输出高低电平的时间间隔,可实现不同节奏的报警声响,区分不同的异常类型。代码中的驱动函数可设置蜂鸣器的响铃次数、响铃时长与间隔时长,电池电压过低时,采用短间隔连续响铃的方式;倾角超限时,采用长间隔单次响铃的方式,让操作人员可通过报警节奏,快速判断故障类型。图3.1STC12C5A60S2单片机接线情况3.10本章小结本章详细阐述了两轮自平衡电芯搬运机器人控制系统的硬件电路设计,围绕主控、供电、姿态采集、电机驱动、编码器采集、人机交互、报警、无线通信等核心功能,完成了各部分电路的设计与连接,明确了各器件的引脚分配与电路设计逻辑,同时结合软件初始化函数,保障了硬件与软件的匹配性。所有电路设计均围绕电芯搬运的工业场景需求,兼顾了稳定性、可靠性与紧凑型,为后续软件程序的编写与整机功能实现,提供了完整的硬件支撑。4系统的软件设计4.1软件介绍系统软件基于KeilMDK5集成开发环境编写,采用标准C语言完成所有程序的开发,搭配STM32标准库完成底层硬件的驱动配置。KeilMDK5是专为ARMCortex-M系列内核定制的开发工具,集成了代码编辑、编译链接、下载调试等全流程功能,内置的ARMC/C++编译器可实现高效的代码优化,生成的可执行文件占用空间小,运行效率高,完全适配STM32芯片的开发需求。开发环境内置的代码编辑器支持语法高亮、自动补全与代码折叠功能,大幅提升代码编写效率;同时提供了丰富的调试功能,支持断点设置、单步执行、寄存器与变量实时查看,可快速定位程序运行中的问题,缩短调试周期。程序编写完成后,通过ST-Link仿真器,可直接将编译生成的hex文件下载到主控芯片中,同时支持在线仿真调试,实时查看程序的运行状态。本次开发中,通过STM32CubeMX完成芯片引脚与外设的基础配置,生成初始化代码后,导入KeilMDK5中进行功能程序的深度开发,大幅缩短了底层驱动的开发周期。4.2软件程序的设计4.2.1主程序流程图系统软件采用前后台架构设计,主循环作为后台,处理按键扫描、显示刷新、数据解析、状态监测等非实时性任务;定时器中断作为前台,处理高频姿态采集与运动控制运算,保障平衡控制的实时性,避免主循环任务占用过多资源,导致控制延迟。系统上电后,首先执行全流程的硬件初始化,包括系统时钟配置、GPIO口模式配置、定时器与PWM初始化、ADC采集配置、USART与I2C通信接口初始化,随后完成OLED显示屏、MPU6050姿态传感器、无线模块的初始化与自检,若自检过程中发现硬件异常,立即触发蜂鸣器报警,并在显示屏上显示故障信息。初始化完成后,读取Flash中保存的控制参数,恢复上一次断电前的设置,随后开启定时器中断,进入While(1)主循环。主循环中,依次执行按键扫描与处理函数、电池电压采集函数、显示界面刷新函数、无线串口数据解析函数、安全状态检测函数,同时通过标志位判断是否需要更新控制参数,若参数发生修改,触发Flash保存操作,将修改后的参数写入Flash,保障断电后参数不丢失。主循环的执行周期设置为10ms,既保障了非实时任务的响应速度,又不会占用过多的主控资源,保障中断内的控制算法稳定执行。定时器中断周期设置为5ms,每次中断触发后,依次执行姿态数据采集、滤波与倾角解算、编码器转速读取、控制逻辑运算、PWM输出限幅与赋值,完成一次完整的平衡控制周期,保障控制的实时性与稳定性。图4.2系统逻辑流程图4.2.2按键函数子流程图按键函数子流程图如图4.3所示,按键处理子程序的核心是实现可靠的按键触发识别,同时根据当前的显示界面,执行对应的功能操作。子程序通过按键扫描函数,每隔10ms读取一次按键引脚的电平状态,采用状态机的方式,区分按键的按下、长按、释放三个状态,有效消除了按键机械抖动带来的误触发,同时避免了单次按下触发多次操作的问题。子程序中为三个按键分别设置了对应的功能处理逻辑,在运行状态界面,按键1按下时,切换机器人的启停状态,同时更新显示屏上的运行状态显示;按键2与按键3按下时,分别增加与降低机器人的目标运动速度,调整范围为0-0.8m/s,调整步长为0.1m/s。在参数设置界面,按键1按下时,循环切换需要调整的参数项,包括直立控制参数、速度控制参数、转向控制参数;按键2与按键3按下时,分别增加与降低当前选中参数的数值,调整完成后,自动将新的参数写入Flash,同时更新显示屏上的参数显示。图4.3按键程序流程图4.2.3显示函数子程序流程图显示函数子流程如下图4.4所示,显示刷新子程序的核心是实现运行信息的清晰、实时显示,根据当前的显示标志位,切换不同的显示界面,同时定时更新界面上的动态数据。子程序中设计了两个独立的显示界面,分别为运行状态界面与参数设置界面,通过按键切换界面时,先执行清屏操作,再绘制新的界面内容,避免显示内容重叠。运行状态界面中,第一行显示机器人当前的运行状态,分为停止与运行两种状态;第二行显示电池实时电压与设置的低电压报警阈值;第三行显示车身当前的俯仰角与左右电机的实时转速;第四行显示当前设置的目标运动速度。参数设置界面中,第一行显示当前选中的参数项名称,第二行显示参数的当前数值,第三行与第四行显示参数的调整提示信息。子程序在主循环中每100ms执行一次,更新界面上的动态数据,保障显示内容与实际运行状态同步,关键信息采用放大字号显示,提升可读性。图4.4显示函数子程序流程图4.3本章小结本章围绕系统的软件设计展开,明确了软件开发环境与整体架构,详细阐述了主程序的运行流程与核心子程序的设计逻辑。软件设计采用前后台架构,兼顾了非实时任务的处理与实时控制的需求,通过模块化的子程序设计,提升了代码的可读性与可维护性,同时通过多重安全保护机制,保障了系统运行的安全性与可靠性,为整机功能的实现提供了完整的软件支撑。5系统的测试5.1硬件调试硬件单元测试的核心是验证每个独立硬件电路的功能是否正常,确保每个器件都能按照设计要求工作,为后续整机联调奠定基础。测试过程中,先对电源电路进行测试,通过可调电源模拟12V电池输入,使用万用表测量两级稳压电路的输出电压,结果显示5V与3.3V输出电压误差均在±1%以内,纹波控制在50mV以内,满足器件供电需求;随后进行过流、反接保护测试,保护电路均可正常动作,无器件损坏。随后对主控电路进行测试,通过ST-Link仿真器将测试程序下载到主控芯片,程序可正常下载与运行,所有IO口电平输出正常,定时器、ADC、通信接口均可正常工作;对姿态传感电路、电机驱动电路、编码器采集电路进行逐一测试,传感器可正常采集数据,电机可实现正反转与调速控制,编码器脉冲计数准确,无丢数现象;最后对显示、按键、报警、无线通信电路进行测试,所有功能均正常实现,按键响应准确,显示清晰,报警功能正常,无线通信稳定,无丢包现象。所有硬件单元均通过测试,功能正常,满足设计要求。5.2软件调试软件功能测试的核心是验证每个子程序的功能是否正常,逻辑是否正确,是否存在程序漏洞与bug。测试过程中,先对底层驱动程序进行测试,GPIO口、定时器、ADC、通信接口的驱动程序均可正常工作,外设初始化正常,无报错现象;随后对按键处理子程序进行测试,按键触发识别准确,防抖功能正常,不同界面下的按键功能均可正常执行,无误触发与功能错乱现象。对显示刷新子程序进行测试,两个界面可正常切换,显示内容清晰,动态数据更新及时,与实际状态同步,无卡顿与显示错乱现象;对姿态数据采集子程序进行测试,可正常读取传感器原始数据,解算后的倾角数据准确,与实际车身倾角一致,数据刷新频率满足设计要求;对无线通信子程序进行测试,可正常接收与解析遥控指令,指令响应及时,无丢包与误解析现象,状态数据可正常上传;对运动控制子程序与安全保护机制进行测试,控制逻辑正常,安全保护功能可正常触发,程序连续运行无死机、跑飞现象。所有软件功能均通过测试,逻辑正确,运行稳定,满足设计要求。5.2实物展示5.3.1温度检测功能测试5.3.1静态直立稳定性测试测试空载状态下机器人的静态直立保持能力,将机器人放置在水平地面上,上电启动后,通过上位机记录车身倾角的波动范围,同时记录连续直立保持的时长。测试结果显示,机器人上电后可快速进入稳定直立状态,车身倾角波动范围控制在±1°以内,可连续保持静态直立2小时以上,无倾倒现象,受到轻微外力扰动后,可在1秒内恢复稳定直立。图5.1静态直立稳定性测试5.3.2动态行进控制测试测试机器人行进过程中的稳定性与速度控制精度,通过无线遥控发送前进、后退指令,设置不同的目标速度,通过测速仪记录实际运行速度,同时观察车身状态。测试结果显示,机器人可在0-0.8m/s的速度范围内平稳行进,行进过程中车身倾角波动不超过±2°,无明显抖动与俯仰现象,实际运行速度与目标速度的偏差控制在5%以内,加减速过程平稳。图5.2动态行进控制测试5.3.3转向控制精度测试测试机器人的转向控制能力,通过遥控发送原地转向与行进中转向指令,设置不同的转向角度,通过角度仪记录实际转向角度,计算角度偏差。测试结果显示,机器人可实现零半径原地360度转向,转向角度偏差控制在±5°以内,行进中转向过程流畅,车身保持稳定,无明显侧倾与倾倒风险,转向结束后可快速恢复直线行进状态。图5.3转向控制精度测试5.3本章小结本章完成了系统的全流程分级测试,通过硬件单元测试验证了所有硬件电路的功能正常,通过软件功能测试验证了所有程序逻辑的正确可靠,通过整机功能与性能测试,验证了系统的各项功能与性能指标均满足设计要求。测试结果表明,系统运行稳定可靠,直立控制精度、运动操控性能、负载搬运能力、安全保护功能均达到预期目标,可适配电芯生产车间的物料搬运需求。结论本研究针对新能源电芯生产车间窄通道、高洁净度的物料转运需求,完成了两轮自平衡电芯搬运机器人控制系统的设计与实现。研究过程中,明确了系统的功能需求,完成了总体方案设计与核心器件的选型对比,搭建了完整的硬件电路,编写了全流程的控制程序,通过分级测试验证了系统的各项性能指标。系统以STM32F103C8T6为核心,通过MPU6050六轴传感器采集车身姿态数据,搭配编码器获取电机实时转速,采用串级闭环控制实现了机器人的稳定直立与精准运动操控,同时集成了人机交互、安全报警、无线遥控等配套功能。测试结果表明,系统空载静态直立倾角波动控制在±1°以内,满载5kg状态下可稳定行进与转向,无线遥控距离可达50米,连续8小时运行无故障,各项指标均满足设计要求,为新能源车间窄通道场景的物料搬运提供了一套可行的技术方案。本次研究完成了基础的控制功能与搬运能力实现,未来可在此基础上进一步优化升级。一方面可优化控制算法,提升系统在复杂路面、负载突变场景下的抗干扰能力与稳定性;另一方面可扩展视觉SLAM导航、自动避障、路径规划功能,实现机器人的自主导航与无人化搬运,进一步提升系统的智能化水平与工业场景适配性。参考文献[1]UngureanI.IntegratingFieldbusandData-CentricMiddleware:AnSTM32ModbusMasterGatewayforDDS-BasedIIoTSystems[J].Technologies,2025,13(11):526-526.[2]刘金琨.先进PID控制MATLAB仿真[M].电子工业出版社:202304:576.[3]李鑫,郑铖,杨星,等.卡尔曼滤波与PID的两轮自平衡小车设计[J].单片机与嵌入式系统应用,2023,23(01):84-87.[4]胡鹏飞.单片机技术的在电子产品中的应用[J].集成电路应用,2022,39(02):274-275.[5]《C程序设计(第五版)》荣获首届全国教材建设奖全国优秀教材(高等教育类)一等奖[J].计算机教育,2022,(01):2.[6]陈忠平,刘琼.51单片机C语言程序设计经典实例[M].电子工业出版社:202106:424.[7]李冠奎,秦云翔.基于STM32的自平衡小车结构和系统设计[J].信息与电脑(理论版),2021,33(09):84-86.[8]李天童,宁平凡,牛萍娟.基于改进遗传算法的工厂AGV安全路径规划[J].组合机床与自动化加工技术,2020,(03):160-163.[9]刘静,肖家宝,王晓,等.两轮自平衡机器人控制系统设计与实现[J].电子技术与软件工程,2019,(17):68-69.[10]孙梦凡,桂文杰.两轮自平衡机器人控制系统设计[J].山东农业工程学院学报,2019,36(08):13-16.[11]王磊,宁欣.基于STM32的两轮自平衡小车控制系统设计[J].山东工业技术,2018,(13):54.[12]吴正朕,仝硕,毋健.两轮自平衡小车控制系统设计[J].中国科技信息,2018,(10):65-66.[13]刘春阳,刘幸,杨曼,等.两轮自平衡小车的系统设计与实现[J].测控技术,2018,37(02):70-74.[14]占华林,邹丽彬,欧阳烨.基于MPU6050六轴传感器平衡小车的设计[J].电子测试,2017,(21):10-11.[15]路成强,曾洁,李千振.基于卡尔曼滤波的两轮自平衡遥控小车设计[J].自动化仪表,2017,38(09):44-47+52.[16]殷文正,姜卫东,陶金.基于禁忌搜索算法的AUV动态路径规划策略[J].南京大学学报(自然科学),2017,53(01):144-150.[17]赵磊.基于STM32的两轮自平衡小车研究[J].数字技术与应用,2017,(01):35-36.[18]刘二林,姜香菊.基于卡尔曼滤波的两轮自平衡车姿态检测[J].自动化与仪器仪表,2015,(02):52-54.季鹏飞,朱燕,程传统,等.基于STM32的两轮自平衡小车控制系统设计[J].电子科技,2014,27(11):96-99+105.[19]杨凌霄,李晓阳.基于卡尔曼滤波的两轮自平衡车姿态检测方法[J].计算机仿真,2014,31(06):406-409.[20]SalemoA,AngelesJ.ANewFamilyofTwo-WheeledMobileRobots:ModelingandControllability[J].IEEETransactionsonRobotics:ApublicationoftheIEEERoboticsandAutomationSociety,2007,23(1):169-173.

谢辞本论文的完成,离不开我的指导教师的悉心指导。从课题的选题、方案设计,到硬件电路的调试、论文的撰写修改,导师都给予了我专业的建议与耐心的指导,帮助我解决了研究过程中遇到的诸多难题,让我能够顺利完成本次毕业设计。感谢学校与学院为我提供了完善的实验环境与设备支持,让我能够顺利完成硬件电路的制作与整机的调试工作。感谢实验室的同学与师兄师姐,在调试过程中给予我的帮助与建议,和大家的交流探讨,让我解决了很多技术上的问题,也学到了很多专业知识。特别感谢我的家人,在整个毕业设计过程中给予我的理解与支持,他们是我能够安心完成研究与论文撰写的坚强后盾。最后,感谢所有在毕业设计过程中,直接或间接给予我帮助的老师、同学与家人,正是因为大家的帮助,我才能够顺利完成本次毕业设计。

附录A原理图:附录B部分源程序:#include"my_include.h"voidscanKeyAnddealKey(void);voidMy_WireLess_SendStrStr(USART_TypeDef*USARTx,constchar*str);u8setMode=0;//设置阈值u8needWriteFlash=0;//需要保存数据到flash#defineADDR_FLASH_WRITE(FLASH_BASE_ADDR+STM32_FLASH_SIZE*1024-STM_SECTOR_SIZE*1)int16saveData[4]={0,105,37,0};#defineinitMotorsaveData[0]//读取值#d

温馨提示

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

最新文档

评论

0/150

提交评论