本文主要是介绍基于CW32的车载安全系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
0 前言
基于 CW32,设计一款车载安全系统,能实现防酒驾、防车内儿童滞留、防 “开门杀”同时防盗功能。防酒驾方面,采用压力传感器判断主驾驶是否有人, 使用气体压力传感器判断是否进行吹气,MQ3 酒精模块判断酒精浓度是否超过阈 值;防车内儿童滞留方面,当压力传感器检测到主驾驶无人时,使用雷达检测是否有滞留儿童,当检测到有儿童滞留时,通过移远 4G 模块 EC600N 拨打联系人电话进行提醒;防“开门杀”与防盗面,使用摄像头对驾驶人进行人脸识别,当车内人员下车时,进行语音提醒,注意后方车辆,同时摄像头会检测驾驶人是否回 头查看后方车辆,检测成功,才会打开车门锁。通过以上车载系统来避免安全事故的发生。
1 系统方案
1.1 系统功能
基于 CW32,设计一款车载安全系统,能实现防酒驾、防车内儿童滞留、防 “开门杀”同时防盗功能。防酒驾方面,采用压力传感器判断主驾驶是否有人, 使用气体压力传感器判断是否进行吹气,MQ3 酒精模块判断酒精浓度是否超过阈值;防车内儿童滞留方面,当压力传感器检测到主驾驶无人时,使用雷达检测是否有滞留儿童,当检测到有儿童滞留时,通过移远 4G 模块 EC600N 拨打联系人电话进行提醒;防“开门杀”与防盗面,使用摄像头对驾驶人进行人脸识别,当车内人员下车时,进行语音提醒,注意后方车辆,同时摄像头会检测驾驶人是否回头查看后方车辆,检测成功,才会打开车门锁。通过以上车载系统来避免安全事故的发生。
1.2 系统设计方案
将压力传感器安装在车座位下面,当检测到驾驶座上有人时,提醒其吹气, 使用气体压力传感器判断驾驶人是否进行吹气检测,同时摄像头也会进行人脸识别,只有当酒精浓度与人脸识别均成功,才会开锁;如果人脸识别失败,会进行相应的短信通知,起到防盗作用。 我们注意到,每次下车前,车内人员都需要打开车门锁,才能下车,所以我们用按键模拟开车门键,当检测到按键按下,会进行语音播报,提醒其注意后方车辆,同时摄像头会判断其有无回头查看车辆行为,若无,则不会开车门锁。 当压力传感器检测到驾驶座上没人时,一段时间后,雷达会检测车内是否有其它人,如果有则会拨打联系人电话,提醒其车内有儿童。 同时,为了防止车内其它人员喝酒导致防酒驾系统误触发时,我们会发送一段随机码给系统录入的其它成员,也就是驾驶人的家属一段随机码,驾驶人可以询问其家人随机码,通过输入随机码方式开锁开车。 我们为改该系统设计了一个可行的安装方案,如图 1 所示,
图 1 车内安装布局示意图
1.3 模块选择
1.3.1 主控MCU选择
CW32F030C8 单片机作为系统的控制器。CW32F030C8 是一款基于 ARM Cortex_M0 内核的低功耗微控制器,具有高性能、低功耗、多功能性、存储容量 大、安全性强、易于开发等优势。
1.3.2 酒精浓度检测
选择 MQ3。MQ3原理是当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中酒精气体浓度的增加而增大。使用简单的电路即可将电导率的变化转 换为与该气体浓度相对应的输出信号。MQ3 对酒精的灵敏度高,可以抵抗汽油、烟雾、水蒸气的干扰。这种传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。
1.3.3 人体检测
压力传感器。将压力传感器置于车座下,人坐在车座上时,可以清晰的检测到压力的变化,用于判断人是否在车上。
1.3.4 吹气检测
HX711 气体压力传感器。当检测到吹气时,输出会有明显变化,通过检测变化判断是否吹气。
1.3.5 4G 通信模块
选择 EC600N_CN。EC600N-CN 是移远通信专为 M2M 和 IoT 领域而设计的 LTE Cat 1 无线通信模块。我们使用了发送短信和拨打电话功能,该模块还可将实时 数据上传阿里云、ONENET 等物联网开放平台,实现手机电脑与单片机的数据交换。
1.3.6 语音播报模块
使用 EC600N TTS 功能。
1.3.7 雷达模块
使用 LD2410C,支持手机调参,可选择检测到人时输出高电平还是低电平。
2 电路图与程序设计
2.1 系统总方案
图 2 系统方案设计图
2.2 程序流程
系统上电后,要等待 2 分钟以上,等待酒精传感器稳定。程序流程如下:
图 3 程序设计流程图
2.3 引脚功能定义表
PA00 | ADC0(电池) |
PA1 | 压力传感器 |
PA2 | 气体压力传感器(TX) |
PA3 | 气体压力传感器(RX) |
PA4 | TFT(DC) |
PA5 | TFT(SCL) |
PA6 | TFT(RES) |
PA7 | TFT(SDA) |
PA8 | UART1(TX) |
PA9 | UART1(RX) |
PA10 | 按键1 |
PA11 | LED1 |
PA12 | 按键2 |
PA15 | 4G模块 |
PB02 | ADC10(电位器) |
PB0 | UART2(RX) |
PB1 | UART2(TX) |
PB2 | 雷达(高电平有人) |
PB3 | 电源控制(5V) |
PB4 | LED3 |
PB5 | 按键3 |
PB6 | LED2 |
PB7 | 按键4 |
PB10 | ADC11(酒精) |
PB13 | 背光 |
PB15 | 电源控制(3.3V) |
PF0 | 无线电控制 |
PF1 | 车锁 |
表 1 引脚功能定义表
2.4 实物照片
图 4 实物图
2.5 摄像头识别原理
2.5.1 K210
K210 是一款国产 64 位 RISC-V CPU,其中包含了一个神经网络硬件加速器 KPU,可以高性能地进行卷积神经网络运算。使用 k210 搭载人脸识别模块和转头 检测模块,利用其 ai 加速的特性,可以对人脸识别和转头检测进行高效的处理。
2.5.2 人脸检测和识别模型
人脸识别使用 YOLOlite 模型检测出人脸所在位置。检测到人脸后,会将检 测到的人脸裁剪出来并送入“人脸 5 点检测模型”。“人脸 5 点检测模型”会标 出 2 个嘴角、1 个鼻尖、2 个眼睛共 5 点,这 5 点将与标准人脸的 5 点进行对比, 根据对比结果,对裁剪出来的人脸进行矫正,使其转变为正脸。将矫正后的人脸 输入至特征提取网络,得到 128 纬的特征向量。使用特征向量进行对比实现已保 存人脸的识别。
2.5.3 转头检测模型
使用卷积网络对驾驶员的转头看后视镜行为进行检测。采集共 374 张“转头” 和“非转头”的图像对卷积识别网络进行训练,训练结果如下图:
图 5 转头检测模型训练结果
可见训练集和验证集的准确率均达到了 99%左右,模型收敛,可以较好的完成转头检测任务。
3 系统测试
3.1 测试功能表
功能 1 | 压力传感器检测到有人时唤醒系统 |
功能 2 | 检测到驾驶座有人时提醒吹气,并进行人脸识别 |
功能 3 | 人脸识别失败,发送短信告知车主 |
功能 4 | 酒精浓度超过阈值短信通知其家属,并发送随机码 |
功能 5 | 人脸识别成功并且酒精浓度低于设定阈值开锁 |
功能 6 | 输入随机码开锁 |
功能 7 | 检测到人按开车门键播报:注意后方车辆,并进行回头检测 |
功能 8 | 回头检测成功,则开车门,否则持续播报请转头 |
功能 9 | 三次播报请转头后,打开车门锁 |
功能10 | 检测到主驾驶座上无人,一段时间后,雷达检测车内是否有人 |
功能 11 | 雷达检测车内有人,电话通知家属,连续两次不成功,则拨打 110 功能 |
功能12 | 雷达检测无人进入深度睡眠模式 |
功能13 | 长时间不使用系统时,给系统断电 |
表 2 系统功能表
3.2 测试方法与测试结果
用无线电模块模仿车锁和车门锁的开与关,按键模仿开车门锁。无线电接受模块与气体压力传感器以及酒驾模块组合的防酒驾模块如下图所示:
图 6 无线电接受模块
图 7 气体压力传感器与酒精模块
经检验,所有功能均正常。
4 总结展望
4.1 优点与创新之处
很显然,我们的系统功能丰富,能降低安全事故的发生,具有很强的实用性, 同时,结合实际,在防酒驾误触发时给予解决方法,加入 PMOS,实现不使用时, 系统断电,降低功耗。
4.2 总结与展望
从初期硬件、软件理论知识的学习,到后面主题的选择,作品的设计与不断地改进创新,我们见证了自己的提升,也收获了作品完成时的喜悦。在此期间, 我们也遇到过各种各样的困难,例如防酒驾模块中,怎样设计能防止司机“作弊” 逃避检查;防儿童滞留模块中选用何种方式检测车内儿童,又采用哪种模块向外呼救;选择核心板设计还是自己打板设计等等,这些问题带领我们不断地思考、选择、设计和实践,最终完成了我们的作品。虽然我们的作品可能还不够完美,但瑕不掩瑜,我们的作品还是具有一定的可行性与实用性的,相信未来,我们定能不断完善该作品。
后记
感谢 武汉芯源半导体 提供的技术支持和赞助 ❤,近期官方推出了 CW32开发者扶持计划,感兴趣的小伙伴可以关注 官方公众号 CW32生态社区 & 官方QQ群 482146847。
开源链接:https://pan.baidu.com/s/1_DcIFUhiF6EbnXGJEnITUg?pwd=z6jc
提取码:z6jc
这篇关于基于CW32的车载安全系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!