1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 嵌入式linux ARM 开发板 使用pyqt显示界面

嵌入式linux ARM 开发板 使用pyqt显示界面

时间:2022-03-17 21:24:51

相关推荐

嵌入式linux ARM 开发板 使用pyqt显示界面

野火linux开发板 ubuntu18.04 pyqt5 开发流程

一. 需要准备的材料二. 连接单片机三. 配置网络四.配置python 环境五. apt安装pyqt5 基础模块五点一. pip源码编译安装pyqt5 更多模块六.ubuntu 18.04跳过登录界面直接运行qt关于重启程序关于界面适配屏幕不熄屏需要嵌入式软件定制开发进群

一. 需要准备的材料

linux 开发板(树莓派,香橙派,野火linux开发板,jetson nano)单片机显示屏网络(网线,或者无线模块)单片机电源需要控制的硬件等

烧录ubuntu18.04 教程

二. 连接单片机

串口连接

大部分linux 开发板都自带了串口连接功能,一般是usb数据线连接。

在设备管理器里面找到对应的串口,使用putty连接。

ssh 连接

ssh debian@192.168.31.129

三. 配置网络

一般不同开发板的设置不太一样,都能找到。

没有配置apt 国内源的需要配置,自己搜

四.配置python 环境

安装python3

sudo apt-get -y install python3

安装pip

sudo apt-get -y install python3-pip

配置pip 国内源,自己搜

五. apt安装pyqt5 基础模块

sudo apt-get -y install python3-pyqt5

最后安装一些依赖的deb包,它主要是用于提供tslib触摸、中文字库等功能:

sudo apt-get -y install libts-binsudo apt-get -y install devscansudo apt-get -y install ebf-tslibpluginsudo apt-get -y install ebf-fonts

然后运行:

sudo depmod -a

最后重启开发板:

sudo reboot

野火开发的教程

五点一. pip源码编译安装pyqt5 更多模块

安装qt5-default 里面带了qmake

sudo apt-get install qt5-default

安装编译器

sudo apt-get install cmake gcc g++pip3 install --upgrade pippip3 install wheel setuptools

编译sip和pyqt5 (pip 会自动下载源代码编译 性能差的可能要编译几个小时)

友情提示: 只要不断开连接 卡住可能就是在正常编译 如果卡住超过12个小时 可能就是已经装完了。注意是卡住 而不是 连接中断

pip3 install SIPpip3 install pyqt5

如果报错g++: internal compiler error: Killed (program cc1plus)

问题的原因:内存不足,解决方法就是创建临时交换空间swap:

sudo dd if=/dev/zero of=/swapfile bs=64M count=32sudo mkswap /swapfilesudo swapon /swapfile

注意在第三步可能出现的错误警告:

swapon: /swapfile: insecure permissions 0644, 0600 suggested.

此时需要更改创建的swapfile的权限:

sudo chmod 600 /swapfile

编译结束之后想要恢复的话可以执行下面的命令:

sudo swapoff /swapfilesudo rm /swapfile

六.ubuntu 18.04跳过登录界面直接运行qt

1.Ubuntu自启动 不需要密码登录

sudo vim /etc/lightdm/lightdm.conf

[SeatDefaults]autologin-user=username#需要登录的用户名autologin-user-timeout=delay

2.开机运行qt

关闭默认的桌面和设置为自己的图形程序,

/usr/share/xsessions目录下,将目录下的 .desptop后缀全部备份,有的可能叫其他名字 备份就完事了

mv ubuntu-communitheme-snap.desktop ubuntu-communitheme-snap.desktop.bakmv ubuntu.desktop ubuntu.desktop.bak

到/usr/share/xsessions目录下创建类似的文件 my.desktop

sudo vim /usr/share/xsessions/my.desktop

[Desktop Entry]Name=myComment=auto start myapplicationExec=/home/ubuntu/run.sh #运行qt的脚本Icon=Type=Application

run.sh 内容就是

python3 /home/ubuntu/demo.py

要给可执行权限

chmod +x run.sh

demo.py

import sysfrom PyQt5.QtWidgets import QWidget,QLCDNumber,QSlider,QVBoxLayout,QApplicationfrom PyQt5.QtCore import Qtclass WinForm(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):#1 先创建滑块和 LCD 部件lcd = QLCDNumber(self)slider = QSlider(Qt.Horizontal, self)slider.setMaximum(1000)lcd.display(666)slider.setValue(666)#2 通过QVboxLayout来设置布局vBox = QVBoxLayout()vBox.addWidget(lcd)vBox.addWidget(slider)self.setLayout(vBox)#3 valueChanged()是Qslider的一个信号函数,只要slider的值发生改变,它就会发射一个信号,然后通过connect连接信号的接收部件,也就是lcd。slider.valueChanged.connect(lcd.display)slider.setMinimumWidth(200)slider.setFixedHeight(60)style = "QSlider::groove:horizontal {border:1px solid #999999;height:10px;" \"background-color:#666666;margin:2px 0;}" \"QSlider::handle:horizontal {background-color:#ff0000;border:1px solid #797979;" \"width:50px;margin:-20px;border-radius:25px;}" \slider.setStyleSheet(style);#self.setGeometry(0,0,800,480)self.setWindowTitle("拖动滑块LCD显示")if __name__ == '__main__':app = QApplication(sys.argv)form = WinForm()form.resize(800, 480)form.show()sys.exit(app.exec_())

重启登录

关于重启程序

只需要杀死run.sh的进程 ,桌面就会退出 重新登录就可以重新运行程序

ps -ef | grep run.shsudo kill -9 pid

关于界面适配

只需要程序界面跟屏幕大小像素一致即可

屏幕不熄屏

sudo vim /etc/systemd/logind.conf

将#HandleLidSwitch=suspend 改为 HandleLidSwitch=ignore

需要嵌入式软件定制开发进群

开发一个这样的实体程序在半个月到一个月左右

686070107

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。