APP下载

基于离线地图的智能导航头盔设计

2023-03-22吴佳铭胡立夫陈海一等

电子产品世界 2023年3期

吴佳铭 胡立夫 陈海一等

关键词:离线地图;SD卡;LVGL;离线语音模块;PID控制算法

近年来,随着信息业发展迅速,外卖行业的崛起重塑了人们的日常生活,买快餐也成了不愿做饭的年轻人与公司职员的最佳选择,这也促进了各地经济发展,并解决了就业问题。在外卖骑手数量持续增长的同时,外卖兄弟已成为交通事故发生率较高的群体。在近几年,中国一些地方发生了重大交通事故,其中一些是因外卖兄弟不遵守交通规则而丧失性命。

外卖兄弟每天在路上骑电动车,配送外卖。路面车流复杂,尤其在十字路口以及幽僻小路这种复杂或缺乏标识的路口,极易发生交通事故。这些事故的发生可能是因为驾驶员安全意识薄弱,未按照交通规则行驶;另一方面可能是路口复杂,需要手机进行导航,而长时间关注于手机地图不注意路况,就会导致安全事故的发生。而发生事故不及时救援很容易出现生命危险。

由此可见,一个可以进行地图显示的头盔格外重要,尤其是在外卖行业骑手快速增长、路面车辆愈加复杂的大背景下。这不仅有利于保护人们的生命安全,而且可改善骑手的驾驶舒适感,从而使得外卖行业能够持续健康地发展,使得先进的科技成果更好地融入人们生活中。

1 系统总体方案设计

本设计

2 硬件电路设计

2.1 主控与电源设计

本设计使用乐鑫科技开发的ESP32 单片机作为主控,其工作频率高达240 MHz,可编程GPIO 丰富、配备4个SPI、2个IIC接口,以及其他的通信协议。性能稳定,可在-40~125 ℃ 工作,并且专为移动设备开发了低功耗性能。

电源采用Li-Po 3s电池进行12 V 的电压输入,采用MP2315 芯片作为开关电压调节器,将电池的12 V分别转为5 V,而后使用AMS1117 芯片使5V转化为3.3 V,从而获得12 V 转5 V、3.3 V 两路输出的电源,并为单片机和传感器进行供电。

电源模块的设计,通过查阅MP2315 芯片数据手册得到相关使用说明,使用式(1)电感计算公式、式(2)输入电容计算公式、式(3)输出电容计算公式,分析出电感应在3.24 μH 到6.48 μH,饱和电流大于4.5 A,输入电容越大越好,但不必过大;输出电容越大波纹越小,但过大会导致过流保护。其中Fsw 开关频率在计算过程中占主要参数,频率越高其输出纹波越小,但是过高会导致开关损耗增加,可以选择在(500~1 500)K。

本设计选用4.7 μH 电感、输入输出电容都选用22 μF 以实现输入电压从12 V 转为5 V。电源模块原理图如图2 所示。

2.2 传感器数据采集设计

数据采集模块均采用IIC 通信模式,利用两根双向通信线,数据线SDA,时钟线IIC。使用ESP32 作为主机,连接多个外围设备为从机。通过不同从机分配的地址不同,进而获得各个传感器的正确数据,从而实现一对IIC 接口连接多个传感器设备。减少了IO 口的占用,使运行效率更高。

使用的传感器有MLX90614无接触式温度传感器,集成了红外热电堆检测器、信号处理芯片MLX90302 和强大的数字信号处理芯片,能够准确地获取出环境温度和物体温度。MPU6050 六轴加速度传感器,实时获取加速度,并加以传输;MAX30102 心率测量模块采集用户的心率以及血氧。其连接方式如图3所示。

2.3 地图显示模块

地图显示模块由北斗+GPS 双模模块、SD卡读取模块以及ST7789 彩色显示屏构成。

北斗+GPS 模块采用ATGM336H 芯片,其协议是NMEA-0183。有着定位性能高、集成度高、功耗低的特点。ESP32 单片机通过串口获取信息的方式接收北斗模块串口发送的数据,并通过&GNRMC 语句进行格式判定,获取到经纬度信息。通过获取到的经纬度信息选择SD 卡存储的地图,最后通过ST7789 彩色显示屏在头盔内部显示出来,以便在骑行时,了解骑行路线以及实时路况。地图显示模块原理如图4 所示。

2.4 离线语音模块

离线语音模块是以SU-03T 芯片为基础的声控模块,是成本较低、功耗低的离线语音识别模组,兼备多种功能:UART、GPIO、ADC、PWM、I2C 等功能。其最强大的地方在于可以在其平台上自定义词条,进行自定义语音设置,可以通过连接咪头来收取声音信息并且可以连接喇叭进行播报。其平台设置如图5 所示。

在智能头盔中,其作用不可忽视,通过语音交互使整个设备成为一体,通过语音模块自定义词条的功能,记录使用过程中可发生的一切情况的语音,包括提高地图等级、降低地图等级、增大温度、减小温度。在骑行过程中,使注意力专注于骑行,避免了使用者过多手的动作,使骑手的双手负担得到减轻。

3 系统程序设计

系统程序设计保证功能的实现,打开设备后系统开始进行初始化,初始化结束后启用多线程模式,对服务功能与报警功能进行隔离,使识别更加迅速。在进行服务功能时,为用户提供实时地图显示服务、温度调控服务、语音交互服务。在报警功能中,实时对传感器的各种状态进行监测,对脉搏传感器数据、加速度数据进行判断,若在发生有脉搏且加速度超过阈值时,而后并未人为取消,将会发出语音报警,向路人寻求救援。程序设计流程图如图6 所示。

3.1 地图获取程序设计

首先利用网络开源项目地图下载器对地图瓦片下载,再根据自己的喜好下载地图等级,等级越高地图越详细。下载完成后使用TilesConverter ForLVGL.exe 进行地图格式转换,变为RGB 二进制文件。将SD 卡的文件格式进行修改变为FAT32 格式,再将下载并转换完的MAP 文件放入SD 卡的根目录。

在单片机的程序中,获取GPS 位置坐标,转化成地图坐标,并根据用户选择的缩放比例获取需要的瓦片图片的个数和图片在SD 卡上的路径地址,通过LVGL库采用外部储存模式更新图片,实现对地图的实时更新。地图获取流程图如图7 所示,GUI图像设计如图8。

3.2 温控PID算法程序设计

目前的自动控制技术基本上是对于反馈的体现。反馈理论的3 个组成部分:测量、比较、执行。对温度进行测量,同时与设定的期望值进行对比,并用误差修正的方法调节控制系统的输出。

通过MLX90614温度传感器模块发送的数据进行格式化解析,从而得出头盔内部的温度,并在手机端输入自己需要的温度,而后与加热片组统一合作,将比例、积分与微分的函数关系运算出的结果输出以控制温度。PID温控流程如图9。

对于PID 的调节,PID 3 个参数对于系统的影响是相互耦合的,没有哪个性能只受1 个参数的影响。并且PID 的3 个参数的影响各有侧重点,其中Kp 用于缩短系统上升时间;Ki 用于消除稳态误差;Kd 用于降低过冲和动态偏差。对于这个简单的控制系统来说,只需要对比例项P、积分项I 的调节即可,故微分项D 取0。在调整过程中,先进行比例项相对合适的值,再去寻找积分,最后是微分。当曲线波动频繁时,增加比例系数;曲线围绕一个大弯浮动,降低比例系数,将Kp 取到合适的值后,进行对Ki 的调节,来减小静差,当收敛速度过慢,需要增大Ki 值;当收敛速度过快,将产生超调,这时需要降低Ki 值,使系统稳定。

4 结束语

当今时代科技迅速发展,科技终将服务百姓,提高百姓生活的舒适度以及日常生活的安全。为日常出行提供便利。外卖也成为寻常百姓生活中不可分割的一部分,智能导航头盔正可以应用在外卖小哥的身上,智能头盔以多线程的设计,不仅可以为骑手的骑行体验进行改善,保证骑手不受严寒的影响,而且可以根据事故发生采取举措,尽可能减小人受到的伤害以及在遭受生命危险时不能及时处理的风险。本文设计的智能导航頭盔也为交通安全贡献一份力量,为人们出行更加安全做出一份保障。