基于Arduino的电动车与摩托车安全报警装置


  摘要:电动车、摩托车在为了人们出行提供方便的同时,也带来了安全隐患。本设计开发了一款用于安装在电动车、摩托车后置的危险探测装置。探测手段主要通过超声测距传感的方式,尽早地探测出电动车、摩托车在行驶过程中遇到的距离过近的“危险”,考虑到电动车、摩托车在形式过程中的“视野盲区”,该设计为超声测距探头搭载了旋转舵机,以方便探头周期性地对“视野盲区”的各个方向进行有效探测。同时设计开发了多种预警模块,包括语音提示预警模块、灯光闪烁预警模块,模块是基于arduino上位机、语音芯片做下位机的技术实现的。通过声光交替预警的方式,提高后方车辆的警惕性,尽可能地避免追尾。
  关键词: arduino;超声测距;上位机;串口通信;语音合成;预警装置
  中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)25-0273-04
  随着经济的快速发展,人们生活水平的提高,出行方式的选择成为与百姓生活息息相关的问题。在较为发达的城市,为了避免出行的拥堵,越来越多的人选择使用电动车、摩托车等便携式的出行方式。而在農村,电动车、摩托车也更是成为人们出行的主要交通工具。尽管这些交通工具较为方便,但是安全成为一大隐患,尤其是相对”铁包肉”的汽车来说,无疑增大了安全隐患[1]。本项目旨在通过相关的设计开发来解决这一隐患。
  1 系统总体设计
  1.1 总体设计概述
  本项目的重点在各个模块的独立开发以及各个模块的拼接。通过调研,各个模块所使用的外设都在arduino有统一的协议,有较为丰富的开发资源(Arduino ide),非常方便开发者做各种功能的组合实现。同时,语音模块和主控arduino板都是支持统一的串口通信协议,因此只需要做一个arduino上位机的通信逻辑,就可以完成该模块的设计。
  整个系统的功能可以分为如下的几个模块:超声测距传感器测距、舵机旋转、灯条闪烁逻辑、语音报警模块、主控板与语音模块的串口通信。
  系统的流程图如图1所示。
  1.2 主要设备介绍
  1.2.1 Arduinomega2560
  Arduino是一款便捷灵活、方便上手的开源电子原型平台[2],如图2所示。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。同时其软件平台的高级设计语言是基于c语言开发的,非常利于开发者快速学习和开发。同时其开源平台里有丰富的库可用,降低了编程的难度,并提高了本项目的可行性。
  1.2.2 超声波探测头
  超声波模块是一个用来测量距离的电子模块,如图3 所示。本项目采用的超声模块有如下参数特性:工作电压: 5V DC,工作温度:-25~+80℃,测量角度:30度范围内,测量范围:3-400cm(误差小于1cm),超声波频率:42kHz,控制方式:单数字口控制。
  根据其参数特性我们能够看到,它的测量角度难以完成对“视角盲区”的全部覆盖,所以搭载舵机模块非常有必要。同时其的探测距离是3~400cm,在实际的使用是非常适合的。
  1.2.3 舵机
  本设计实用的舵机型号是MEDS15,如图4。相对于市面上最便宜的9g小舵机,虽然旋转功能二者都可以实现,但是实践设计过程中发现,9g小舵机的舵机臂固定超声模块非常不稳定,而这一款舵机的舵机臂有一个常见尺寸的螺丝口,非常容易进行结构上的拓展,如图5所示。
  1.2.4 灯条
  针对灯光闪烁预警模块,这里简单的LED灯闪烁显然报警效果太差,所以这里我们采用的是多个RGB灯串联而组成的灯条,如图6所示。
  1.2.5 语音模块
  语音模块采用的是外包公司基于固定语料库开发的独立智能语音模块,如图7所示。该模块本身是为语音处理所进行量身剪裁的处理芯片,因此从概念上,语音模块(语音处理芯片和喇叭)虽然也是作为“外设”,但是与上面给出的外设是有一些区别的。
  1.2.6 串口通信、上位机、下位机简介
  上文提到,语音模块是一个独立的处理芯片,为其独立供电时,它可以进行固定词条的识别和反馈发声。加上控制灯条、舵机、超声模块的主控arduino处理芯片,因此在本设计中,有两个处理器,这就存在处理芯片之间的通信逻辑的实现以及二者“地位”的关系,作为要控制灯条、舵机、超声模块、语音模块的主控板arduino,它是上位机,而语音模块仅仅是用于接收通信信号之后,完成特定的预警输出,因此它是一个下位机。而两个处理器都支持统一的串口通信标准,因此他们之间的信号传输通过串口通信协议实现即可[3]。上下位机组合图如图8所示。
  2 系统实现
  对照上文给出的模块功能的分类,下面依次进行模块化的逻辑过程设计。
  2.1 超声模块
  上文提到,arduino开发资源丰富,针对超声模块,本设计的arguinomega2560开发板自带了常用的模块函数库,针对超声模块,直接调用函数即可返回测距结果。独立模块的测试参考如下[4]:
  #include"MeMegaPi.h"
  #include
  #include
  MeUltrasonicSensorultraSensor(PORT_8);
  void setup(){
  Serial.begin(9600);
  }