基于CW32的车载安全系统

2023-11-27 17:20
文章标签 系统 安全 车载 cw32

本文主要是介绍基于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 引脚功能定义表

PA00ADC0(电池)
PA1压力传感器
PA2气体压力传感器(TX)
PA3气体压力传感器(RX)
PA4TFT(DC)
PA5TFT(SCL)
PA6TFT(RES)
PA7TFT(SDA)
PA8UART1(TX)
PA9UART1(RX)
PA10按键1
PA11LED1
PA12按键2
PA154G模块
PB02ADC10(电位器)
PB0UART2(RX)
PB1UART2(TX)
PB2雷达(高电平有人)
PB3电源控制(5V)
PB4LED3
PB5按键3
PB6LED2
PB7按键4
PB10ADC11(酒精)
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的车载安全系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/428187

相关文章

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。