- 一. 需要准备的材料
- 二. 连接单片机
- 三. 配置网络
- 四.配置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 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)