比派科技banana pi专区
直播中

snailmoving

12年用户 216经验值
擅长:嵌入式技术 接口/总线/驱动 光电显示 控制/MCU
私信 关注
[话题]

【BPI-M64试用体验】第五篇 设计简易液晶站节牌(结项)

1、概述
    公交站节牌,又称公交车载站点显示信息牌,顾名思义主要功能是依次显示公交车途径的所有站点。传统的站节牌使用贴纸灯箱的形式显示站点名称,功能单一,一旦公交车更换运行线路或者更改了一个站点名,需要更换整张贴纸,操作繁琐且浪费。公交公司迫切需求一种能够替代老式站节牌的产品。
2、方案论证
    显示站点名称主要有两种方式,LED点阵屏和液晶屏。由于公交站点名称不固定,有的公交线路站点非常多,如果使用LED点阵屏做,需要很大的一块屏,公交车内无法安装,功耗也很大。所以本人设计一种能够替代传统站节牌的液晶站节牌,液晶屏为长条形,能够正好嵌入原来站节牌安装的地方,液晶屏分成两半,左半边播放视频,右半边显示沿途站点信息。这样既能满足传统站节牌的需求,又能播放公益广告,娱乐信息等。
3、设计方案
     主板采用BPI-M64开发板,通过HDMI与投影仪连接,方便方便观看显示效果。BPI-M64采用的是基于前面几篇搭建完成的ubuntu16.04 mate系统,具体搭建步骤参考前面几篇介绍。
     开发软件使用移植好的QT4.7.3,视频播放软件采用phonon多媒体架构。
     创建媒体播放器
     Phonon::VideoPlayer *player=new Phonon::VideoPlayer(Phonon::VideoCategory,widget);
     设置播放窗口位置与大小
     player->setGeometry(0,0,480,360);
     播放视频文件
     player->play(Phonon::MediaSource("/home/pi/***.avi"));

     右边部分显示站点信息名称,站点信息名称有可以通过QPainter绘制,也可以直接调用图片。由于时间和篇幅有限,我这里先简易的显示一张站点信息的图片。
     QImage *image=new QImage("/home/pi/***.jpg");
     QLabel *label=new QLabel(widget);
     label->setGeometry(480,0,800,360);
     label->setScaledContents(true);
     image->scaled(800,360,Qt::IgnoreAspectRatio);//让图片适应label的大小。
     label->setPixmap(QPixmap::fromImage(*image);
     然后循环播放视频,循环播放图片。一个简易的站节牌就完成了。

     phonon的后端是mplayer,预先安装好mplayer,设置mplayer的视频输出为vdpau,音频输出为sndhdmi(alsa)。下图为运行效果。由于本人没有HDMI接口的长条形液晶屏,所以拿投影仪做延时,实际的液晶屏是标准屏经过切割得来的,只显示屏幕中1280*360这上半部分的区域,正好可以显示视频与图片的整个区域。

IMG_20170428_082831.jpg IMG_20170428_082822.jpg

拍照水平有限,外加投影仪并不是很清楚,大概的轮廓应该可以看清楚了,以后有空的话补图。


4、结项
     该设计可以实现简化版的液晶站节牌,视频与图片可以通过USB写入相应的文件夹。右边的图片可以通过QPainter自行绘制,站点名称可以通过RS232与车载报站器联动,这是以后可以改进的方向。


     至此液晶站节牌项目结束。感谢电子发烧友网站,感谢比派科技。



回帖(1)

CHNlyt

2017-5-8 00:04:29
老实说,这PPT做得不算好。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分