当前位置: 首页 > news >正文

基于单片机的汽车雨刷器装置

摘要

下雨天时道路十分模糊,能见度非常低,司机分散注意力去手动打开雨刷器开关会非常危险。据统计,全世界雨天行车的车祸事故有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、简述聚类分析的重要性及其在机器学习中的应用   聚类分析,作为机器学习领域中的一种无监督学习方法,在数据探索与知识发现过程中扮演着举足轻重的角色。它能够在没有先验知识或标签信息的情况下,通过挖掘数据中的内在结构和规律&#xf…...

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、连接层、服务层、存储引擎层和文件系统层…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...