1.1课题背景
现有的婴儿车大都需要人工操作,安全装置旨在人工制动,不能对婴儿的所处的环境以及婴儿的哭喊作出相应的应答。停放时需要人工打开刹车,但是很多家长往往意识不到安全隐患的存在从而忽略这个步骤,导致安全事故的发生,所以现在的婴儿车安全装置并不能解决无人看管时引发的安全隐患。
基于以上几点我们设计出了智能婴儿车,具有很强的可控性,很大程度上减少了安全隐患,很大地提高婴儿车的安全性,并设置安抚婴儿的功能,它能帮助父母花更少的时间更好得照顾好婴儿,而且能在照顾好孩子的同时做些家务及一些其他事情。又可以通过自动移动和自动避障及自动追踪,使得妈妈们也可腾出手来处理家务或者休息。从而大大的减轻了婴幼儿父母的劳动负担。
本课题采用STM32系列微控制器,目前此处理器能实现高速的运算,而对其外设的配置可以带来极好的控制和联接能力;具有先进的内核结构、优秀的功耗控制、性能出众而且功能创新的片上外设、高度的集成整合、提供丰富的函数库易于开发等一系列特点。可适宜作为智能婴儿车的主控制芯片。
1.2研究现状
在国内外市场也有一些婴儿用的摇篮,功能较少,达不到智能化,摇摆幅度也没有进行过检测,市场上的大部分摇篮摇摆幅度大小不一。主要依靠用户主观感觉来决定系统的运行,不具有科学性,因此并没有得到太广泛的应用。本作品将可编程控制器和传感器检测技术应用到宝宝摇篮,是目前市场上所没有的。
1.3科学意义及应用前景
智能婴儿摇篮和普通摇篮相比,功能强大,声控、遥控、电动、智能跟踪、智能避障集于一体,能够很好的为宝宝及其监护人提供很大的方便,使婴儿和监护人都能有充足的睡眠环境,使睡眠问题不再困扰婴儿的健康成长和监护人的正常作息。随着社会经济的发展,文化的进步,越来越多拥有宝宝的家庭需要一款智能婴儿摇篮,在未来将体现其优越性。
本作品将可编程控制器和传感器检测技术应用到婴儿车中,和市面上的普通
婴儿车相比,增添了声控、遥控、电动、智能跟踪、智能避障、温度控制、哭声
检测等功能,为婴儿及其父母提供了便捷。这是目前市场上所没有的,并且本作
品所采用的 stm32 单片机处理方式相对目前的简单的数字芯片处理方式比较而
言更加方便快捷,安全稳定,功耗低,更适用于对婴儿的监控护理。
1.4本文所做的工作
本作品所采用的 stm32 单片机处理方式进行了智能小车自动避障技术的研究。论文的研究内容主要包括:声控、遥控、电动、智能跟踪、智能避障、温度控制、哭声检测等功能。
(1)根据提出方案的功能需求,对整个嵌入式系统的软件和硬件两个方
面进行论证和可行性分析。例如,核心处理器的选型、无线路由器的改造等。
(2)根据主控制器的基本结构和特点,设计总体硬件电路模块。总体硬
件电路模块的设计包括电机驱动电路设计、红外避障电路设计、无线传输电路
设计等。然后根据硬件电路,采用Altium Designer 软件绘制硬件电路图和
PCB电路板,为视频监控智能小车软件的实现提供支持。
(3)选择符合系统设计需求的系统软件,并在该软件的基础上编写驱动代
码和应用软件代码。针对系统功能的具体要求,从系统信号稳定传输的角度出
发,对电机驱动、无线路由器系统的改造、并完成代码的编写与调试。最后对相关的代码做了局部测试,测试效果较好,达到了期望的目标。
(4)把硬件开发板和软件平台结合起来,对智能婴儿车整个系统进行了整体测试。对测试中出现的问题进行了相关的改进工作,进一步提高系
统工作的可靠性和稳定性。
(5)最后对视频监控智能婴儿车系统的设计进行了总结和后期工作做出了
展望。
2智能车的方案设计及原理
2.1方案设计
1、集成驱动板驱动小车。
2、摄像头实现监控功能。
3、通过AD采集数据,数码管显示电压数值。
4、利用红外管实现避障功能。
5、利用遥控器红外控制小车运动。
6、嵌入式芯片控制处理信息。
7、智能识别语音,当识别到婴儿哭声时,音乐响起,心形图案出现,让Baby的心情变的愉悦。
8、液晶屏显示功能命令,语音可控制屏幕的亮灭。
9、实时温度的采集,监控温度的变化,可以使婴儿处于一个更加舒适的环境中。
10、GPS定位,随时监控智能车的位置,使婴儿的安全的到保障。
2.2系统实现原理及方法
2.2.1 系统硬件设计
一、硬件框图
图1 硬件框图
二、硬件功能
(一)智能婴儿车车身部分
1.L298N集成驱动板可以驱动婴儿车四驱运动
集成驱动板采用一个核心板+驱动板构成的主板。通过AD作出对应最小系统板的各个外设 IO引到驱动板上 引到驱动板上 ,使得一个主板上集成了红外对管、 电机控制超声波模块、 WIFI模块的功能 IO 口。将产品对应的模块接线到主板上即可完成 口。将产品对应的模块接线到主板上即可完成线路搭建。
图2 驱动板
2. WIFIWIFI 模块 ESP8266 +OV6760 摄像头实现远程在线视频监控
WIFI 模块制作成一个由小型单片机控集OV6760 摄像头于一体的模块,通过 串口信发送给单片机WIFI 将图像数据信息发送到手机终端,手机还原图像即可实现 WIFI 视频实时远程监控。
3. 电池组+电压 数显码管示电压
数显码管示电池组设定为 8V,为驱动板提供 8V 的电源,同时通过降压路给最小系统板提供5V 直流电源,数码管显示电压值大小。
4. HC -SR04超声波进行定位追踪
本项目采用 HC -SR04 超声波模块,声呐通过单片机控制的脉冲信号按固定频率发射超声波,按固定频采集到的信号通过数据运算处理得到距离,可以实现超声波测的功能进而定位追踪。
5.IRLINK红外对管可以实现避障行驶
红外对管和 HC -SR04 超声波模块的发送接收比较类似,按固定脉冲频率发射红外线,按固定频率接收反射回来的红外线,通过ADC转换得到高低电平来判别是否有障碍物,便可以进行避驶。
6. 红外接收管可以解码且实现遥控器
红外接收管起接收遥控器接收到的信息,通过软件红外解码得到遥控指令。
7.STM32数据处理
本作品使用 STM32 微型处理器,STM32 中对所有传感器所数据进行处理和标定,作为一个数据中转点,直接将传感器得到信息送给手机端反馈回给其他传感器。
8. LCD1602显示距离数据和模式选择
(二)智能婴儿车床部分
1.TFT LC D触摸彩色液晶屏
产品的LCD彩屏采用的是正点原子公司封装好2.8寸的TFT-LCD 电阻触摸液晶屏,用于呈现车床部分各个传感器和模块采集的信息包括GPS+RTC、语音、识别、温度。
2. LD3320进行语音识别和控制
系统的主控 M CU反复启动识别过程。如果没有人说话就没有识别结果,则每次识别过程的定时到后再启动一个识别过程;如果有识别结果,则根据识别作相应处理后 (比如播放某个声音作为回答 )再启动一个识别过程。通过这个过程识别便可以进行语音和控制甚至人机交互控制。
图3 语音识别模块
3.DS18B20进行温度采集和控制
DS18B20是一种比较常用的温度传感器。采集到信息是电压变化的模拟信息,通过单片机ADC模数转换得到具体温度值,设置阈值可以进行温度控制。
4.GPS进行位置信息解析,呈现地理位置信息
GPS 部分采用的是GPS/GPRS/GSM A7 GPS/GPRS/GSM A7 模块,通过硬件处理得到GPS二值化数据,再通过单片机进行软件 GPS 解析得到 GPS+ RTC 信息并显示到液晶屏上。
图4 GPS模块
5.STM32数据处理
本作品使用 STM32 微型处理器,STM32中对所有传感器所传数据进行处理和标定,作为一个数据中转点,直接将传感器得到信息呈现到TFT LCD液晶屏上的反馈回给其他传感器。
总的控制板如下:
图5 智能小车控制器电路板(正面)
图6 智能小车控制器电路板(反面)
2.2.2 系统软件设计
软件系统主要是分为车身和床两部对婴儿进行控制。车身部分以STM32为MCU对红外管感应接收、超声波距离信息采集、遥控红外信息采集和处理实现三种行驶模式,同时通过ESP12550软件进行WIFI在线图像呈现。车床部分LD3320的语音信息采集、温度通过 ADC 模式信息采集 、GPS 信息解析实现实时反馈和人机交互控制等功能。
一、功能模块
(一)车身内核
车身部分内核STM32 主要控制三种模式即避障行驶、追踪和遥控行驶的电机驱动,同时还加入了WIFI多点传输视频图像的功能,将电机信息和模式选择信息呈现LCD1602 。
图7 LCD1602
(二)车床内核
车身部分内核同为STM32,主要外挂LD3320板载小咪咕头的模块、GPS A7模块、温度传感器、TFT LCD彩屏、SD卡文件系统等。相互之间彼此又有紧密的联系。以STM32系统板作为中央微控制器,识别并解析LD3320接收到的语音信息,如果匹配代码中对应的信息,则识别成功,识别成功的信息反馈到TFT LCD彩屏上,识别成功以后控制对应的元器件功能和人机交互功能。GPS在室外解析得到的地位和RTC信息反馈并呈现到LCD彩屏上,温度传感器检测的模拟信号通过ADC模数转换得到相应的温度数据并呈现到LCD彩屏上,同时设置了温度阈值,在阈值范围内会执行相应的温度控制功能。
二、 功能实现
(一)PWM电机调制
PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。
电枢电压“占空比”与平均电压关系图如下,
图8 PWM控制波形图
图9 占空比分布图
当电源电压不变的情况下,电枢端电压Uav取决于占空比的大小。改变n就可以改变端电压的平均值.从而达到调速的目的。
(二)模式选择
整个婴儿车的行驶模式,从软件部分共设置了3种模式,分别为避障自由行驶、红外遥控行驶和定位追踪三种模式。
避障自由行驶使用的是一对红外对管避障,可以180度大范围避障,但凡18 度范围内有障碍物都会进行判别和处理。两对管通过脉冲式发射红外线根据光学反射原理反射回来的红外束接收以后就会进行判别是否遇到障碍物,将接收反射回来的红外量多少作为模拟量转换为数字量的高低电平进行判别实现,此模式适合地理环境较为复杂的情况下。
定位追踪模式是借鉴四旋翼超声波高原理来实现的,超声波声呐产生超声波通过反射以及声学原理再通过单片机运算处理可以得到反射回来的距离,始终控制一定的距离,可以实现定位追踪行驶模式这种模式适合人群较少且地面环境较为平缓的环境使用。
红外遥控模式是基于红外解码原理,通过红外解码算法可以得到对应红外按钮的命令值,再通过状态机可以实现对应的电机控制,进而运行红外遥驶模式,此模适合人群较多的环境下使用。
(三) WIFI实时图像
ESP8266可以实现的串口透传图像,串口可以进行图像数据传输,传输的可靠性好,最大的传输速率为:460800bps 。
ESP8266 模块支持STA/AP/STA+AP三种工作模式。
STA 模式:ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。
AP 模式:ESP8266模块作为热点,实现手机或电脑直接与模块通信局域网无线控制。
STA+AP 模式:两种模式的共存模式,即可以通过互联网控制实现无缝切换,方便操作。
在串口模式下,手机连上 WIFI 以后,通过手机 APP 终端,设置基地址和图 像传输地址便可以进行在线 WIFI 图像显示,实现远程在线视频通信。
(四)人机交互
在人机交互开始过程中需要进行LD3320的初始化,识别操作顺序如下:
语音识别用初始化(包括通用初始化)→写入识别列表→开始识别,并准备好中断响应函数,打开中断允许位。这里需要说明一下,如果不用中断方式,也可以通过查询方式工作。在“开始识别”后,读取寄存器B2H 的值,如果为21H 就表示有识别结果产生。在此之后读取候选项等操作与中断方式相同
初始化的识别代码如下:
void LD_Init_ASR()
{nLD_Mode=LD_MODE_ASR_RUN;
LD_Init_Common();
LD_WriteReg(0xBD,0x00);
LD_WriteReg(0x17,0x48);
delay( 10 );
LD_WriteReg(0x3C,0x80);
LD_WriteReg(0x3E,0x07);
LD_WriteReg(0x38,0xff);
LD_WriteReg(0x3A,0x07);
LD_WriteReg(0x40,0x00);
LD_WriteReg(0x42,0x08);
LD_WriteReg(0x44,0x00);
LD_WriteReg(0x46,0x08);
delay( 1 );
}
根据这个循坏模式可以实现识别模式,再通过MP3播放函数便可实现人机交互。
六、温控电路
采用DS18B20作为温度传感器,得到的是一个电压变化的模拟量,通过ADC模数转换得到一个二值化数据,再通过转换得到电压值,通过温度与电压的转换公式:
再通过设定阈值便可以实现温控。
七、GPS解析
GPS模块的数据处理本质上还是串口通信程序设计,只是GPS模块的输出遵循固定的格式,通过字符串检索查找即可从模块发送的数据中找出需要的数据,常用的GPS模块大多采用NMEA-0183 协议。NMEA-0183 是美国国家海洋电子协会(National Marine Electronics Association)所指定的标准规格,这一标准制订所有航海电子仪器间的通讯标准,其中包含传输资料的格式以及传输资料的通讯协议。
GPS模块的应用程序设计主要分为两部分,第一部分为串口的设置于数据读取,第二部分为数据的分析和需要数据的提取。
GPS解析流程如下:
图10 GPS解析算法流程图
与其他的关于设备编程的方法一样,在Linux下,操作、控制串口也是通过操作起设备文件进行的。在Linux下,串口的设备文件是/dev/ttyS0或/dev/ttyS1等。因此要读写串口,我们首先要打开串口,然后根据GPS模块的配置参数对串口的波特率、校验、流控制等进行设置,这些参数设置均通过对termios结构中c_cflag的配置实现。
在GPS数据的处理上首先将窗口数据存入一个字符串,接着通过对字符串数据的判断来提取数据内容,判断分为两步,首先判断是什么类型的数据,在本程序的设计中需要读取$GPRMC和$GPGGA两组数据,因此首先判断字符串GPS_BUF[5]是C还是A,由于数据是通过符号“,”进行隔开,因此通过查找“,”来确定数据位置。在实现上将得到逗号位置函数单独封装调用。
3系统测试
3.1系统测试概述
在系统基本模块设计完成和软件设计调试成功的基础上,将二者进行结合,需要对系统的整体功能性进行测试。通过测试可以找出设计过程中出现的问题,以及最终系统是否达到了设计方案的要求,找出测试出现问题的原因或与目标不符的部分,从而达到最终实现目的,完善各种功能。在软硬件总体方案确定好之后,需要对软硬件的各个模块进行单独测试,确保每个模块都能正常工作。在每个模块都测试成功之后,逐步把各个分模块整合到一起,进行整机测试,逐步实现整机系统的各项性能以及功能。
3.2系统测试主要内容
文章来源于:电子工程世界 原文链接