野火linux开发板 ubuntu18.04 pyqt5 开发流程
一. 需要准备的材料
linux 开发板
(树莓派,香橙派,野火linux开发板,jetson nano)- 单片机
显示屏
网络
(网线,或者无线模块)- 单片机
电源
- 需要控制的硬件等
二. 连接单片机
- 串口连接
大部分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-bin
sudo apt-get -y install devscan
sudo apt-get -y install ebf-tslibplugin
sudo 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 pip
pip3 install wheel setuptools
编译sip和pyqt5 (pip 会自动下载源代码编译 性能差的可能要编译几个小时)
友情提示: 只要不断开连接 卡住可能就是在正常编译 如果卡住超过12个小时 可能就是已经装完了。注意是卡住 而不是 连接中断
。
pip3 install SIP
pip3 install pyqt5
如果报错g++: internal compiler error: Killed (program cc1plus)
问题的原因:内存不足,解决方法就是创建临时交换空间swap:
sudo dd if=/dev/zero of=/swapfile bs=64M count=32
sudo mkswap /swapfile
sudo swapon /swapfile
注意在第三步可能出现的错误警告:
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
此时需要更改创建的swapfile的权限:
sudo chmod 600 /swapfile
编译结束之后想要恢复的话可以执行下面的命令:
sudo swapoff /swapfile
sudo 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.bak
mv ubuntu.desktop ubuntu.desktop.bak
到/usr/share/xsessions目录下创建类似的文件 my.desktop
sudo vim /usr/share/xsessions/my.desktop
[Desktop Entry]
Name=my
Comment=auto start myapplication
Exec=/home/ubuntu/run.sh #运行qt的脚本
Icon=
Type=Application
run.sh 内容就是
python3 /home/ubuntu/demo.py
要给可执行权限
chmod +x run.sh
demo.py
import sys
from PyQt5.QtWidgets import QWidget,QLCDNumber,QSlider,QVBoxLayout,QApplication
from PyQt5.QtCore import Qt
class 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.sh
sudo kill -9 pid
关于界面适配
只需要程序界面跟屏幕大小像素一致即可
屏幕不熄屏
sudo vim /etc/systemd/logind.conf
将#HandleLidSwitch=suspend 改为 HandleLidSwitch=ignore
需要嵌入式软件定制开发进群
开发一个这样的实体程序在半个月到一个月左右
686070107
今天的文章嵌入式linux ARM 开发板 使用pyqt显示界面分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9385.html