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

嵌入式linux ARM 开发板 使用pyqt显示界面一.需要准备的材料linux开发板(树莓派,香橙派,野火linux开发板,jetsonnano)单片机显示屏网络(网线,或者无线模块)单片机电源需要控制的硬件等二.连接单片机串口连接大部分linux开发板都自带了串口连接功能,一般是usb数据线连接。在设备管理器里面找到对应的串口,使用putty连接。ssh连接sshdebian@192.168.31.129三.配置网络一般不同开发板的设置不太一样,都能找到。没有配置apt国内源的需要配置

一. 需要准备的材料

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

烧录ubuntu18.04 教程

二. 连接单片机

  1. 串口连接

大部分linux 开发板都自带了串口连接功能,一般是usb数据线连接。
在设备管理器里面找到对应的串口,使用putty连接。
在这里插入图片描述

  1. ssh 连接
ssh debian@192.168.31.129

在这里插入图片描述

三. 配置网络

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

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

四.配置python 环境

  1. 安装python3
sudo apt-get -y install python3
  1. 安装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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注