姚江云 张华宇 聂臻 汤金镒
摘 要:本项目设计了一款基于嵌入式硬件平台的智能广告系统,该系统主要由主控芯片STM32F103VET6、智能液晶串口屏、SD卡存储器、电源、按键等部件构成,能够实现对三大类广告内容进行有序播放或选择性播放。硬件方面,主要通过STM32F103VET6主控芯片的串口控制传输指令对显示器SD卡内部储存的广告视频及图片进行播放和切换,以达到广告系统智能控制的目的;软件方面,通过C语言进行模块化编程设计。经过测试,该系统最终完成显示器的操控,能实现广告内容的流畅播放与切换,且运行稳定。
关键词:广告系统;嵌入式;串口屏
Abstract: An intelligent advertising system based on embedded hardware platform was designed in this project. The system is mainly composed of the main control chip STM32F103VET6, intelligent LCD serial screen, SD card memory. power supply, buttons and other components, which can realize the orderly or selective play of three kinds of advertising contents. In hardware aspect, the video and pictures stored in SD card of display are played and switched by serial port control transmission instruction of STM32F103VET6 main control chip, so as to achieve the purpose of intelligent control of the advertising system. In software aspect, modular programming is designed by C language. After testing. the system finally completes the control of the display, can smoothly realize the broadcast and switching of advertising content, and runs stably.
Keywords: advertising system; embedded; serial screen
随着经济的高速发展,商业经济突显出越来越重要的作用,其中用来刺激消费者的商业广告也越来越被各厂商所重视[1]。目前,国内商业广告的投放形式仍十分粗略,主要集中在海报、广告牌等模式,类似的广告模式只能对消费者起到一定的提醒作用,并不能起到关键性作用,存在效率低、成本高、信息量少、互动性弱等缺点。随着信息化、智能化时代的到来,在国外,有的广告系统能根据消费者的兴趣播放对应的广告[2];有的广告系统能实现信息查询或语音互动等功能,具有共享性、互动性的特点[3]。
本项目设计了一款基于嵌入式硬件平台的智能广告系统,实现了将多种广告内容集成于同一系统内,可以进行各种广告内容的轮流循环播放,也可以对广告大类进行选择性播放,所有广告内容画面清晰、语音流畅,观看体验较好。该广告系统具有信息量大、交互性好、成本低的特点,为广告系统的智能化开发奠定了基础。
1 系统整体方案设计
该广告系统主要包括STM32F103VET6主控板、工业串口屏幕、电源、按键等元件,系统结构如图1所示。该系统主要播放三大类广告,包括城市发展宣传类广告、汽车品牌及企业发展宣传类广告、技术团队宣传类广告。其广告模式分为两种:在无人操作的模式下可以按设定的顺序轮流播放三大类广告,也可以手动选择播放某一類广告。
2 系统硬件设计
2.1 主控芯片选型及电路设计
广告系统的主控板电路是系统的核心部件,在选型过程中,应首先考虑芯片的性能是否满足系统设计需求,其次要考虑系统的可扩展性、成本、耐用性、操作性等因素。
本项目选择内部资源多、运行速度快的STM32系列单片机作为主控芯片,具体型号为STM32F103VET6。STM32F103VET6是ST厂推出的基于Cortex-M3内核的STM32系列单片机,最高工作频率为72 MHz,1.25 DMips/MHz,在外设方面,具有1 μs的双12位ADC,4 Mbit/s的UART,18 Mbit/s的SPI等[4-5]。本设计主要用到STM32F103VET6芯片的按键功能、指示灯(LED)功能、串口通信功能等,该芯片可以从外部存储器(SD卡)读取、解码和输出音频信号。图2为按键模块、指示灯模块及串口模块的电路图。
①按键模块:进行相关GPIO(General-purpose input/output,通用型之输入输出)端口的初始化和使能;配置好相对应的引脚,并设置循环点击函数,以确保图片(KEY2)和视频循环播放(KEY1);还要设置停止退出按键(KEY4),手动停止并退出到初始界面(图片0),按键KEY3为预留功能。
②指示灯模块:LED2为视频播放提示灯,按键奇数次点击为亮(高电平),按键偶数次点击为灭(低电平);LED3为图片播放指示灯,按键奇数次点击为亮(高电平),按键偶数次点击为灭(低电平);LED4为视频停止退出按键指示灯,视频停止信号发出后亮起;LED5为预留功能。
③串口模块:先配置GPIO端口的初始化和使能,再根据串口屏的传输协议来编写串口传输程序;规定好字符串的位数和指令符号,并设置循环函数,即从0开始自加,到最后一张图片和视频时,清零并返回至0,同时计算校验值。
2.2 显示屏的选型及电路设计
显示屏作为广告内容的主要展示工具,在观看体验上起着决定性作用,需要综合考虑性能、尺寸、成本。本设计选择10寸(约33 cm)智能液晶串口屏。该屏幕分辨率为1 024×600(H×V),支持RS232、TTL、485三个通信协议,拥有30多种组态控件,可对图形进行自由编辑。其具有完善的人机交互功能,工业级标准,支持ESD EMI测试。在本设计中,串口屏应用的主要功能有图片及视频的存储(SD卡)、播放等功能。
系统整体功能的实现步骤如下:第一,广告素材的准备。其中,图片必须是BMP格式,且分辨率必须与屏幕保持一致;视频必须为MP3格式。第二,广告素材的存储。将准备好的SD卡进行格式化,选好32FAT格式,并创建HMI_SET文件夹,然后将广告素材存入该文件夹。第三,广告素材的编辑。在上位机(模拟器)中对广告素材进行编辑,主要包括图片和视频两方面。在菜单栏生成配置选项中从0开始(初始界面),将图片依次编号,生成相关文件;进行视频素材编辑时,要对屏幕固件进行升级,将固件程序“boot.bin”拷贝到SD卡根目录下的HMI_SET文件夹中,插卡后上电,固件自动完成升级,SD卡要求容量不大于32 GB。把设定好的视频进行排序(从0开始),放入SD卡HMI_SET文件夹里。所有文件下载完成后,断电重启屏幕。第四,广告素材数据的传输。将配置好的图片及其他参数文件(13.bin,14.bin)以及排好序的视频文件一并放入SD卡内,开机前插入屏幕中;等待其数据载入完成便可进行操作;运用STM32的串口传输技术通过编写程序来控制视频和图片的播放和切换,最终以按键的形式体现出来。
3 系统软件设计
本项目软件编程采用C语言进行程序开发,编译环境为Keil uVision5。视频文件和音频文件适用后缀为MP4。系统的主要工作流程为:将需要播放的广告导入主控芯片中,判断广告是在下载序列还是播放序列,若是在播放序列,直接播放即可,若是在下载序列,待下载完成后再进行播放。此外,也可以通过按键选择播放模式,模式1为轮流播放三大类广告,模式2为具体选择某一类广告。具体程序流程如图3所示。
程序分为以下几个部分:主函数、按键、LED指示灯、定时器2、串口1、系统延时、系统时钟等子功能模块。
主函数:快速调用其他功能模块。
按键:先预先设置按键按下的数值、弹起的数值、上一次按键的数值(都设置为0);规定用到的I/O端口,设定推挽输出模式,I/O口时钟响应频率为50 MHz,设定浮空输入模式;设置按键响应时间10 ms;按键扫描,定时10 ms执行一次。
定时器2:设定中断优先级3级,使能模式开启;定时器周期10 ms,定时器2时钟为72 MHz;重复计数初值设为0;设置定时时间、定时档位:1 ms、10 ms、100 ms、500 ms、1 s、3 s、3 min。
串口传输:定义_sys_exit(),以避免使用半主机模式;重定义fputc函数;设定循环函数,循环发送,直到发送完毕;接收缓存,接收标志设定。
传输参数设置:波特率设置为115 200;数据位8位,停止位1位,无校验位,无硬件流控,收发模式,配置串口参数。
数据、字符、字符串传输接收设置:接收缓存,接收计数,接收标志位(都从0开始),清除标志位,判断接受的数据指令头是否正确;开始接收,将接收到的一个字节数据存入,接收缓存,接收完成,计算校验。
4 系统功能调试
把屏幕与主控板连接起来,用设定好的控制程序和制定控件进行信息传输与反馈。
在調试过程中遇到的主要问题及解决措施为:第一,屏幕在播放并切换视频时,如果持续高频点击,会出现卡死的情况,必须重新上电复位。解决方案为点击一次播放视频按键,再点击一次停止退出按键,这样能有效避免出现上述情况。第二,由于电源是外部供给,所以必须达到限定的电压和电流。为此,本设计舍弃了USB供电,采用12 V电源适配器进行供电。
5 结语
本研究以增强设备灵活性、丰富广告内容、提高广告效益、降低广告成本为目标,提出基于嵌入式硬件平台的智能广告系统设计。该系统以STM32系列单片机STM32F103VET6为核心控制器,以10寸(约33 cm)智能液晶串口屏作为显示设备,通过串口控制传输指令对显示器SD卡内部储存的广告视频及图片进行播放和切换,以达到广告系统智能控制的目的,对智能广告系统的设计具有一定的参考意义。经过测评和问卷调查发现,本系统控制下的广告观看率和点击率略高于传统广告牌。
参考文献:
[1]洪家平,许力.基于GSM模块的远程无线广告系统的设计[J].湖北师范学院学报(自然科版),2012(3):1-4.
[2]罗旭,曹红,唐凡.基于双向网络的智能化广告系统研究[J].广播电视信息,2020(8):103-105.
[3]唐钢,翁艳彬,吴岳忠.车贴广告系统的设计[J].企业科技发展,2020(5):33-34.
[4]龙吉.基于STM32微控制器的LED广告屏控制器的设计[J].科技展望,2016(36):144-145.
[5]张志成,王鹏飞.基于stm32单片机的电子相册[J].电子技术与软件工程,2016(4):251-252.