当前位置: 首页 > 传感测量产品 > 工业传感器 > 温湿度传感器

类型分类:
科普知识
数据分类:
温湿度传感器

嵌入式设备基于Linux多屏显示简介

发布日期:2022-04-26 点击率:69

  • 关键词:                                                                嵌入式                                                                linux

  • 摘要:对于一些嵌入式领域应用如医疗,汽车等,多屏显示应用是需要的,因此本文就基于NXP iMX6 嵌入式ARM平台来实现双屏显示应用。

1). 简介

对于一些嵌入式领域应用如医疗,汽车等,多屏显示应用是需要的,因此本文就基于NXPiMX6 嵌入式ARM平台来实现双屏显示应用。

 

本文所采用的测试平台为来自ToradexARM 计算机模块平台ColibriiMX6DL搭配其对应的开发载板ColibriEva Board.

 

2. 准备

a). Colibri iMX6DL系统分别通过X18连接LVDS LCD屏(1024x768)和X5 DVI接口连接标准DVI液晶显示器

b). Colibri iMX6DL 模块需要连接FFC排线和Colibri Eva Board X6连接,如下图所示

iMX6DL " height="330" width="500"/>

c). Colibri iMX6DL 系统使用Toradex Linux Release V2.6.1,不过原生没有包含Qt库,需要基于Toradex Openembedded环境添加Qt相关并重新编译,建立环境和编译相关请参考这里,涉及到添加Qt5以及linuxfb支持的修改请参考下面两个patch文件,然后根据这里说明将重新编译好的image文件更新到Colibri iMX6DL模块上面去。

./ angstrom-lxde-image.bb 添加Qt5 X11支持库

https://github.com/simonqin09/qt5patch/blob/master/angstrom-lxde-image_qt5_x11.patch  

./ qtbase_git.bb添加linuxfb支持

https://github.com/simonqin09/qt5patch/blob/master/qtbase_git_linuxfb.patch  

d). Colibri iMX6DL Uboot环境变量如下设置来使能双屏配置,此配置LVDS作为主屏显示X11桌面,DVI显示器作为副屏

----------------------------

ColibriiMX6 # setenv vidargs ‘video=mxcfb0:dev=lcd,1024x768M@60,if=RGB666mxc_hdmi.only_cea=1 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 fbmem=32M’

----------------------------

 

3). 播放视频测试

a). 利用videotestsrc元素测试DVI显示器 ”/dev/video18” 输出

----------------------------

gst-launch-1.0-v videotestsrc !imxv4l2sink device=/dev/video18 force-aspect-ratio=trueoverlay-width=1920 overlay-height=1080

----------------------------

b). 测试DVI显示器播放1080P 高清视频“fullhdvideo.mkv

----------------------------

gst-launch-1.0-v filesrc location=/home/root/fullhdvideo.mkv ! video/x-matroska !aiurdemux!vpudec !imxv4l2sinkdevice=/dev/video18 force-aspect-ratio=trueoverlay-width=1920overlay-height=1080

----------------------------

c). 测试LVDSDVI显示器同时播放1080P 高清视频“fullhdvideo.mkv

----------------------------

gst-launch-1.0-v filesrc location=/home/root/2528.mkv ! video/x-matroska !aiurdemux !vpudec!imxv4l2sink device=/dev/video18 force-aspect-ratio=true overlay-width=1920overlay-height=1080 & gst-launch-1.0 -v filesrclocation=/home/root/2528.mkv ! video/x-matroska !aiurdemux !vpudec !imxv4l2sinkoverlay-width=1024 overlay-height=768

----------------------------


 

4). Qt 5应用程序运行

a). 测试程序请参考这里说明,文章是基于ColibriiMX7 ARM计算机模块平台的,针对本文的Colibri iMX6只需要更改下面代码中” this->gpio_out”变量为数值为”38”, 然后在载板上面将X10连接器SODIMM_127管脚和X21连接器LED1管脚相连。

https://github.com/simonqin09/QtGPIOProject/blob/master/mainwindow.cpp  

b). 将修改编译好的程序放到ColibriiMX6模块上面进行执行

----------------------------

root@colibri-imx6# ./helloworldUI -platformlinuxfb:fb="/dev/fb2"              

                                                                               

Sucessfully export GPIO-38                                                      

Sucessfully set GPIO-38 direction                                                

GPIO-38 value set low                                                            

Sucessfully set GPIO-38 value                                                    

GPIO-38 value set high

……

----------------------------


c). 清理显示,执行下面命令

----------------------------

root@colibri-imx6# cat /dev/zero >/dev/fb2

----------------------------

 

5). 总结

本文基于NXP iMX6嵌入式平台测试了双屏显示,其模式是一个主显示,另外一个基于frame buffer来进行操作,并具体测试了播放视频以及运行Qt程序,尽管还有一定局限性,但是已经可以实现一些比较基本的双屏需求。



下一篇: PLC、DCS、FCS三大控

上一篇: 索尔维全系列Solef?PV

推荐产品

更多