在本教程中,将对低成本简易驻车辅助传感器的安装和使用进行说明。当驾驶员停车入位时,本装置使用两只HC-SR04超声波传感器和四只压电蜂鸣器多次提醒驾驶员本车后面及周围汽车的接近情况,同时并发出哔哔声警报。我们还将解决其他问题,如汽车驾驶室内的防水和电线铺设等。
硬件
Arduino UNO (1x)
HC-SR04 超声波传感器 (2x)
Vcc 线 (长约 2m)
地线 (长约 2m)
触发线 (长约 1m)
回声线 (长约 1m)
压电式蜂鸣器 (2x)
USB 车载适配器
Aduino 塑胶外壳/外盒
软件
Arduino IDE
Github
工具
钳子
第1步:设置系统 首先请准备好下文所述电子设备,以便在车内实际安装汽车传感器前能对系统进行测试
图1:需准备好的硬件 — Arduino、塑胶外壳、超声波传感器、压电式蜂鸣器、电线和电源适配器 在本项目中,我们仅在车辆后部使用两只传感器:一只位于保险杠的左侧,另一只位于保险杠的右侧。大多数新车的辅助警报系统最多可配备六只传感器,从而可实现更精确的定位。
HC-SR04 传感器带有以下四根引脚:
VCC (电源5V)
触发器
信号回路
接地
上述模块功能的更详细说明,可参见上一教程:带部件和传感器的Arduino — 超声波传感器的用法
在下图2中列出了将汽车传感器和蜂鸣器连接到Arduino的图表。
图2:Arduino、超声波传感器和压电蜂鸣器的接线图 第2步:对Arduino编程
以下为编写一个程序的基本指南。一般而言,任何微控制器固件都包括以下四个基本元素:
整体思路理念和数据库的定义
设置功能
回路功能
其他功能
与软件开发不同,对微控制器进行编程时,通常对代码的大小进行适当限制。My Arduino Uno软件配有一个内存为32 KB的Atmega328。该配置足以满足本次应用的需要。
通过函数pinMode()和digitalWrite()可对微控制器引脚进行简易外围配置。本次应用中使用pinMode()函数来设置指定引脚的电流流向。可用作电流或信号的输入或输出。设置流向后,引脚仅可按该流向工作。可使用digitalWrite()函数将指定的数字引脚设置为HIGH(高)或LOW(低)。本例中将引脚2设置为另一个新增接地,用来连接其中一个器件的GND引脚。
为简单起见,特定义了一个函数为:calculateDistance(信号回路、触发器、蜂鸣器),该函数在其中一只传感器中优先使用,同时也可在另一只传感器中使用。
应用时首先激活一根引脚(触发器),经过一段时间后从另一个引脚(信号反馈)传回的反馈信息才能到达该引脚。针对这一时段,可以进行一些假设并计算信号反馈回路的相应距离(例如声速为340米/秒或29微秒/厘米)。可将该距离用作一个参数,用来确定蜂鸣器所发出的2000赫兹的嘟嘟声的频率(我通过反复试验才构想出这一方法,您可随意将其改为您喜欢的音调)。
同时使用了几个内置函数,如tone (引脚, 频率, 持续时间), digitalWrite (引脚), delayMicroseconds (持续时间), 以及pulseIn (引脚, 脉冲峰值).
第3步:制定适当的装配方案
找到汽车后部的防水区域。将传感器安装于该区域。在试验车里有几个可选位置:
尾灯罩
靠近汽车牌照灯
后保险杠上
若将汽车传感器放置于尾灯罩或后保险杠内,则必须钻孔以便超声波发射和接收。但钻孔也可能带来不利影响,如进水(淋雨、溅水等),因此钻孔必须十分考究。由于超声波无法透过密封剂,因此用密封剂作为防水材料不可取。而且很难根据传感器来确定孔的位置,从而难以避免衍射效应。
图3:配置超声波传感器时带来的衍射问题 /bta304 欲了解衍射波的更多信息,请单击此处。
基于上述原因,特将汽车传感器置于车牌附近,该区域中后备箱门/把手下方的间隙足够大,从而避免了钻孔的麻烦。在该位置仅需稍微调整传感器的方向,使之对准汽车的一角即可。
图4:找到传感器的合适位置 第4步:在车内配置硬件
找到Arduino和Piezo蜂鸣器所在位置。在该步骤中,需拆下车门并找到一个安全的空位,用来连接电子设备。
以下步骤十分有趣!通过车内面板就能看出您汽车的全新尺寸。车内空间很大,还可以加装很多设备(也可用于将来装修!)。还有许多内部电线为车辆安全元件供电。切勿触摸任何重要的电线。
您必须非常小心车内零件。
通过车牌固定孔将汽车外部的超声波传感器连接到Arduino上。这些固定孔必须做得够大,以确保所有八根电线都能顺利穿过,并预留支撑螺钉的空间。
Piezo蜂鸣器采用简单的双面胶带固定。
图5:在牌照右侧装配HC-SR04
图6:使用双面胶带固定其中一个Piezo蜂鸣器
图7:模块在行李箱门上所在的位置(车内视图)
图8:模块的位置(后视图)
总之,为不阻碍系统顺利运行,传感器和蜂鸣器需配备约6米长的电线。对电线进行颜色编码以防将来混淆,这点很重要。
第5步:在车内铺设线缆
硬件配置到位后,应连接所有电线。传感器需配备八根电线(两根信号回线、两根触发器线,两根地线和两根VCC电源线),所有电线都应通过牌照后面的孔铺设。应测试以下连接位置的导通性:
右传感器触发引脚 / Arduino 引脚 13
右传感器信号回路引脚 / Arduino 引脚 12
右传感器 GND / Arduino GND
右传感器 VCC / Arduino VCC
右蜂鸣器 + / Arduino 引脚 6
左传感器触发引脚 / Arduino 引脚 11
左传感器回路引脚 / Arduino 引脚 10
左传感器 GND / Arduino GND
左传感器 VCC / Arduino Vin
左蜂鸣器 + / Arduino 引脚 7
只要VCC和GND都连接上了,其顺序就无关紧要了。在Arduino Uno上设置了三个接地位置,使用Vin引脚作为其中一只传感器的电源,另一只传感器则连接到5V引脚。
其他Arduino版本有的直接连接到引脚上而未接地(即Arduino Micro只设置了两个接地位置),因此本研发项目中将引脚2设置为LOW(低)来增加额外接地。
图9:连接超声波模块和电源
图10:连接模块、电源和蜂鸣器 第6步:开启系统电源
汽车的电源是个难题。虽然汽车蓄电池输出12伏直流电压(若使用12V以上的稳压器则可能导致过热并损坏Arduino电路板),但也需要连接到交流发电机。启动发动机时,交流发电机可以产生极高的峰值电流,并烧毁与其连接的任何电子设备。该现象称为负载突降。点击这里可浏览更多相关资料。
因此,在Arduino和汽车电源之间建议采用中间级保护电路。一种可选做法是自行组装稳压器,但其设计超出了本文讨论的范围,因此本例中选用了旧的手机适配器。
本例中采用了USB凹孔端转接线。本例中更换了USB适配器的末端,并将其连接到凹孔端适配器。另一个备选方法是拔掉Arduino的凹孔端针脚并连接所有电线。 但会导致以下问题:四根导线中每一根的走向如何确定?参见以下图片。
图11:B型USB连接:通过USB供电时,仅需两根电线。
本例Arduino Uno中采用B型USB连接。其他型号也可采用其他USB连接类型,因此您必须检查自己的连接方式并根据您的需要进行调整。
最后,还必须为适配器配置合适的电源。以下几种方案可供选用:
点烟器插座(位置稍远)
倒车指示灯(非常方便,但本例中车门操作较复杂)
后挡风玻璃刮水器(不如倒车指示器雅观,但便于禁用)
最后终于在塑料面板后的所有电线之间找到了一个连接器。对电压进行了测量 …… 符合要求!
图12:测量车内各种连接器的功率和极性
在本教程中,我们开发了一种基于Arduino的相当简单、经济高效的驻车辅助系统,该系统中配有汽车传感器,当本车太靠近后面的车辆(后侧)时会向驾驶员发出警报。通过两只超声波接近传感器和两只压电蜂鸣器发出警报声来提醒驾驶员,警报声鸣响的频率表示本车与障碍物之间的距离。
我们使用Arduino创建了一套仿真应用程序,并测试了概念验证虚拟样机、用户体验虚拟样机和实用虚拟样机之间的临界差异。在今后的教程中,为在改进版的驻车辅助系统中实现更好的特征和功能,还可以对目前所讨论的概念进行扩展。您有何见解?
由于篇幅较长,请各位有需要的同学点击最下方阅读原文,到Device Plus查看详情哦!
Device Plus 文章内容及图片、视频素材均为原创,如有转载请注明出处,谢谢!
Device Plus网站由半导体和电子零件制造商ROHM(罗姆)创建,为喜欢创造事物和有抱负的工程师们提供有用的信息,旨在让工程师生涯更有趣。
虽然我们说“好玩”,但不仅仅是娱乐。它可以加深你在某一领域的知识,获得灵感,继而用灵感来改变世界。Device Plus文章的主题都与电子套件和工程师生活相关。我们将讨论“技术”主题下的人、事件、黑客/提示、工具、设备等。在这里既有知识加深,又不忘妙趣横生。我们希望能吸引热爱电子和机电一体化的您,并帮助您找到灵感。
全部0条评论
快来发表一下你的评论吧 !