嵌入式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-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 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
嵌入式linux ARM 开发板 使用pyqt显示界面相关推荐
- 通过vscode进行嵌入式linux arm开发板gdb调试
下载和安装vscode, 下载 vscode for windows 地址: Visual Studio Code - Code Editing. Redefined 安装 "remote ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十四)文字显示
文章目录 一.文字显示 1.1 字符的编码方式 1.1.1 编码和字体 a. ASCII b. ANSI c. UNICODE 1.1.2 UNICODE编码实现 1.2 ASCII字符点阵显示 1. ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十五)驱动程序基石
文章目录 1.1 休眠与唤醒 1.1.1 适用场景 1.1.2 内核函数 1.1.2.1 休眠函数 1.1.2.2 唤醒函数 19.1.3 驱动框架 1.1.4 编程 1.1.4.1 驱动程序关键代码 ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动
文章目录 1. IMX6ULL开发板初次操作 1.1 100ask_imx6ull开发板硬件资源简介 1.1.1 100ask imx6ull mini开发板 1.2 100ask_imx6ull开发 ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程
文章目录 1.输入系统应用编程 1.1 什么是输入系统 1.2 输入系统框架及调试 1.2.1 框架概述 1.2.2 编写APP需要掌握的知识 1.2.3 调试技巧 **1. 确定设备信息** **2 ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十八)串口编程
文章目录 一. 串口应用程序编程介绍 1.串口的作用 2. 本套视频特别说明 二. 硬件知识_UART硬件介绍 1. 串口的硬件介绍 2. 串口的参数 3. 串口电平 4. 串口内部结构 三. TTY ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十二)LED模板驱动程序的改造:设备树
文章目录 1.LED模板驱动程序的改造:设备树 1.1 总结3种写驱动程序的方法 1.2 怎么使用设备树写驱动程序 1.2.1 设备树节点要与platform_driver能匹配 1.2.2 设备树节 ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十七)具体单板的LED驱动程序
文章目录 1.1 怎么写LED驱动程序? 1.2 百问网IMX6ULL的LED驱动程序 1.2.1 led原理图 1.2.2 所涉及的寄存器操作 1.2.3 写程序 1.2.4 上机实验 1.2.5 ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(一) 嵌入式Linux开发基本概念以及开发流程介绍
文章目录 1.linux开发初了解 1.1 嵌入式Linux开发的基本概念 1.1.1关于Git的背景介绍 1.1.2关于repo的背景介绍 1.1 3 一些关于此背景知识的介绍 1.1.4关于Lin ...
最新文章
- 修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全
- ITK:图像的置换轴
- gogs创建项目_容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
- 数据挖掘竞赛-员工离职预测训练赛
- 连接局域网的SQL Server数据库配置
- 三位数除以两位数竖式计算没有余数_苏教四上期末复习——两、三位数除以两位数...
- Flowable 数据库表结构 ACT_ID_USER
- Java程序员面试失败的5大原因
- 用css实现星级评分效果
- Python如何从社交用户信息中寻找潜在客户?
- nginx访问量统计
- solidity教程(四)僵尸作战系统
- matlab 脉冲频域压缩,大作业-雷达线性调频脉冲压缩的原理及其MATLAB仿真.doc
- 几大ERP软件实施方法与过程
- 新买的电脑是win11系统,找不到DirectX工具?教你如何操作打开
- 重力加速度传感器角度输出
- ACM图灵奖现状以及得主及其分别分别的贡献
- Faceted project metadata file ... could not be read.
- Linux部署nacos启动提示No DataSource set处理办法
- MATLAB----模糊神经网络
热门文章
- 检测ip是否为中国php,PHP判断IP是中国IP还是外国IP
- yocto下的cmake版本hello world,追加分层使用
- 一文了解复旦大学NLP实验室的14篇EMNLP 2022长文内容
- 如何在以太坊上发行自己的代币
- S3C6410 SD Card一键烧写 WINCE 6.0
- 2022年ccpc威海站
- android日期分组相册,按时间分类的自定义相册
- java des ecb_【转】 java DES ECB模式对称加密解密
- sqlplus配置连接mysql_不安装oracle客户端用sqlplus连接数据库
- HBuilder/HBuilderX真机运行、手机运行、真机联调常见问题