基于STM 32控制的声音导引系统
2010-03-20许崇言
许崇言
(西北民族大学榆中校区电气工程学院,兰州730124)
引 言
声音导引系统,主要是靠声音来完成对机器的智能控制,既方便又快捷。尤其是环境比较恶劣、不适合人类停留的地方,可以依靠声音来控制机器的正常运行。声音导引系统也是智能化控制的一个方面,对未来的智能化发展有较大的促进作用,对未来智能机器人的研究也大有帮助。
1 系统总体方案
如图1所示,声音导引系统由1个可移动声源S,声音接收器A、B和C构成。其中,可移动声源由发声模块和无线接收模块组成;A、B、C三处各放置一个声音接收器。
针对系统设计要求,可以采用以下实现方案:在O点设置一个STM 32单片机控制器,作为A、B、C三个声音接收器的公共控制器,并通过一个公共无线发送模块向可移动声源发送反馈信号。可移动声源开始运动并发出声音后,声音接收器A、B和C收到声音,将声音信号分别传送给STM 32单片机,由STM 32单片机判别A、B和C哪个声音接收器先接收到该声音信号。
若声音接收器B先收到,则不发送反馈信号给可移动声源。一旦声音接收器A先收到声音信号,表明可移动声源已经在定位误差的范围内到达Ox线,无线发送模块立即向可移动声源发送反馈信号,可移动声源接收到该信号后,立即停止运动。该方案电路简单,只需要一套无线收发系统,因此也节约了成本。
2 系统硬件设计
图1 声音导引系统示意图
本系统中,可移动声源由EDC-CarX V1.0-2007.06四驱版DIY竞赛小车、日本NEC电机控制ASSP芯片MMC-1、STM 32 Cortex-M 3系列单片机、无线接收模块、天线、蜂鸣器组成;音频接收模块、无线发送模块、天线组成声音接收器。
如图2所示,本系统主要靠无线模块实现主从控制器之间的通信,进而通过MCU-1来控制电机的运行状态。由于该系统要求系统的响应速度快、功耗低、稳定性高等,一般的C51单片机不能满足要求,综合考虑选择ST公司Cortex-M 3系列的STM 32F103VE作为主控芯片。该芯片基于专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex-M 3内核。其特点如下:工作时钟频率最高达到72M Hz;单周期乘法和硬件除法;256~512 KB的Flash,高达64 KB的SRAM;睡眠、停机和待机3种低功耗模式;2通道12位D/A转换器;多达13个通信接口;11个定时器,可以进行输入捕捉/输出比较/PWM信号通道和增量编码输入。
图2 系统框图
可移动声源电机部分由STM 32-F103VE、MMC-1和L293芯片驱动,其控制、驱动电路如图3所示。MMC-1和L293都是直流电机的控制芯片,这种组合更有利于精确控制。
图3 可移动声源控制、驱动电路
无线接收模块电路如图4所示。SCDRX2DS为无线接收模块的控制芯片。301是电路的稳压芯片,起到电压保护的作用。
3 软件设计
本系统的软件部分主要分为移动声音模块和声音接收模块。采用ST公司提供的函数库进行开发。该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征,以及每一个外设的驱动描述和应用实例。通过使用函数库,无需深入掌握细节,用户就可以轻松地应用外设,从而大大缩短了用户的编程时间,进而降低了开发成本。为了减小开发难度,本设计以引用函数库为主,添加自己的用户程序完成整个系统的软件部分。
3.1 移动声音模块
本模块主要实现移动声音控制器的功能。利用延时的方法产生高低电平来驱动蜂鸣器产生声源。通过SPI串口和NEC的从控芯片进行通信,发送命令进而来控制电机的运行状态。通过无线模块接收的信息先暂存在SPI的缓冲区中,以备控制命令及时发送。发送的控制命令有前进、后退、左转、右转和停止信号。移动声音模块控制流程如图5所示。
3.2 声音接收模块
本模块的功能主要是循环接收传感器的信息,根据3个接收器传回声音的顺序不同,来判断移动声音的位置和运行状态,进而将前进、后退、左转和右转控制命令发送给移动声源。由于该控制器的采样频率要高,因此把主控制器的时钟频率通过PLL调到最大72 MHz。声音接收模块控制流程如图6所示。
4 系统测试
测试仪器包括:100 MHz数字示波器,数字万用表(型号VICTOR-VC890D),STM 32单片机开发板,秒表,卷尺。
用示波器观测单片机、MMC-1芯片的输入/输出引脚信号波形,用数字万用表检查元件有无虚焊,从而确定对电机的驱动情况。
图4 可移动声源无线接收模块电路
图5 移动声音模块控制流程
图6 声音接收模块控制流程
结 语
可移动声源开始运动并发出声音,3个声音接收器收到来自可移动声源的声音信号后,立即发出各自载波频率的反馈信号给可移动声源。可移动声源根据接收到的不同信号频率判断反馈信号的源头,从而由MCU发出相应控制信号(前进、倒退和转弯),导引可移动声源在定位误差的范围内。
用秒表、卷尺测试小车运动的平均速度,并量取定位误差。假设小车初始位置为S0,小车停止位置为S且SS0与O′y间夹角为α,全程运动时间为t,S与Ox线间距离为d,则小车平均速度为SS0◦tan(α/t)。测试数据如表1所列。
表1 测试数据
[1]白延敏.单片机典型系统开发实例精讲[M].北京:电子工业出版社,2009.
[2]刘鲲,孙春亮.单片机C语言入门[M].北京:人民邮电出版社,2008.
[3]兰吉昌.单片机完全学习手册[M].北京:化学工业出版社,2009.
[4]求是科技.单片机典型外围器件及应用实例[M].北京:人民邮电出版社,2006.
[5]STM 32社区.全新STM 32微控制器函数库,2009-01.
[6]STM 32社区.STM 32F10x参考手册,2008-12.