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

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

一. 需要准备的材料

  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 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显示界面相关推荐

  1. 通过vscode进行嵌入式linux arm开发板gdb调试

    下载和安装vscode, 下载 vscode for windows 地址:  Visual Studio Code - Code Editing. Redefined 安装 "remote ...

  2. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十四)文字显示

    文章目录 一.文字显示 1.1 字符的编码方式 1.1.1 编码和字体 a. ASCII b. ANSI c. UNICODE 1.1.2 UNICODE编码实现 1.2 ASCII字符点阵显示 1. ...

  3. 嵌入式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 驱动程序关键代码 ...

  4. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动

    文章目录 1. IMX6ULL开发板初次操作 1.1 100ask_imx6ull开发板硬件资源简介 1.1.1 100ask imx6ull mini开发板 1.2 100ask_imx6ull开发 ...

  5. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程

    文章目录 1.输入系统应用编程 1.1 什么是输入系统 1.2 输入系统框架及调试 1.2.1 框架概述 1.2.2 编写APP需要掌握的知识 1.2.3 调试技巧 **1. 确定设备信息** **2 ...

  6. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十八)串口编程

    文章目录 一. 串口应用程序编程介绍 1.串口的作用 2. 本套视频特别说明 二. 硬件知识_UART硬件介绍 1. 串口的硬件介绍 2. 串口的参数 3. 串口电平 4. 串口内部结构 三. TTY ...

  7. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十二)LED模板驱动程序的改造:设备树

    文章目录 1.LED模板驱动程序的改造:设备树 1.1 总结3种写驱动程序的方法 1.2 怎么使用设备树写驱动程序 1.2.1 设备树节点要与platform_driver能匹配 1.2.2 设备树节 ...

  8. 嵌入式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 ...

  9. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(一) 嵌入式Linux开发基本概念以及开发流程介绍

    文章目录 1.linux开发初了解 1.1 嵌入式Linux开发的基本概念 1.1.1关于Git的背景介绍 1.1.2关于repo的背景介绍 1.1 3 一些关于此背景知识的介绍 1.1.4关于Lin ...

最新文章

  1. 修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全
  2. ITK:图像的置换轴
  3. gogs创建项目_容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
  4. 数据挖掘竞赛-员工离职预测训练赛
  5. 连接局域网的SQL Server数据库配置
  6. 三位数除以两位数竖式计算没有余数_苏教四上期末复习——两、三位数除以两位数...
  7. Flowable 数据库表结构 ACT_ID_USER
  8. Java程序员面试失败的5大原因
  9. 用css实现星级评分效果
  10. Python如何从社交用户信息中寻找潜在客户?
  11. nginx访问量统计
  12. solidity教程(四)僵尸作战系统
  13. matlab 脉冲频域压缩,大作业-雷达线性调频脉冲压缩的原理及其MATLAB仿真.doc
  14. 几大ERP软件实施方法与过程
  15. 新买的电脑是win11系统,找不到DirectX工具?教你如何操作打开
  16. 重力加速度传感器角度输出
  17. ACM图灵奖现状以及得主及其分别分别的贡献
  18. Faceted project metadata file ... could not be read.
  19. Linux部署nacos启动提示No DataSource set处理办法
  20. MATLAB----模糊神经网络

热门文章

  1. 检测ip是否为中国php,PHP判断IP是中国IP还是外国IP
  2. yocto下的cmake版本hello world,追加分层使用
  3. 一文了解复旦大学NLP实验室的14篇EMNLP 2022长文内容
  4. 如何在以太坊上发行自己的代币
  5. S3C6410 SD Card一键烧写 WINCE 6.0
  6. 2022年ccpc威海站
  7. android日期分组相册,按时间分类的自定义相册
  8. java des ecb_【转】 java DES ECB模式对称加密解密
  9. sqlplus配置连接mysql_不安装oracle客户端用sqlplus连接数据库
  10. HBuilder/HBuilderX真机运行、手机运行、真机联调常见问题