一种基于语音控制的3D动态显示系统设计

2022-06-21 11:27:58沈福周
物联网技术 2022年6期
关键词:动态显示全彩寄存器

张 伟,沈福周

(1.北京奇虎科技有限公司 360未来安全研究院,北京 朝阳 100015;2.扬州大学 信息工程学院,江苏 扬州 225001)

0 引 言

裸眼3D显示系统因其独特的3D显示视觉效果,已经从公共信息展示等商业应用向消费类多媒体应用渗透,也成为了近年来国内外的研究热点。光立方作为一种新型裸眼3D信息发布媒介,给人们带来了全新的视觉体验。然而,现有的光立方存在显示色彩单一、分辨率不高、人机交互性能差、设计复杂、成本较高等问题,严重阻碍了光立方三维动态显示技术的推广应用。

为使光立方更好地改善智能化生活,设计了一种基于语音控制的3D动态显示系统,采用RGB全彩LED制作了12×12×12分辨率的光立方,高阶全彩的动态显示效果极大地扩充了显示色域,增强了三维视觉享受;采用SM16126串转并级联驱动输出电路设计,为高阶光立方的设计提供了一种可行的实现方案。

另外,随着语音识别技术的不断发展,在诸多领域展现了出色的应用效果,成为了新型智能人机交互方式。本系统采用基于LD3320的语音识别模块控制其工作,提高了人机交互性能,拓宽了其应用范围,使生活更加智能化、人性化。

1 系统总体设计

本智能语音3D动态显示系统主要分为语音识别模块和12×12×12全彩光立方两大部分,采用语音识别模块、硬件驱动电路、STM32F407核心控制器控制不同立体位点的LED亮灭和颜色变换,显示多种炫彩三维动态画面。光立方采用RGB全彩LED焊接完成,构成三维显示阵列;通过读取外设SD卡内的数据流,并送入级联的SM16126芯片控制每个LED灯的颜色;采用语音识别模块对非特定人声语音指令进行识别,并将结果通过UART串口发送给STM32控制光立方显示相应的动画,并播放背景音乐。另外,STM32的UART2串口连接蓝牙模块,可使用手机蓝牙控制光立方显示。系统结构如图1所示。

图1 系统结构

2 系统硬件设计

2.1 LED的选择

LED发光体的体积越小,光立方整体的通透性就越好,即后排的LED就越不容易被前排的LED挡住;另一方面,使用直径更大或是雾面的LED越容易看到光点。此外,还要注意LED光点的可视角度,雾状LED比光面LED更大。

综上分析,本系统使用的LED灯为5 mm、RGB雾状散光共阳极LED灯,其最大电流为20 mA,电压范围为3.0~3.5 V,波长460~465 nm。实物如图2所示。

图2 4脚RGB LED

2.2 光立方模块

光立方采用RGB全彩LED焊接完成,实现三维显示阵列。将光立方模块分成3个4×12×12的子立方,每层48个LED的阳极连在一起,由2片74HC138构成4~16选择器实现对层(12层)的选择,控制某一层和/或某几层灯的亮灭;竖直方向同列的R、G、B引脚分别连接SM16126的输出端口,控制每个LED的颜色(具体实现如图3和图4所示)。此外,由于构成光立方的LED灯数量巨大,对电流的要求很高,故选择74HC245作为数据的强驱动缓冲器,同时SM16126能够提供极为精确的稳定电流输出,保证系统稳定工作。

图3 SM16126串转并强驱动级联电路

图4 强上拉驱动和4~16层选择电路

采用SM16126串转并级联驱动输出和公共端强上拉设计,多个光立方可自由拼接,为高阶光立方的设计提供了一种可行的实现方案。一面LED灯组装示意图如图5所示,光立方组装测试如图6所示,光立方组装完成图如图7所示。

图5 一面LED灯组装示意图

图6 光立方组装测试

图7 光立方组装完成图

2.3 语音识别模块

LDV5语音识别模块主要包括LD3320非特定人声识别芯片和STM32F103微处理器。LD3320芯片内部集成了高精度的A/D接口,无需外接辅助FLASH和RAM即可实现语音识别、声控、人机对话功能,并且识别的关键词语列表可动态编辑。

该模块具有以下优点:

(1)LDV5模块具备USB接口及TF卡读取U盘功能。

(2)支持最大4G mini 低速TF卡读取。

(3)可实现人机对话,具有播放MP3、播放歌曲及对话等功能。

(4)具备串口输出识别码功能,支持1~12字节自定义十六进制输出。

(5)支持口令识别方式,例如:定义模块为“小光”,只有每次喊“小光”后,模块才能接收其他操作指令。另外,还支持普通识别模式、按键触发模式,以适应不同应用环境。

(6)具备看门狗复位功能,系统更稳定。

模块上有一个TF卡,加入语音模块后,只需对TF卡内容进行修改就可对该模块进行操作。图8所示主菜单文件中的串口输出识别码01、02,分别为语音模块响应时通过串口发送给STM32主控制器的识别结果。

图8 TF卡主菜单文件

2.4 音频输出电路

LM358是双运算放大器,内部包括2个独立的、高增益、内部频率补偿的运算放大器,适合于电源电压范围宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。其使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。本系统用其进行音频播放。音频输出电路如图9所示。

图9 音频输出电路

3 系统软件设计

3.1 系统程序设计概述

系统启动后,将处于休眠模式,显示开机动画,语音识别模块在后台进行语音监听。考虑到使用环境的多样性,程序设定了语音指令“小光”来唤醒语音交互功能,并播放语音提示“在呢在呢”,显示相应动画。此后,在限定的时间内检测语音指令,并将识别码通过串口发送给STM32,控制显示相应的动画、播放背景音乐。系统软件设计流程如图10所示。

图10 系统软件设计流程

3.2 系统软件结构

该系统软件源代码目录如图11所示。

图11 软件系统结构

结合具体的源文件分析每层实现的功能。

(1)寄存器接口层

寄存器接口层是外设驱动层和单片机硬件之间的桥梁,它直接操纵单片机内部的寄存器,封装实现I/O输入输出模块、定时器模块、ADC模块和串口模块。其中,STM32F4xx.h头文件中定义了单片机的型号以及相关I/O口寄存器等。sys.c中封装了I/O管脚的地址偏移;usart.c中封装了串口模块;TIM.c中封装了定时器模块。

(2)外设驱动层

外设驱动层主要由SM16126驱动模块、SPI总线驱动和SD卡读取驱动构成。其中,SM16126.c中封装了SM16126驱动模块,通过MCU模拟IC通信对SM16126寄存器进行操作,可调用底层的I/O输入输出模块以及定时器模块。diskio.c中封装了SD卡读写驱动,可调用寄存器层的I/O输入输出模块。SPI_MSD0_Driver.c中封装了SPI总线驱动,可调用底层的I/O输入输出模块以及定时器模块,搭建了基于DMA传输的SPI通信协议。

(3)应用层

应用层设计主要面向用户并且负责处理具体事务。主要包括显示系统、语音系统以及FATFs文件系统。main.c文件中封装了整个程序的入口函数main(),负责启动任务模块。LED_CUBE.c文件中封装了显示系统的操作函数,同时其头文件LED_CUEB.h对所用管脚以及各全局变量进行了定义,如图12所示。

该文件已经完成了数十种动画的播放,并封装成了相应的函数,如图13所示。

图12 LED_CUBE.h(1)

图13 LED_CUBE.h(2)

TFCard.c中封装了FATFs文件系统调用的相关配置。借助基于DMA传输的SPI总线对内存卡的扇区进行快速读写操作,同时该文件的头文件TFCard.h中也封装了所占用的具体管脚以及DMA总线的初始化内容。

3.3 TF读卡程序

通过移植FATFs系统对文件进行快速读写。初始化SPI总线,挂载文件系统,在DMA方式下读取文件数据,关闭文件。

TF读卡程序如下:

3.4 SM16126驱动程序设计

通过模拟IC总线来驱动SM16126芯片,同时通过多次频繁的写入数据,模拟PWM脉宽调制来实现多灰度的显示。具体实现过程如下:

(1)数据端口准备数据;

(2)时钟端口拉高,发送数据线数据;

(3)时钟端口拉低,锁存数据;

(4)锁存器使能端打开,输出控制数据。

4 结 语

本文设计了一种基于语音控制的3D动态显示系统,通过语音识别控制高阶全彩光立方显示动画,改善了现有光立方显示色彩单一、分辨率低、人机交互性能差、设计复杂等问题,提高了三维显示系统的视觉体验。

本3D显示系统相较于其他显示系统具有如下优势:

(1)采用LD3320语音识别模块控制其工作,提高了人机交互性能,拓宽了其应用范围,使生活更加智能化和人性化;

(2)采用RGB全彩LED制作了12×12×12高分辨率的光立方,高阶全彩的动态显示效果极大地扩充了显示色域,增强了三维视觉体验;

(3)采用SM16126串转并级联驱动输出和公共端强上拉的电路设计,多个光立方可自由拼接,为高阶光立方的设计提供了一种可行的实现方案;

(4)采用DMA方式读取外设SD卡,动画修改更方便,读取时不占用系统资源,显示效果更加流畅。

系统实现效果如图14所示。经实际测试,本系统能够达到预期的效果,对推进3D显示技术的实际应用具有一定的意义。

图14 系统实现效果

猜你喜欢
动态显示全彩寄存器
广告目次
山东化工(2024年7期)2024-06-11 02:54:48
广告目次
山东化工(2024年6期)2024-05-16 21:00:14
广告目次
山东化工(2024年1期)2024-03-17 19:06:10
Lite寄存器模型的设计与实现
计算机应用(2020年5期)2020-06-07 07:06:44
单片机控制的四位数码管动态显示编程
时代农机(2019年2期)2019-04-24 01:20:14
雷佟CP
意林彩版(2018年8期)2018-07-06 03:09:27
分簇结构向量寄存器分配策略研究*
基于单片机的LED大屏幕显示的设计
科技资讯(2016年28期)2017-02-28 09:52:16
数码管动态显示Proteus 仿真失败分析
“摇摇棒”为大学生涯画个七彩圆*——”基于单片机的LED动态显示装置”的创作报告