声导航自行小车研究
扫描二维码
随时随地手机看文章
摘要 采用特定频率的声音信号作为声源对小车进行导航,使小车能够通过接收和处理声信号以确定声源方向和位置,并行进至声源处的功能。其中,用硬件滤波电路对声信号进行滤波处理,由FPGA计算声信号到达的时间差,单片机计算出声源偏离小车的角度和距离并产生PWM波驱动电机运转。在行进过程中,小车可以自主追踪移动声源,修正移动路径。准确到达声源处是声导航自行小车的重点和难点。
关键词 麦克风阵列;FPGA计时;声源定位;单片机控制电机
导航是引导飞机、船舶、车辆以及个人安全、准确地沿选定路线,准时到达目的地的一种手段。声定位技术是通过声传感装置接收声波,用电子装置将声信号转化为电信号,再利用计算机系统对电信号进行分析处理,以实现对声源识别、探测,并对声目标进行定位及跟踪的一门技术。声定位技术以其隐蔽性强、适用性高、成本低等优点而备受重视,在军事和民用领域有着广泛的应用和重要意义。因此声定位技术与导航技术结合形成有特色的声导航自行小车。
目前的声控移动装置多见于采用超声波技术躲避障碍物或通过某些语音语句控制装置的行进路线。声导航主要应用于声呐、潜水器、UUV(无人水下航行器)等水下装置,而在空气中采用声学方式进行导航的移动装置还不多见。项目所研究声导航自动小车,可以通过接收信号,判定声源位置,确定前进方向,并通过自主追踪移动声源,修正移动路径。
1 硬件设计
1.1 硬件总体概况
系统包括声发射模块、声接收模块、硬件滤波模块、计时模块、运算控制模块和电机驱动模块。系统结构框图如图1所示。整个系统可以分为声源定位和车体移动两大部分。系统各模块工作是由单片机MC9S12XS128控制协调的,它是整个系统的核心。单片机MC9S12XS128拥有128 kB的Flash程序空间,8通道24位中断定时器,8通道16位定时器,8通道PWM波输出和8通道12位精度的A/D转换器;同时集成CAN,SPI,SCI和UART等通信接口;使用16 MHz外部晶振,通过锁相环最高可倍频至96 MHz;最小系统包括外部晶振、复位电路及BDM调试接口电路等,且该单片机性价比较高。该芯片通过FPGA计算出的时间差计算出小车与声源的相对r和α,其中r是小车与声源间的距离,α是声源相对于小车的方位角,并产生合适的PWM,是小车到达声源处。
1.2 单元模块设计
1.2.1 声发射模块
模块采用SRF05超声波传感器作为系统的通信模块。作为发射端模块,没有使用Echo接收端的功能。该模块采用3节干电池供电,打开焊接的开关后,指示灯亮,模块自动发射8个周期的40 kHz方波超声信号。空气中几乎没有超声信号,选择40 kHz的超声信号可以忽略空间的其他声源的干扰。
1.2.2 声接收及硬件滤波模块
该模块也采用SRF05超声波传感器作为系统的通信模块,作为接收端,没有使用发射功能。接收端接收信号后,通过硬件滤波,判断是否为有效信号。图2为接收模块的电路图。若接收到40 kHz的信号电路导通,I/O口Echo输出高电平、OUT端输出1;若接收到的信号中没有40 kHz的信号电路不导通,I/O口Echo为低电平、OUT端为0。该系统使用了3个接收端,其位置关系如图3所示。
1.2.3 FPGA计算时间差模块
模块采用Altera FPGA CyclonelI EP2C5T144计算时间差。信号接收端1接收到有效信号后触发FPGA的计数器,接收端2接收到有效信号后停止计数且触发另一个计数器,接收端3接收到有效信号后停止计数。计数数值乘以FPGA的频率可以得到两个时间差。
1.2.4 单片机模块
采用飞恩卡尔智能车芯片MC9S12XS128。该芯片接收到FPGA传来的两个时间差,再利用麦克问距、声速算出声源距离小车的距离r和角度α,并产生合适的PWM驱动电机使小车准确到达声源处。
2 软件设计
图3为系统程序流程图。
2.1 声源定位算法设计
如图4所示,在小车上安装3个等间距的端口,间距为d,且3个端口在同一直线上。要测量的是点声源M与中心阵元曰的距离r与方位角α。
t12为声源到达端口1和2的时间差;t23为声源达到端口2、3的时间差;阵元间距为d;声速为c。在远场平面波近似条件下,由几何关系得
利用角度估计的远场条件,但仍不放弃柱面波和球面波的假设,由余弦定理和泰勒展开得到目标距离
2.2 FPGA算法设计
FPGA根据声接收模块的信号,进行时间差计算。当有一路信号有效时启动计数器开始计时,另外两路信号同时有效时停止计数,且计数结果可以借助计数器的存储功能得以存储。所用FPGA主频为50 MHz,时间差=计数值×0.02μs。根据两次的时间差值,利用定位算法可以实现定位功能。此外还设置了各路锁存信号,可以判别出声源的左右位置。图5为利用Quartus II所设计的FPGA简单计数的电路图。
2.3 电机驱动算法设计
选用双直流电机的小车模型进行试验,两个电机分别对小车左侧的两个车轮和右侧的两个车轮进行控制。预设PWM波的频率值为10kHz。在单片机MC9S12XS128芯片特定的应用程序CodeWarrior IDE中进行代码编写。针对不同的电机系统,需要进行实测并判断合适的转向、延时时间。
3 结束语
采用40 kHz的信号有利于避免外界干扰,使信号的误判率降低。系统采用FPGA与单片机结合的形式进行声导航,使小车能够准确到达声源处。电机运行环境和路面状况不同时,由r和α产生合适的PWM比较困难,需要不断调试,最终找到合适的PWM。该技术方案还可推广,搭载家用小型餐桌、儿童摇篮、电脑桌和餐厅餐车等以实现智能行走功能,为生活提供方便。