0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LCD2USB显示模块在LCD4LINUX的使用解释

jf_86150131 来源:jf_86150131 作者:jf_86150131 2023-07-12 11:03 次阅读

通过LCD4Linux在ubuntu下连接LCD屏幕

1.安装LCD4Linux

安装完成后,会附带驱动程序,正常情况下插入USB后能够识别设备,有2种安装方式

1.1一种是通过源进行安装

sudo apt-get install LCD4Linux

1.2通过官网下载源码进行安装

http://prdownloads.sourceforge.net/lcd4linux/lcd4linux-0.10.0.tar.gz?download

下载完毕后解压

tar xvzf lcd4linux-0.10.0.tar.gz

编译安装

./configure

make

make install

在执行configure-command期间(这可能需要一段时间!),控制台上会显示一些状态消息。如果出现错误,您可以在configure.log文件中查找它们以进行调试

2.查看USB屏幕的设备名称

通过命令

lsusb

将会看到有lcd2usb interface的设备出现

hoody@hoody-Acer:~$ lsusb

Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 003: ID 0403:c630 Future Technology Devices International, Ltd lcd2usb interface # <------ 这个就是

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这里我们可以看到 当前设备的连接位置是在

Bus 001 Device 003: ID 0403:c630 Future Technology Devices International, Ltd lcd2usb interface

然后可以在/dev/bus/usb/001/003看到我们的USB屏幕,记下这个路径,后续会在配置文件中使用到 /dev/bus/usb/003暂时叫做设备路径吧

3.简单配置/etc/lcd4usb.conf

整个LCD4Linux运行都是通过/etc/lcd4usb.conf文件进行配置的,

定义显示内容也是通过这个配置文件官方配置样例文档

由于安全原因(配置可能包含邮件帐户的用户名/密码),配置文件必须确保仅具有用户的权限。小组或其他人不得读写,否则LCD4Linux拒绝工作! 因此,如果您以root身份运行lcd4linux, /etc/libd4linux.conf必须是:

chmod 600 /etc/lcd4linux.conf

chown root.root /etc/lcd4linux.conf

我们先来个简单的CPU监控显示配置 PS:配置文件中,{括号前面要有一个空格

Display MyScreen {

Driver 'LCD2USB' #指定使用LCD2USB驱动

Model 'generic'

UseBusy 1

Port '/dev/bus/usb/001/003' #填写上一节说的设备路径

Size '20x4'#根据你的屏幕显示内容填写,我的是20字符乘4行的

Contrast 90 #对比度设置,范围:0~255

Brightness 200 #背光亮度设置,范围:0~255

Wire {

RW 'AUTOFD'

RS 'INIT'

ENABLE 'STROBE'

ENABLE2 'GND'

GPO 'GND'

}

}

# CPU使用率部件

Widget CPU {

class 'Text' #部件类型指定为文本

expression proc_stat::cpu('busy', 500)

prefix 'CPU:' #前缀

postfix '% |' #后缀

width 10 #部件占用字符数

precision 1

align 'L' # L R分别表示左对齐 和右对齐

update 500 #更新频率 500毫秒

}

#布局,在此处指定部件的放置

Layout Default {

Row1 { #表示第一行

Col1 'MyCPU' #表示从第一格开始放入

}

}

Display 'MyScreen' #指定显示屏幕

Layout'Default' #指定使用 布局

4.启动屏幕

启动LCD4Linux前请确定配置文件lcd4linux.conf的权限是600

启动命令如下, -v表示显示启动日志,如果失败将会显示错误原因

sudo lcd4linux -v

启动成功将会在屏幕上显示

CPU: 13%

启动错误:Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

如果发生此错误,说明当前你应该是通过纯命令行进行的操作,LCD4Linux需要桌面环境的支持,所以在配置的时候需要进入让Linux的图形化桌面环境,然后在桌面环境中开启终端再执行启动命令即可

启动成功后,再通过开机自启则不需要进入图形化桌面了

lcd4linux.conf的详细配置解释

配文件内容分3个部分

第一部分是屏幕的配置,LCD2USB屏的话,只需要修改port和size即可

Display MyScreen {

Driver 'LCD2USB' #指定使用LCD2USB驱动

Model 'generic'

UseBusy 1

Port '/dev/bus/usb/001/003' #填写上一节说的设备路径

Size '20x4'#根据你的屏幕显示内容填写,我的是20字符乘4行的

Contrast 90 #对比度设置,范围:0~255

Brightness 200 #背光亮度设置,范围:0~255

Wire {

RW 'AUTOFD'

RS 'INIT'

ENABLE 'STROBE'

ENABLE2 'GND'

GPO 'GND'

}

}

第二部分是定义显示需要使用的部件,

此处可以定义多个部件,部件中的表达式可以参考官方提供的部件列表 Plugins

常用到的有:

plugin_meminfo内存插件

该插件提供了 /proc/meminfo文件的接口

meminfo(key)/proc/meminfo并返回的值

'key'参数没有任何固定值,但作为搜索键进入/ proc / meminfo文件。常用键是“MemTotal”或“MemFree”。执行'cat / proc / meminfo'以查看系统上可用的值。

Widget RAM {

class 'Text'

expression meminfo('MemTotal')/1024

postfix ' MB RAM'

width 11

precision 0

align 'R'

update 0

}

plugin_proc_stat系统状态插件

该插件提供了 /proc/stat文件的接口。

Proc_stat插件

示例:CPU:12%

Widget CPU {

class 'Text'

expression proc_stat::cpu('busy', 500)

prefix 'CPU:'

postfix '% |'

width 10

precision 1

align 'L'

update tick

}

Widget CPUBar {

class 'Bar'

expressionproc_stat::cpu('busy', 500)

expression2 proc_stat::cpu('system', 500)

length 10

align 'L'

direction 'E'

update tack

}

uptime启动时间插件

此插件以秒或以用户定义的格式返回当前系统的正常运行时间

表达式 解释

uptime() 返回系统启动的秒数

uptime(format) 以用户定义格式返回时间

format的可选格式(格式指定类似于 printf()方法)

表达式 解释

%s 总秒数

%S 从00-59的秒数

%m 总分钟数

%M 从00-59的分钟数

%h 总小时数

%H 从00-23的小时数

%d 总天数

例子:Run 12 days 12:32:59

Widget Uptime {

class 'Text'

expression uptime('%d days %H:%M:%S')

width 20

align 'L'

prefix 'Run '

update tick

}

这里是一部分表达式的示例,其余可以通过官方提供的部件列表 Plugins进行查看

第三部分 布局的指定

通过Row行与Col格进行布局安排,后面的数字表示具体的行数和格数

Layout Default {

Row1 {

Col1 'MyInfo' #从第一行第一格开始显示

}

Row2 {

Col1 'CPU' #从第二行第1格开始显示

Col11 'MEM' #从第二行第11格开始显示(我的设备总计20格每行)

}

Row3 { Col1 'IPaddress' }

Row4 { Col1 'Uptime' }

}

code:

Display USBLCD {

Driver 'LCD2USB'

Model 'generic'

UseBusy 1

Port '/dev/bus/usb/001/003'

Size '20x4'

Contrast 90 #对比度设置,范围:0~255

Brightness 200 #背光亮度设置,范围:0~255

Wire {

RW 'AUTOFD'

RS 'INIT'

ENABLE 'STROBE'

ENABLE2 'GND'

GPO 'GND'

}

}

Widget CPU {

class 'Text'

expression proc_stat::cpu('busy', 500)

prefix 'CPU:'

postfix '% |'

width 10

precision 1

align 'L'

update tick

}

Widget CPUBar {

class 'Bar'

expressionproc_stat::cpu('busy', 500)

expression2 proc_stat::cpu('system', 500)

length 10

align 'L'

direction 'E'

update tack

}

Widget MEM {

class 'Text'

expressionceil((meminfo('MemTotal')-meminfo('MemFree'))/meminfo('MemTotal')*100)

prefix 'MEM:'

postfix '%'

width 8

align 'R'

update tick

}

Widget IPaddress {

class 'Text'

expression netinfo::ipaddr('wlp3s0')

prefix ' '

postfix ' '

width 20

align 'L'

update tick

}

Widget Uptime {

class 'Text'

expression uptime('%d days %H:%M:%S')

width 20

align 'L'

prefix 'Run '

update tick

}

Widget MyInfo {

class 'Text'

expression 'Hoody Server'

prefix ' '

postfix ' '

width 20

align 'L'

update tick

}

Layout Default {

Row1 { Col1 'MyInfo' }

Row2 {

Col1 'CPU'

Col11 'MEM'

}

Row3 { Col1 'IPaddress' }

Row4 { Col1 'Uptime' }

}

Variables {tick 500}

Display 'USBLCD'

Layout'Default'

https://zhuanlan.zhihu.com/p/81693837?from_voters_page=true

在Ubuntu系统使用lcd4linux

(1)安装lcd4linux

$ sudo apt-get install lcd4linux

(2)连接模块,并查看模块使用的USB端口,本例中使用的端口为usbdev3.2

$ ls /dev/usb*

(3)更改/etc下的配置文件。软件生成的lcd4linux.conf文件较长,新手不容易配置,可重命名或删除后自己新建,并复制下面的配置代码。

$ cd /etc

$ sudo vi lcd4linux.conf

输入以下配置信息,并保存。

Display LCD2USB {

Driver 'LCD2USB' #模块的类型为LCD2USB

Size '16x2' #LCD液晶的尺寸为1602

Port '/dev/usbdev3.2' #使用的端口为/dev/usbdev3.2

Contrast 90 #对比度设置,范围:0~255

Brightness 200 #背光亮度设置,范围:0~255

}

Widget IPaddress{

class 'Text' #类型:Text

expression netinfo::ipaddr('eth0') #获取eth0的ip地址

prefix 'IP:' #在行初显示“IP:”

width 16 #显示宽度:16

align 'C' #显示方式:居中

update 1000

}

Widget Time {

class 'Text'

expression strftime('%a %H:%M:%S',time())

width 16

align 'C'

update 1000

}

Layout Default {

Row1 {

Col1 'IPaddress' #在第一行第一列显示Widget IPaddress

}

Row2 {

Col1 'Time' #在第二行第一列显示Widget Time

}

}

Display 'LCD2USB'

Layout'Default'

(4)更改lcd4linux.conf文件权限

$ sudo chmod 600 lcd4linux.conf

$ chown root.root lcd4linux.conf

(5)运行lcd4linux

$ lcd4linux

嘿群辉6.13成功驱动USBLCD

1.先root

2.安装opkg

(装opkg部分参考如下教程

https://tieba.baidu.com/p/4951158587?red_tag=0362727310

3.再装python2.7

4.再装pip

5.再装libusb1.0

6.再装python-libusb1

7.再装lcd2usb

(python部分参考如下链接)

https://pypi.python.org/pypi/lcd2usb

启动命令python2.7 -m testlcd

下面发驱动LCD2004的python文件: testlcd.py

我放到/volume2/@entware-ng/opt/lib/python2.7/site-packages目录下

# ==================配置文件开始============

from lcd2usb import LCD

from subprocess import *

from time import sleep, strftime

from datetime import datetime

# =========================

# Clock Example

# ====================

lcd = LCD()

cmd = "ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1"

cmd2 ="hostname"

cmd3 ="cat /proc/loadavg | cut -d/ -f1"

print "Press CTRL+C to exit"

def run_cmd(cmd):

p = Popen(cmd, shell=True, stdout=PIPE)

output = p.communicate()[0]

return output

while(True):

lcd.clear()

ipaddr = run_cmd(cmd)

lcd.goto(0,0) #第一行

lcd.write('Synology DS3617xs')

lcd.goto(0,1) #第二行

name = run_cmd(cmd2)

lcd.write('server %s' % (name) )

lcd.goto(0,2) #第三行

lcd.write('IP %s' % (ipaddr) )

lcd.goto(0,3) #第四行

lcd.write(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

sleep(1)

# ==================配置文件结束============

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4278

    浏览量

    164101
  • 显示模块
    +关注

    关注

    1

    文章

    46

    浏览量

    23524
收藏 人收藏

    评论

    相关推荐

    #硬声创作季 #LinuxLinux-2.21.1 LCD显示原理详解-2

    LinuxLCD显示
    水管工
    发布于 :2022年11月10日 18:22:05

    #硬声创作季 #LinuxLinux-2.21.1 LCD显示原理详解-3

    LinuxLCD显示
    水管工
    发布于 :2022年11月10日 18:22:30

    64 第11讲--LinuxLCD显示 - 第2节 #硬声创作季

    LCD显示
    充八万
    发布于 :2023年08月19日 20:50:38

    64 第11讲--LinuxLCD显示 - 第3节 #硬声创作季

    LCD显示
    充八万
    发布于 :2023年08月19日 20:51:28

    64 第11讲--LinuxLCD显示 - 第4节 #硬声创作季

    LCD显示
    充八万
    发布于 :2023年08月19日 20:52:19

    lcd1602+NanoPi 2

    介绍I2C LCD1602 KeypadI2C LCD1602 Keypad模块Matrix-I2C_L
    发表于 11-12 17:01

    如果启用USB-MSD,LCD显示垃圾字符

    我用的是PIC32 MX单片机。我的系统时钟和外围时钟是10MHz。我使用的是LCD 16X2显示器。通过这种设置,一切都很好,即液晶显示器是合适的。我已经添加了
    发表于 05-06 12:02

    LCD显示摄像头图像不能重现视频的影像

    linux-3.4.2_camera_jz2440根文件: fs_mini_mdev_new.yaffs2摄像头: USB百问网摄像头驱动: video2lcd来自于 韦东山
    发表于 05-24 02:58

    嵌入式LinuxLCD界面应用程序开发

    介绍了MPC823e 的LCD 控制器。根据10. 16 cm(4 in) STN2LCD LCBA7 T211W显示模块的时序要求设计了该LCD
    发表于 04-24 10:39 41次下载

    基于USB的嵌入式LCD图文显示系统的设计

    本文设计了一种具有 USB 接口的LCD 图文显示系统,包括USB 传输模块、存储器模块以及液晶
    发表于 08-10 15:39 14次下载

    液晶显示模块LCD1602应用

    液晶显示模块LCD1602应用
    发表于 09-25 16:58 682次下载
    液晶<b class='flag-5'>显示</b><b class='flag-5'>模块</b><b class='flag-5'>LCD</b>1602应用

    LCD,LCD是什么意思,LCD的原理是什么

    LCD,LCD是什么意思,LCD的原理是什么 LCD 液晶显示器是 Liquid Crystal Display 的简称,
    发表于 03-10 10:42 2539次阅读

    部分LCD显示模块参数

    电子发烧友为您提供了部分LCD显示模块参数,希望能在您的工作学习上帮助到您!
    发表于 06-23 09:58 2047次阅读

    LCD彩屏模块技术及设计

    关键词:STN-LCD , 彩屏模块 越来越多的手机、PDA、数码相机和视屏游戏机采用STN-LCD全彩色显示器,因此,STN-LCD彩屏
    发表于 02-17 12:25 336次阅读

    通过LCD4Linux在ubuntu下连接LCD屏幕

    1.安装 LCD4Linux 安装完成后,会附带驱动程序,正常情况下插入 USB 后能够识别设备,有 2 种安装方式 2.查看 USB 屏幕的设备名称 通过命令 lsusb 将会
    发表于 07-12 14:54 0次下载