基于单片机的汽车雨刷器装置
摘要
下雨天时道路十分模糊,能见度非常低,司机分散注意力去手动打开雨刷器开关会非常危险。据统计,全世界雨天行车的车祸事故有7%是因为司机手动打开雨刷分心导致的。为了减小司机因为手动打开雨刷发生车祸的概率,所以如今研发一种雨刷自动控制器是非常有必要的。该系统主要从硬件设计和软件编程两个部分进行设计,硬件部分由单片机、雨滴传感器、步进电机、按键、ADC0832模数采集模块、LD3320语音模块、显示屏等模块组成,实现了根据车窗覆水量和识别语音指令来控制雨刷的转速。该系统通过覆水量判定的湿度阈值来设定上下限值,当覆水量小于设置的下限值,雨刷停止,当覆水量处于上限值和下限值之间,雨刷速度进入一档位,当覆水量大于设置的上限值,雨刷速度进入二档位。此外,还可以通过语音指令来实现雨刷转速控制、切换模式和开/关系统等功能。软件部分使用c语言对LD3320模块、键盘模块、语音识别模块、雨滴传感模块等模块进行子程序的编写和主程序的编写,实现了各个模块的运转从而实现了雨刷器的自动控制。该雨刷可以预防驾驶员在行车过程中会遇见的大多数未知情况,极大的减小了司机发生车祸的概率。
关键词:单片机;模块;传感器
系统方案设计
2.1 系统设计内容
系统硬件设计框图如图2.1所示,其中单片机最小系统起到中枢的作用;LCD1602显示模块主要功能是显示覆水量大小,雨刷转速挡位,控制状态以及覆水量上限值和下限值;键盘模块主要是对覆水量量下限值的设置和对控制状态(自动或者手动)的设置;语音电路识别语音指令进而控制雨刷转动;雨滴传感电路采用专用的湿度传感器,需要经过数模转换电路传送给单片机。主要研究内容如下:
(1)完成雨滴传感器的硬件电路设计,软件程序设计,将数据采集到单片机;
(2)完成步进电机的电路设计,软件程序设计;
(3)完成电机驱动的电路设计,确定驱动电平;
(4)完成模数转换的电路设计,软件程序设计,将模拟量转换数字量;
(5)完成显示器的电路设计,软件程序设计,将单片机数据进行显示;
(6)通过按键具有设置参数功能;
(7)完成语音识别LD3320的电路设计,软件程序设计。
图2.1硬件框图
系统硬件设计
3.1 单片机
单片机是整个雨刷智能控制系统的中枢大脑,可以说该设计最需要注意的步骤就是单片机部分,该设计所实现的所有功能都是通过单片机来实现的。单片机如图3.1所示。
图3.1单片机
单片机最小系统
单片机是具有核心智能化的小型中央处理器,在其内部拥有数以万计的微晶管,根据程序代码的控制使它在逻辑上进行不同的输出或者输入形式,完成设计的功能控制,虽然它具有智能化的形式,但是单片机并不能独立工作,需要配合外围电路构成一个最小工作系统,才具有智能工作的能力,不管任何型号的单片机,最小系统都是单片机不可或缺的一个前提必要条件,对于不同系列单片机而言,组成单片机最小系统的外围电路并不相同,需要根据单片机设计厂家给定的工作手册进行设计最小系统的搭建。最小系统由复位、晶振以及电源三个电路组成。本次设计使用的单片机型号是STC89C52,市场上使用极为广泛,性能相对稳定,单片机片上资源比较适中,虽然处于入门级单片机,但对于本次的功能来说完全足够,单片机的最小系统搭建如图3.2所示。
图3.2最小系统电路图
系统软件设计
本次程序设计采用的编程语言是C语言,C语言具有简单易懂,逻辑判断能力突出等特点,编写程序的开发软件是Keil软甲,在设计中,首先完成的是主函数的框架结构,在框架结构中布置各个子程序的分区功能,根据逻辑的执行确定子程序的先后执行顺序,主函数框架编写完成之后,开始进行子函数功能编写,根据每一个的功能实现代码设计,每完成一个子程序就可以进行Keil软件编译,编译成功将HEX文件下载到单片机运行,运行成功后进行下一个子函数编写,直到全部功能调试完毕。
4.1 系统程序设计软件介绍
程序软件设计所指的就是程序代码的设计,程序代码通过语言来进行编写,语言再通过编译软件编译成单片机能识别的只有1和0的逻辑语言。程序员所编写的是C语言或者汇编语言,通过工具完成编写语言到机器语言的装换,这个工具就是单片机的开发软件,我们所使用的开发软件是KEIL软件,使用的是C语言,KEIL软件将这种语言翻译成机器语言,也就是前文提到的只有0和1的逻辑语言,将其下载到单片机中,使单片机按照语言的逻辑运行。KEIL软件的功能极为强大,执行的工作不仅仅是翻译高级语言,同时还会查找高级言中的错误,并且进行提示,指出错误的地方,方便程序员进行修改。
KEIL软件的开发界面给人一种干净整洁的观感,没有丝毫的杂乱,简单明了的指令系统得到众多程序员的认可,是最受欢迎的软件之一,KEIL软件涵盖了众多型号的单片机库,很多的单片机都可以使用KEIL软件直接进行开发,无需对新的开发环境进行了解,节省开发的时间。新建工程界面如下图4.1所示。
图4.1新建工程界面
程序编写KEIL的界面如下图4.2所示。
图4.2程序编写KEIL
结论
该设计首先是设计出硬件电路原理图,之后通过网络查询、老师指导、图书馆查找书籍来了解单片机引脚和各个模块原理,最后绘制出该设计的总原理图。通过总原理图进行该设计的焊接,焊接的过程中出现了许多的问题,比如焊接时手法不太好导致两个焊点的锡连在一起,高温度电烙铁长时间接触焊盘导致焊盘脱落,电路出现短路等现象,最终长时间的实践完成了该设计,并且对自己的焊接能力又有一个大的提升。完成设计后,对系统进行反复测试,一直到系统可以正常运行,之后整理相关的资料与文件进行论文的编写,这次设计让自己无论是对硬件知识还是软件知识都有了一个巨大的提升,掌握了单片机的原理应用和梳理了C语言的编程技能。
该雨刷器控制系统对雨水采集电路,单片机最小系统,语音识别模块,电机驱动模块,显示电路模块都进行了硬件与软件的设计。实现了根据覆水量和语音识别指令自动控制雨刷器的转速,完美的解决了驾驶员在雨天分心打开雨刷发生车祸的概率,在硬件方案选取时从功能可靠性和经济实用性等多方面考虑,筛选出功能相对全面,发展相对完善,比较可靠的硬件设计方案。
该研究对我们的日常出行有着巨大的意义,雨刷控制系统是如今驾驶者都会考虑的汽车功能问题。该设计还有待完善,比如根据覆水量来自动开启雨刷会出现玻璃覆水量不高但却依然影响了驾驶视线的情况,而且语音识别功能的语音识别准确率也有待提高,该设计的生产成本也非常高,适用车型还是只有高档车型。考虑到价格的可行性和系统的功能不足,该设计在未来仍然有着巨大的发展空间,在未来会针对汽车行驶的安全性,可靠性,经济实用性开发出更加优越的功能。
参考文献
[1]赵岩,王哈力,王东辉.基于模糊控制的汽车智能雨刷系统设计[J].佳木斯大学学报(自然科学版),2006,24 (4):529-531.
[2]赵岩,王哈力,蒋贵龙,等.汽车智能雨刷系统的设计[J].电子科技,2007(2):70-72.
[3]贺理.机车雨刮器控制器的设计与实现[D].湖南工业大学,2011.
[4]李延延.汽车雨量检测及自动雨刷器仿真控制电路设计[J].中国新技术新产品,2015(21):15-16.
[5]田群娟.雨刮器及其自动控制系统的研究[D].西安理工大学,2015.
[6]宋凯,杨合利.汽车智能雨刮器的设计[J].河北农机,2016(10):30-31.
[7]张杰.51单片机应用开发范例大全[M].人民邮电出版社,2016.
[8]王潇.单片机在电子技术中的应用和开发技术研究[J].同行,2016(5):213-214.
[9]吴国城.探讨仿真技术在单片机开发中的应用[J].城市建设理论研究,2016(17).
[10]周岚.浅析基于C语言的单片机技术[J].软件工程师,2016,19(5):30-31.
[11]李丽.单片机最小系统的研究[J].数字技术与应用,2016(10):26-26.
[12]陈维香.电子工程技术在单片机中的技术应用浅析[J].工程技术:全文版,2016(11):00253-00253.
[13]江衍煊,郑振杰,游德智.单片机连接ULN2003驱动步进电机的应用[J].机电元件,2010,30(3):28-31.
[14]何初明.接口芯片ULN2003在自动延迟电路中的应用[J].电世界,2000(9):13-13.
[15]王党利,宁生科,马宝吉.基于TB6560的步进电机驱动电路设计[J].单片机与嵌入式系统应用,2010(1):41- 43.
[16]齐志才.基于计算机单片机仿真机完善对单片机的调试分析[J].电脑编程技巧与维护,2015(17):40-41.
[17]刘斌,刘春茂,尹社会.单片机C语言仿真调试系统研究[J].无线互联科技,2016(9).
[18]王开,刘美,曾宪桥.基于Proteus的单片机控制系统的仿真设计[J].电子设计工程,2015(8):180-184.
[19]汤湘林.单片机硬件仿真实用方案[J].电子制作,2015(10).
相关文章:
基于单片机的汽车雨刷器装置
摘要 下雨天时道路十分模糊,能见度非常低,司机分散注意力去手动打开雨刷器开关会非常危险。据统计,全世界雨天行车的车祸事故有7%是因为司机手动打开雨刷分心导致的。为了减小司机因为手动打开雨刷发生车祸的概率,所以…...
013-SpringBoot 定义优雅的全局异常处理方式
SpringBoot 定义优雅的全局异常处理方式 一、概述二、定义全局异常接口三、定义全局异常枚举四、定义全局基础异常五、定义全局基础业务异常六、定义全局返回七、定义全局返回工厂八、全局异常处理九、实体类十、Controller十一、效果展示一、概述 在日常项目开发中,异常是常…...
nginx 网页正常访问 F5 404
前端打包部署完,无论pc-web或h5-wap,访问正常,一刷新就会404。 解决方案: 在项目的nginx子配置文件中,加上以下代码 try_files $uri $uri/ /index.html;...
Idea Spring Initializr没有 Java 8选项解决办法
问题描述 在使用IDEA中的Spring Initializr创建新项目时,Java 版本近可选择Java17,21 。不能选择Java8;SpringBoot 版本也只有 3.x 问题原因 Spring 官方( https://start.spring.io/)不再提供旧版本的初始化配置 解决方案 方案 1 使用阿里…...
【Leetcode Top 100】104. 二叉树的最大深度
问题背景 给定一个二叉树 r o o t root root,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 数据约束 树中节点的数量在 [ 0 , 1 0 4 ] [0, 10 ^ 4] [0,104] 区间内。 − 100 ≤ N o d e . v a l ≤ 100 -100 \le Nod…...
C#实现一个HttpClient集成通义千问-开发前准备
集成一个在线大模型(如通义千问),来开发一个chat对话类型的ai应用,我需要先了解OpenAI的API文档,请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…...
使用ssh免密登录实现自动化部署rsync+nfs+lsync(脚本)
单机一键部署sshrsyncnfslsync 执行准备 主机信息 主机角色外网IP内网IP主机名nfs、lsync10.0.0.31176.16.1.31nfs客户端10.0.0.7176.16.1.7web01rsync、nfs10.0.0.41172.16.1.41backup 秘钥信息 #web01可以免密连接nfs和backup [rootweb01 ~]# ssh-keygen [rootweb01 ~]#…...
若依集成更好用的easyexcel
背景 若依使用的是apach poi并在此基础上进行封装apach poi的原生的api是很复杂的,若依简化了了此操作apach poi的上传速率和下载速率都是没有优化的,依赖于文件大小的限制在此前提下,如果没法满足客户的需求(超大型文件的上传&am…...
去除背景 学习笔记
目录 rembg rembg 安装: pip install rembg import os from glob import glob from rembg import remove from argparse import ArgumentParser from PIL import Image if __name__ __main__:parser ArgumentParser()parser.add_argument(--path, typestr, re…...
我们来学mysql -- 隔离级别简介(原理篇)
隔离级别 别记题记隔离级别后记系列文章 别记 烧香拜佛要是有用,还需要我们来过吗…从个人情感角度,巴沙尔阿萨德 辜负了东大对他的期望他可是从正门踏进了灵隐寺 俄乌战争即将进入第三年(此时202412)此时的加沙正成为以色列建国…...
机器学习(4)Kmeans算法
1、简述聚类分析的重要性及其在机器学习中的应用 聚类分析,作为机器学习领域中的一种无监督学习方法,在数据探索与知识发现过程中扮演着举足轻重的角色。它能够在没有先验知识或标签信息的情况下,通过挖掘数据中的内在结构和规律…...
Oracle之表空间迁移
问题背景:一个数据表随着时间的累积,导致所在表空间占用很高,里面历史数据可以清除,保留近2个月数据即可 首先通过delete删除了2个月以前的数据。 按网上的教程进行空间压缩,以下sql在表所在用户执行: -- 允许表重新…...
域渗透入门靶机之HTB-Cicada
easy难度的windows靶机 信息收集 端口探测 nmap -sT --min-rate 10000 -p- 10.10.11.35 -oA ./port 发现开放了53,88,389等端口,推测为域控 进一步信息收集,对爆破的端口进行更加详细的扫描 小tips:对于众多的端口&…...
ue5 motion matching
ue5.5 gameanimationsample 先看动画蓝图 核心两个node 第一个是根据数据选择当前的pose 第二个是缓存一段历史记录,为第一个node选择的时候提供数据。 在animinstance的update方法中 每帧都更新这个函数,每帧更新trajectory的数据 看看第一个node的…...
【从零开始的LeetCode-算法】383. 赎金信
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1: 输入&#…...
记录模板学习(持续更新)
目的: 学习C模板的编写,使用模板类包装一个可调用对象 可调用对象包括:普通函数, lambda表达式, 类成员函数 可以参考到QtConcurrent::run的实现,可以看到这个函数有非常多重载,其中可以接受类…...
Android hid 数据传输(device 端 )
最近一直在处理hid 数据需求,简而言之就是两台设备直接可以通过usb 线互相传递数据。 项目架构 为什么Device 端要采用HID(人机接口设备)的方式发送和接收数据呢? 主要是速度快,举个例子,就是鼠标移动&am…...
MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作
目录 第一章 以问题导入的方式,深入掌握原理基础 第二章 常用数据检索与R语言自动化下载及可视化方法 第三章 R语言数据清洗与特征变量筛选 第四章 基于ArcGIS、R数据处理与进阶 第五章 基于Maxent的物种分布建模与预测 第六章 基于R语言的模型参数优化 第七…...
第3章:文本样式 --[CSS零基础入门]
CSS(层叠样式表)允许你以多种方式定制文本的外观。以下是一些常用的文本和字体相关的CSS属性: 1.字体 字体系列 当然,下面是两个使用不同字体系列的CSS示例。每个示例都展示了如何指定一个字体系列,并提供备用字体以确保在用户的系统中找不到首选字体时仍有合适的字体可…...
mysql 架构详解
MySQL的架构可以自顶向下分为多个层次,每个层次都有其特定的功能和组件。以下是对MySQL架构的详细解析: 一、整体架构概述 MySQL的整体架构包括MySQL Connectors(连接器)、MySQL Shell、连接层、服务层、存储引擎层和文件系统层…...
无代码探索AI大模型:腾讯云函数计算的卓越实践
在数字化转型的浪潮中,人工智能(AI)技术已经成为企业提升竞争力的关键。然而,对于许多业务人员来说,技术门槛高、开发周期长等问题限制了他们快速探索和应用AI大模型的能力。同时,对于缺乏GPU资源的开发者来…...
解决Ubuntu在VMware关机时,老是一个光标在那里闪动几分钟,才能关机的问题
把强制关机的等待时间缩短即可。 编辑 /etc/systemd/system.conf 文件 sudo gedit /etc/systemd/system.conf把 #DefaultTimeoutStartSec90s修改为 #DefaultTimeoutStartSec10s改完之后重载一下: sudo systemctl daemon-reload然后关机再试一下,这样…...
word poi-tl 图表功能增强,插入图表折线图、柱状图、饼状图
目录 问题解决问题poi-tl介绍 功能实现引入依赖功能介绍 功能实例饼图模版代码效果图 雷达图(模版同饼图)代码效果图 柱状图(模版同饼图)代码效果图 附加CustomCharts 工具类CustomChartSingleSeriesRenderData 数据对象CustomCha…...
常见网络钓鱼类型
网络钓鱼是一种网络攻击,是指具有恶意动机的攻击者伪装欺骗人们并收集用户名或密码等敏感信息的一系列行为。由于网络钓鱼涉及心理操纵并依赖于人为失误(而不是硬件或软件漏洞),因此被认定为是一种社会工程攻击。 1. 普通网络钓鱼(群攻&…...
数字图像处理考研考点(持续更新)
一、数字图像基本概念 1、人眼视觉特性 (1)眼睛上有两类光感受器:锥状体和杆状体 锥状体(锥细胞):约 700 万个,对颜色高度敏感,每个锥状体都连接到神经末梢,人可以充分地分辨图像细节。锥细胞…...
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba介绍 在当今的软件开发领域,微服务架构因其灵活性、可扩展性和独立性等优势而备受青睐。Spring Cloud Alibaba 作为一款强大的一站式微服务解决方案,为开发者提供了丰富的工具和组件,帮助他们轻松构建和管理复杂的微服务…...
ubuntu16.04部署dify教程
文章目录 1、克隆 Dify 源代码至本地环境2、加速Dify镜像文件下载3、启动 Dify4、访问 Dify5、更新 Dify6、常见问题及解决方案(1)容器restarting(2)日志文件上限(3)重置管理员密码(4࿰…...
JavaWeb文件上传
文件上传总览 文件上传主要是指将本地文件(包括但不限于图片、视频、音频等)上传到服务器,提供其他用户浏览或下载的过程。在日常生活中,我们在很多情况下都需要使用文件上传功能,比如:发微博、发朋友圈等…...
软件工程——期末复习(3)
一、题目类(老师重点提到过的题目) 1、高可靠性是否意味着高可用性?试举例证明自己的观点? 答:高可靠性不意味着高可用性 可靠性说明系统已经准备好,马上可以使用;可用性是系统可以无故障的持续运行,是一…...
apache的BeanUtils的Converter被相互污染覆盖问题
问题描述 apache的BeanUtils工具集中用来把map对象转换为java对象的BeanUtils#populate方法会因为单例的原因其转换器Converter被相互污染覆盖问题 maven依赖 <dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</…...
网络推广营销平台系统/新seo排名点击软件
Java Speech API : http://java.sun.com/products/java-media/speech/Java Speech API 允许开发人员将语音技术整合到 Java applet 和应用程序的用户界面中。这种 API 规定一个跨平台的接口来支持命令—控制识别器、听写系统和语音合成器。 这个综合 API 被分成几个…...
已经有域名如何做网站/黑龙江新闻
RequestMapping的分类 类级别的和方法级别的RequestMapping的几种形式: RequestMapping(method RequestMethod.GET) RequestMapping(value"/{day}", method RequestMethod.GET)//day为方法中的参数 RequestMapping (value"/new", method …...
wordpress欢迎页面模板下载/抖音关键词搜索排名
目录 一、put()方法的作用和执行流程 二、put()和putVal()源码 2.1 实现为空的方法 2.2 treeifyBin()方法 三、对比JDK1.7的put()方法源码 3.1 JDK1.7的put()方法执行流程 3.2 JDK1.7的put()方法源码 3.3 jdk1.7和jdk1.8的区别 一、put()方法的作用和执行流程 HashMap 只提供了…...
网站开发后端工资多少/百度网页制作
强化顶层设计,集中力量做大做强新一代信息技术产业,加快推进制造业等实体经济数字化转型,全面构筑工业数字经济新业态,拓展经济发展新空间 随着新一代信息技术与实体经济的深度融合,我国传统产业利用数字技术的广度深…...
专业营销型网站建设/百度下载安装最新版
1说明 kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。 kubeasz 从每一个单独部件组装到完…...
昆明餐饮网站建设/启信聚客通网络营销策划
1.你的软件系统有良好定义的结构吗?2.团队里的每一个人都以一致的方式实现特性吗?3.代码库的质量水平一致吗?4.对于如何构建软件,团队有共同的愿景吗?5.团队里的每一个人都得到只够的技术指导了吗?6.有适当的技术领导力吗? 转载于:https://www.cnblogs.com/vi…...