当前位置:首页 > 物联网 > 智能应用

嵌入式软件系统是扫地机器人的“灵魂”,负责控制硬件模块协同工作,实现路径规划、避障控制、清洁控制等核心功能。软件开发需基于低成本硬件架构,优化算法逻辑,简化冗余代码,确保软件运行流畅、稳定,同时降低开发难度与成本,采用模块化开发思路,提升代码复用性与可维护性。软件系统主要包括系统初始化模块、传感器数据处理模块、路径规划模块、避障控制模块、清洁控制模块与交互控制模块。

(一)开发环境与编程语言选型

结合主控芯片选型与低成本需求,选用Keil MDK开发环境,该环境支持STM32、GD32等主流MCU,开发工具成熟、资源丰富,且免费版本可满足低成本方案的开发需求,无需支付高额的开发工具费用。编程语言选用C语言,C语言执行效率高、占用内存少,适合嵌入式低算力平台,且代码可移植性强,能够适配不同型号的MCU,降低后续方案迭代成本。同时,可借助开源社区的代码资源,如Arduino开源项目中的避障、调速代码,减少重复开发,提升开发效率。

(二)核心软件模块开发

1. 系统初始化模块:系统上电后,完成主控芯片、传感器、驱动芯片、电源模块等各硬件模块的初始化,设置通信接口、中断服务、PWM参数等,确保各模块正常工作。初始化流程采用简化设计,优先初始化核心模块(主控、驱动、避障传感器),再初始化辅助模块(交互、地面检测),缩短初始化时间,提升系统响应速度;同时,增加初始化自检功能,检测各模块是否正常工作,若出现故障,通过LED指示灯提示,便于排查问题。

2. 传感器数据处理模块:负责采集各传感器的数据(避障传感器、地面检测传感器、陀螺仪),通过滤波算法(中值滤波、滑动平均滤波)过滤数据噪声,提升数据准确性。例如,对红外避障传感器采集的距离数据,采用中值滤波算法,剔除异常数据,避免因环境干扰导致的避障失误;对陀螺仪采集的姿态数据,采用滑动平均滤波,修正姿态偏差,确保设备移动平稳。同时,将处理后的数据传输至主控芯片,为路径规划、避障控制提供可靠数据支撑,数据处理流程采用轻量化设计,减少运算量,适配低算力MCU。

3. 路径规划模块:基于低成本硬件约束,摒弃复杂的SLAM导航算法,采用“随机清扫+沿边清扫”的混合路径规划策略,兼顾清洁覆盖率与算法复杂度,降低MCU运算压力。随机清扫模式适用于空旷区域,通过预设的随机运动逻辑,控制设备自主移动,实现大面积清扫;沿边清扫模式通过红外避障传感器检测墙壁、家具边缘,控制设备沿边缘移动,重点清扫角落、墙边等清洁盲区。同时,增加路径记忆功能,记录已清扫区域,减少重复清扫,提升清洁效率;优化算法逻辑,简化路径计算流程,采用查表法替代实时复杂计算,降低运算量,适配STM32F103等低算力MCU。

4. 避障控制模块:基于传感器数据,实现设备的自主避障,避免碰撞障碍物。当避障传感器检测到前方有障碍物(距离<20cm)时,控制设备停止前进,后退10cm,然后转向30°,继续前进,实现简单的避障动作;当侧面超声波传感器检测到障碍物时,调整左右驱动轮转速差,实现转向避障,避免侧面碰撞。同时,结合陀螺仪数据,修正设备转向角度,确保避障后能够快速回归正常清扫路径;增加应急避障逻辑,当设备出现卡顿(如被电线缠绕、卡在家具缝隙)时,控制驱动电机反向转动,尝试自主脱困,提升系统可靠性,可借鉴开源方案中的3000余种脱困逻辑,简化适配后应用于低成本方案。

5. 清洁控制模块:控制滚刷电机与吸尘风机的启停与转速,实现清洁功能的协同控制。设备启动后,同步启动滚刷电机与吸尘风机,根据地面材质调整转速(硬质地面转速较高,地毯转速较低),兼顾清洁效果与能耗;当设备转向、避障或暂停时,关闭滚刷电机,保留吸尘风机低功率运行,减少能耗;当检测到尘盒满(通过红外对射传感器判断)时,停止清扫并闪烁报警灯,提示用户清理尘盒。清洁控制逻辑采用简化设计,无需复杂的吸力调节算法,降低软件开发难度。

6. 交互控制模块:响应用户操作(实体按键、遥控器),控制设备的启停、模式切换、充电等功能。当用户按下启动按键时,设备启动并进入默认清扫模式(随机清扫);按下模式切换按键时,切换至沿边清扫模式;按下充电按键时,设备停止清扫,进入回充模式(通过红外接收充电座的引导信号,沿信号强度递增方向行驶至对接充电)。同时,通过LED指示灯反馈设备运行状态,工作时绿灯常亮,充电时红灯常亮,故障时黄灯闪烁,方便用户操作与排查问题。

(三)软件优化策略

为适配低成本硬件,提升软件运行稳定性与效率,需对软件进行针对性优化。一是算法轻量化优化,对路径规划、避障控制等核心算法进行简化,剔除冗余计算步骤,降低运算量,例如,将路径规划算法中的浮点运算转换为整型运算,减少MCU运算压力;对激光SLAM算法(若有)进行点云降采样、栅格地图分辨率自适应优化,削减60%以上的运算量。二是内存优化,精简代码冗余,采用模块化编程,减少代码占用的Flash与RAM空间;优化数据存储方式,采用稀疏存储方式存储参数矩阵,降低内存占用,避免内存溢出导致的系统死机。三是功耗优化,通过软件控制各模块的工作状态,当设备闲置3分钟无操作时,自动进入休眠模式,关闭非必要模块(如传感器、滚刷电机),降低待机能耗(待机电流<50mA);根据设备运行状态,动态调整传感器数据采集频率,清洁时提高采集频率,休眠时降低采集频率,兼顾性能与能耗。四是稳定性优化,增加异常处理逻辑,针对传感器故障、电机堵转、电压波动等异常情况,设计相应的处理方案,避免系统死机;定期对软件代码进行调试,修复bug,提升软件运行稳定性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭