当前位置:首页 > 嵌入式 > 嵌入式硬件

摘要:设计了一个基于STM32控制的声音导引系统。该系统由1个可移动声源S和3个声音接收器A、B、C构成。由一片从控STM32单片机控制无线发送模块,实现声音导引信号的发送。主控单片机根据无线接收模块所接收到的信息来判断可移动声源运动的启停。

引言
声音导引系统,主要是靠声音来完成对机器的智能控制,既方便又快捷。尤其是环境比较恶劣、不适合人类停留的地方,可以依靠声音来控制机器的正常运行。声音导引系统也是智能化控制的一个方面,对未来的智能化发展有较大的促进作用,对未来智能机器人的研究也大有帮助。

1 系统总体方案
如图1所示,声音导引系统由1个可移动声源S,声音接收器A、B和C构成。其中,可移动声源由发声模块和无线接收模块组成;A、B、C三处各放置一个声音接收器。


针对系统设计要求,可以采用以下实现方案:在O点设置一个STM32单片机控制器,作为A、B、C三个声音接收器的公共控制器,并通过一个公共无线发送模块向可移动声源发送反馈信号。可移动声源开始运动并发出声音后,声音接收器A、B和C收到声音,将声音信号分别传送给STM32单片机,由STM32单片机判别A、B和C哪个声音接收器先接收到该声音信号。
若声音接收器B先收到,则不发送反馈信号给可移动声源。一旦声音接收器A先收到声音信号,表明可移动声源已经在定位误差的范围内到达Ox线,无线发送模块立即向可移动声源发送反馈信号,可移动声源接收到该信号后,立即停止运动。该方案电路简单,只需要一套无线收发系统,因此也节约了成本。

2 系统硬件设计
本系统中,可移动声源由EDC-CarX V1.0-2007.06四驱版DIY竞赛小车、日本NEC电机控制ASSP芯片MMC-1、STM32 Cortex-M3系列单片机、无线接收模块、天线、蜂鸣器组成;音频接收模块、无线发送模块、天线组成声音接收器。


如图2所示,本系统主要靠无线模块实现主从控制器之间的通信,进而通过MCU-1来控制电机的运行状态。由于该系统要求系统的响应速度快、功耗低、稳定性高等,一般的C51单片机不能满足要求,综合考虑选择ST公司Cortex-M3系列的STM32F1103VE作为主控芯片。该芯片基于专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex-M3内核。其特点如下:工作时钟频率最高达到72 MHz;单周期乘法和硬件除法;256~512KB的Flash,高达64 KB的SRAM;睡眠、停机和待机3种低功耗模式;2通道12位D/A转换器;多达13个通信接口;11个定时器,可以进行输入捕捉/输出比较/PWM信号通道和增量编码输入。
可移动声源电机部分由STM32-F103VE、MMC-1和L293芯片驱动,其控制、驱动电路如图3所示。MMC-1和L293都是直流电机的控制芯片,这种组合更有利于精确控制。


无线接收模块电路如图4所示。SCDRX2DS为无线接收模块的控制芯片。301是电路的稳压芯片,起到电压保护的作用。

3 软件设计
本系统的软件部分主要分为移动声音模块和声音接收模块。采用ST公司提供的函数库进行开发。该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征,以及每一个外设的驱动描述和应用实例。通过使用函数库,无需深入掌握细节,用户就可以轻松地应用外设,从而大大缩短了用户的编程时间,进而降低了开发成本。为了减小开发难度,本设计以引用函数库为主,添加自己的用户程序完成整个系统的软件部分。
3.1 移动声音模块
本模块主要实现移动声音控制器的功能。利用延时的方法产生高低电平来驱动蜂鸣器产生声源。通过SPI串口和NEC的从控芯片进行通信,发送命令进而来控制电机的运行状态。通过无线模块接收的信息先暂存在SPI的缓冲区中,以备控制命令及时发送。发送的控制命令有前进、后退、左转、右转和停止信号。移动声音模块控制流程如图5所示。


3.2 声音接收模块
本模块的功能主要是循环接收传感器的信息,根据3个接收器传回声音的顺序不同,来判断移动声音的位置和运行状态,进而将前进、后退、左转和右转控制命令发送给移动声源。由于该控制器的采样频率要高,因此把主控制器的时钟频率通过PLL调到最大72 MHz。声音接收模块控制流程如图6所示。

4 系统测试
测试仪器包括:100 MHz数字示波器,数字万用表(型号VICTOR-VC890D),STM32单片机开发板,秒表,卷尺。
用示波器观测单片机、MMC-1芯片的输入/输出引脚信号波形,用数字万用表检查元件有无虚焊,从而确定对电机的驱动情况。
用秒表、卷尺测试小车运动的平均速度,并量取定位误差。假设小车初始位置为S0,小车停止位置为S且SS0与间夹角为α,全程运动时间为t,S与0x线间距离为d,则小车平均速度为SS0·tan(α/t)。
测试数据如表1所列。

结语
可移动声源开始运动并发出声音,3个声音接收器收到来自可移动声源的声音信号后,立即发出各自载波频率的反馈信号给可移动声源。可移动声源根据接收到的不同信号频率判断反馈信号的源头,从而由MCU发出相应控制信号(前进、倒退和转弯),导引可移动声源在定位误差的范围内。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

hmi是Human Machine Interface 的缩写,"人机接口",也叫人机界面。人机界面(又称用户界面或使用者界面)是系统和用户之间进行交互和信息交换的媒介, 它实现信息的内部形式与人类可以接受形式之间的转换...

关键字: HMI 人机界面 系统

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用
关闭
关闭