基于SPCE061A的智能垃圾桶设计
2017-09-14北方工业大学电子信息工程学院范馨予
北方工业大学电子信息工程学院 范馨予 刘 红 王 坤
基于SPCE061A的智能垃圾桶设计
北方工业大学电子信息工程学院 范馨予 刘 红 王 坤
本设计提出了以SPCE061A单片机为控制核心,由语音识别、避障、声源定位和自动控制部分构成的智能垃圾桶。硬件主要部分由超声波模块、拾音器、驱动芯片和S90舵机构成,软件主要基于语音识别、声源定位和避障算法完成各功能。本设计不仅能执行基本前后左右的语音命令,还能根据用户语音定位并来到用户周围,在传统垃圾桶的便捷性和灵活性上实现了创新。
智能垃圾桶;语音识别;避障;声源定位
1 引言
为了提高人们生活质量,满足人们对于智能生活的需求,智能家居产品逐渐发展起来。比如自动开闭的智能窗帘、根据用户语音控制播放状态的智能音箱和用手机控制的智能冰箱等。这些智能家居产品使人们生活更加便捷,工作更加高效[1]。随着智能家居产品在日常生活中的渗透,人们对更多生活用品提出了智能化和人性化的要求,以改善其生活品质。例如传统的垃圾桶只能固定放置在一个位置,当人们扔垃圾的时候,需要走到垃圾桶前面。就此,本文提出了一种基于SPCE061A语音控制的智能垃圾桶设计方案。通过语音命令对垃圾桶进行控制,方便了用户扔垃圾的行为,还增强了用户和智能家居的互动。同时桶盖的自动控制避免了垃圾桶桶内垃圾和室内空气的长时间直接接触,有效地控制垃圾桶内细菌的散播,较传统垃圾桶更具环保性。
本设计的创新性在于实现了用户和垃圾桶之间的“沟通”,使传统固定死板的垃圾桶变得灵活和人性化。在给用户日常生活中扔垃圾行为带来了便利的同时保证垃圾桶的清洁,还减少了室内垃圾桶的总数量,使室内更加简约。
2 功能概述
(1)当垃圾桶收到语音信号时先判断是否是用户给出的语音命令,接着判断语音命令的具体内容。语音命令共分两种类型:一种是固定语音命令,例如前、后、左、右、打开和关闭,此时垃圾桶会根据匹配成功的特定语音命令做出相应动作;另一种是用户自定义的语音命令--垃圾桶在自定义命令匹配成功后会根据用户的声音进行定位并行进至用户周围,这个过程不需要用户进行移动。
(2)垃圾桶在行进过程中会对前方障碍物进行距离测量。遇到障碍会绕开继续行驶且调整行进方向,使其最终能到达声源点。
(3)垃圾桶的桶盖状态默认为关闭状态,只在到达用户周围后自动打开一段时间或是用户给出打开语音命令后打开,实现了对垃圾的隔离。
3 设计方案及原理
本设计以SPCE061A单片机作为智能垃圾桶系统的控制核心,由语音识别、避障、声源定位和自动控制四部分构成,系统结构图如图1所示。语音识别部分由麦克风和SPCE061A语音模块构成,避障部分由HC-SR04超声波模块构成,声源定位部分则由拾音器阵列构成,自动控制部分则分别由SG90舵机、L298N芯片和电机、垃圾桶桶盖等机械结构组成。
图1 系统结构图
3.1 SPCE061A单片机
本设计使用的SPCE061A单片机外围电路如图2所示,在OSC0、OSC1端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。其它不用的电源端和地端接上0.1μF的去藕电容提高抗干扰能力。PB2作为EXTI2中断源和超声波模块连接,PB4~PB7坐为普通IO口和L298N驱动芯片相连,PB9则为TIMERB的PWM输出IO口给S90舵机输入脉冲。
图2 SPCE061A外围电路
3.2 定位原理
本设计使用的声源定位方法是基于拾音器阵列的时延法,该方法利用空间中某一点位置发出的声音信号到达拾音器阵列中不同拾音器的时间差实现定位[2]。假设四个拾音器分别置于图中A、B、C、O四个点的位置,对应的坐标分别为(a,0,0)、(0,b,0)、(0,0,c)、(0,0,0)。其中声波的传播速度为v,声源的位置S(x,y,z),A点接收到声波和O点接收到声波的时间差为,B点接收到声波和O点接收到声波的时间差为,C点接收到声波和O点接收到声波的时间差为。由直角三角形的三边关系可得函数方程组:
可联立求解得x,y,z,但求解步骤复杂。为方便计算,在和的情况下,可以忽略z,转化到的二维平面求解[3],简化方程组如下。设声源到O点的距离和OB连线夹角为α,S到O的直线距离为l。
进而求得x,y的值。
在实际生活应用场景中,声源的高度决定于用户发出语音命令时的高度,且垃圾桶此时一定在用户轻松投掷垃圾的范围之外,声源高度远小于用户和垃圾桶的距离。因此,本设计使用忽略z轴的二维平面定位法进行声源定位。
3.3 自动控制
自动控制包括垃圾桶行进和垃圾桶桶盖的自动控制。行进的自动控制主要是SPCE061A在识别语音命令后,对电机直接进行输出;垃圾桶桶盖的自动控制通过S90舵机实现。本设计的智能垃圾桶桶盖为圆形,桶盖上有过圆心的轴和SG90舵机轴相连,舵机转动则会带动桶盖绕桶轴翻转。
4 软件设计
本设计的软件主要包括特定语音识别算法,定位算法和避障算法。
系统总流程图如图3所示。在接收声音信号后首先判断语音指令,根据指令类别进行相应行为的执行。不是有效命令当没有接收到指令不作任何动作。
图3 系统流程图
4.1 特定语音识别算法
特定的语音识别需经过语音预处理、特征提取、语音模块库建立的训练阶段后,才能进行正确的识别。识别阶段则有特征提取和语音库匹配检验分的步骤。在训练阶段,SPCE061A从采集的语音样本中提取出语音特征信息,建立特征模型。在识别阶段,SPCE061A对采集到的语音样本进行分析处理,将新捕获的特征模型与已有的特征模型进行对比,如果二者相似,则输入的语音被识别[4]。
建立用户特定的语音库是前期语音训练的结果,并且无论自定义或非自定义的语音命令都要训练后才能被训练的用户识别。
4.2 定位算法
因为声源在垃圾桶的360°范围内都有几率出现,所以系统采用四个拾音器以矩形方式排列。声源发出声音的时候,四个拾音器都会接收到信号,并先后输出高电平。采用查询法查询和拾音器相连的IO电平,结合定时器,取倒数三个输出高电平的拾音器构成xoy坐标系,最后输出的为坐标系原点。
由3.2定位原理可以得基于当前坐标系下的声源定位结果x,y,进而求得原点和声源的直线距离与当前坐标轴x轴的夹角α。规定与矩阵某一边垂直的方向固定为垃圾桶的前进的正方向,根据坐标轴的不同一共有四种情况。如图4所示,为了尽量以直线最短距离到达声源定位处,垃圾桶会根据当前原点和夹角α原地旋转θ角度,使垃圾桶前进的正方向正对声源。
图4 四种坐标轴下小车旋转角θ情况
4.3 避障算法
本设计在垃圾桶前、左、右放置三个超声波传感器,并设定一个合适的门限值。当超声波测量的距离小于门限值时便判断为检测到障碍。根据文献[5]提出的避障算法进行改进,在基于定位算法调整好垃圾桶前进方向后,垃圾桶默认向正前方即声源处行进。当检测到前方有障碍时,如果左边没有障碍,垃圾桶会左拐;如果右边没有障碍,垃圾桶会右转(默认向左拐);如果左右两侧都有障碍,垃圾桶会先后退,再重新进行判断。
5 结论
本设计针对现有垃圾桶功能单一和缺乏灵活性的问题,提出了根据特定用户的语音命令进行识别且定位,在行进过程中能自动避障且能自动控制桶盖的智能垃圾桶。本设计在智能垃圾桶与用户的交互方面实现了创新,同时具备智能家居产品的实用性。下一步可以继续优化的方向有:垃圾桶的特定语音识别能切换为非特定语音识别[6],便于多人同时使用垃圾桶;驱动电机使用步进电机对行进速度进行控制,使行进更加平稳;对于远距离的定位采用蓝牙、wifi等设备进行定位,相当把独立的垃圾桶加入智能家居构成的网络中;添加容量提醒和自动打包功能[7],让智能垃圾桶更加人性和环保;改进现有的避障算法,当前算法不能应对碰到类似墙角的大面积障碍和障碍物密集的情况,为了应对生活中各种情况,避障算法还有很高的提升空间。
[1]朱敏玲,李宁.智能家居发展现状及未来浅析[J].电视技术,2015,04: 82-85+96.
[2]崔燕南,刘永康,李开良,朱松盛,王伟.基于声音传感器阵列的空间定位系统[J].科技导报,2010,19:46-49.
[3]龚小章.特定声识别与定位系统[J].电子科技,2011,08:36-38+45.
[4]帅晓勇,陶黄林,吕敬祥.基于SPCE061A单片机的嵌入式语音识别系统设计[J].井冈山大学学报(自然科学版),2015,02:48-53.
[5]柴锁柱.基于超声波测距的自动避障智能车设计[J].沧州师范学院学报,2016,01:56-58.
[6]黄涛,胡宾.基于SPCE061A单片机的非特定人语音识别设计[J].微计算机信息,2006,08:19-20+226.
[7]邱兰栏,孙未,许亚能,余德明,蒙海珠.自动封装垃圾桶的设计与研制[J].科技资讯,2016,10:44-46+48.