使用Python进行串口通信软件开发(2)——入门实例

往期推荐

Python语言串口通信软件开发(1)

Python语言快速入门(上)

Python语言快速入门(下)

Python快速入门(续) | 类与对象1

Pycharm2020.3.5 安装教程(附)

文章中的所示例软件设计工程,如需下载,请在“我的学习交流小平台 ”公众号内直接回复:  SL001   即可获取。

公众号文章目录可以点击访问!!

1 前言

    前面的所有准备工作基本已经完成了,在串口通信软件设计之前,我们先进行一个简单的软件界面设计任务来入个门。如果您还未完成前面的准备工作,还请尽可能阅读一下上一篇文章,如有需要可以访问:Python语言串口通信软件开发(1),以方便后面工作更好的展开。

2 新建一个工程

2.1 新建一个工程文件夹

    来让我们在某个本地磁盘某个文件夹下创建一个工程文件夹,这里以“TestSample”为例进行新建,如图2.1所示。

图2.1 新建一个工程文件夹

 

2.2 启动Pycharm软件

图2.2 启动软件

 

2.3 新建工程项目

注意:新建一个工程有两种方式,如图2.3和2.4所示。

图2.3 新建工程方法1

 

图2.4 新建工程方法2

 

图2.5 基本配置

 

图2.6 工程界面

 

图2.7 新建一个Py文件

 

输入文件名之后,然后我们回车,即可在工程目录下创建一个py文件,这里示例的是“mainsample.py”文件,如图2.8所示。

图2.8 程序主界面

 

3 软件界面设计

3.1 打开设计工具

若您还未配置工具,请点击访问参考

图3.1 打开设计工具

 

图3.2 Qtdesigner界面

 

3.2 设计目标

!!今天我们先来设计一个计算圆的面积的软件。

  • 输入:半径值

  • 输出:面积值(其中输出通过一个按钮触发)

3.3 设计准备

软件看起比较复杂,但是不要紧,跟着我,我们一同设计哈!

图3.3 创建一个ui文件

 

图3.4 设计工具界面简介

 

图3.5 本次设计所需控件

 

  • 如图3.5所示,首先拖拽控件栏的滚动条,在Display Widgets容器栏找到Label标签控件,拖拽三个这样的控件到中间的软件界面设计的编辑框中;

  • 同样,在Input Widgets容器栏中找到Line Edit文本控件,拖拽到中间的编辑框中,用于输入圆的半径值;

  • 最后,在Buttons容器栏中找到Push Button按钮控件,拖拽该控件到中间的编辑框中,用于触发计算过程,最终得到如图3.6所示的界面。

图3.6 初步界面

3.4 修改样式属性

    下面我们将修改拖拽到界面编辑视窗中各控件的属性,来让我们将视角移至右上角对象查看器栏,修改各个控件的对象名。

    各控件修改参数如下表所示。

Class(类)textobjectName
QLable半径:radiusLabel
QLineEdit raduisLineEdit
QLabel面积:areaLabel_1
QLabel areaLabel_2
QPushButton计算countBtn

方式一(建议),如图3.7和3.8所示

图3.7 对象名称修改

 

图3.8 text值修改

方式二,如图3.9所示

图3.9 属性修改

 

    这里我们需要对areaLabel_2的控件样式修改一下,如图3.10所示操作,我们将areaLabel_2的“frameShape”修改为Panel;将“frameShadow”修改为Sunken,得到的效果如图3.10左侧所示。

图3.10 修改样式

3.5 生成py文件

    经过上面一系列的操作,然后我们进行文件保存,好的习惯应该是每隔一段时间保存一下文件的,哈哈!

图3.11 保存ui文件

 

图3.12 工程目录

 

图3.13 ui文件转py文件

 

图3.14 生成py文件

 

你可以打开双击生成的这个py文件来瞧瞧!!

4主程序编写

4.1 程序语言文本

# @FileName: mainsample.py
# @Software: PyCharm 2020.3.5
# @Author: Zhu C.Q.
# @Date: 2021/04/03

# 该程序需要一定的Python语言基础,以及类相关的知识;
# 如果您没有这方面的基础,可以阅读文章尾部给出的参考资料,或者也可以抄过来尝试一下了~

import sys
import numpy as np
from PyQt5.QtWidgets import QMainWindow, QApplication
from uiFiles.countInterface_ui import Ui_MainWindow

# 采用单继承与界面独立封装方式进行逻辑设计,听不懂也没关系~
class CountWindown(QMainWindow):
    def __init__(self, parent = None):  # 该函数为构造函数,实例化该类后会自动执行
        super().__init__(parent)        # 调用父类构造函数,创建QMainWindow窗体,此时self就是一个QMainWindow对象
        self.mainUI = Ui_MainWindow()   # 实例化一个UI对象
        self.mainUI.setupUi(self)
        self.InitEvent()                # 调用初始化函数

    def InitEvent(self):
        self.mainUI.countBtn.clicked.connect(self.CountArea)    # 声明信号,若发生点击事件,就执行CountArea方法

    def CountArea(self):
        radius = float(self.mainUI.radiusLineEdit.text())  # 读取输入框的数据,需要转化成浮点数才能进行计算
        area = np.pi * radius ** 2                  # np.pi 就是 π
        self.mainUI.areaLabel_2.setText(str(area))  # 在输出框设置计算好的数值,注意这里必须是字符串


    
if __name__ == "__main__":
    app = QApplication(sys.argv)    # 创建app,用QApplication类,这里的argv为命令行变量数组
                                    # 在任何Qt窗口的系统部件被使用之前必须创建QApplication对象,将控制权交于Qt
    countinterface = CountWindown()
    countinterface.show()
    sys.exit(app.exec_())           # 程序进入消息循环,等待可能的输入进行响应
    

4.2 运行一下

    下来让我们运行它吧!

首次运行我们需要安装如图4.1所示进行操作,后面我可以按照图4.2所示进行运行操作。

图4.1 运行方式1

 

图4.2 运行方式2

 

    如图4.3所示是生成的界面,我们输入一个半径值:10,然后点击计算,就会显示出结果。

图4.3 软件界面

 

4.3 修改一下

我们试着修改一下软件的标题,有两种方式,这里比较推荐第一种。

方式一:

图4.4 打开.ui文件

 

图4.5 修改标题
图4.6 ui转py文件

 

方式二:

图4.7 直接修改py文件

运行修改后的主程序

图4.8 修改后的软件界面

 

    到这里示例软件设计基本就结束啦,不知道你是否已经了解了初步的软件设计流程。

5 结束语

    好了,今天就到这里了,我已经讲一个入门的软件设计过程展示给大家了,有什么问题,欢迎留言讨论。后面几期我将正式开始串口通信软件的设计,还望大家喜欢!!这个软件也是我后期研究课题可能应用的工具,我会尽力完美的设计~~ 拜拜!^_^

    感谢你的阅读,欢迎点赞和分享支持!

更多内容可以关注我的微信公众号:我的学习交流小平台

了解一下我哈:关于我(About Me!)

### 回答1: PyCharm是一个Python集成开发环境(IDE),而PyQt则是一个用于创建Python图形用户界面(GUI)的工具包。串口调试是指通过串行通信接口来与设备进行通信的过程。 在PyCharm使用PyQt进行串口调试并实现波形显示,可以按照以下步骤进行: 1. 首先,确保已经正确安装了PyCharm和PyQt。可以在PyCharm中创建一个新的Python项目。 2. 导入所需的模块,在代码中加入以下语句: ``` from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo import pyqtgraph as pg ``` 3. 创建一个窗口,用于显示波形。可以使用PyQt中的QtWidgets模块创建一个窗口对象,并使用pg模块中的PlotWidget来绘制波形图。例如: ``` app = QtWidgets.QApplication([]) win = pg.PlotWidget() win.show() ``` 4. 打开串口并设置相关参数。使用QSerialPort模块来打开串口,并设置波特率、数据位、校验位等参数。例如: ``` serial_port = QSerialPort() serial_port.setPortName("COM1") # 设置串口号 serial_port.setBaudRate(9600) # 设置波特率 serial_port.setDataBits(QSerialPort.DataBits(8)) # 设置数据位 serial_port.setParity(QSerialPort.Parity(0)) # 设置校验位 ``` 5. 实现串口数据接收并更新波形显示。通过连接信号和槽函数,可以实现当串口接收到数据时,自动更新波形显示。例如: ``` def update_waveform(): data = serial_port.readAll().data() # 读取串口数据 # 在波形图中添加数据点 win.plot(range(len(data)), [data[i] for i in range(len(data))]) serial_port.readyRead.connect(update_waveform) # 接收到串口数据时调用update_waveform函数 ``` 6. 打开串口并启动事件循环。使用open()方法打开串口,然后调用exec_()方法启动事件循环以保持程序运行。例如: ``` serial_port.open(QtCore.QIODevice.ReadWrite) # 打开串口 app.exec_() # 启动事件循环 ``` 通过以上步骤,就可以在PyCharm中实现使用PyQt进行串口调试并实现波形显示。当程序运行时,串口接收到的数据会被读取并绘制成波形图显示在窗口中。 ### 回答2: PyCharm是一种集成开发环境,适用于Python的编程和调试。PyQt是Python的一种GUI编程框架,可以用来创建图形用户界面。串口调试是指使用串口通讯协议进行数据传输和调试。波形显示是一种将数据以波形形式展示的方式。 在PyCharm使用PyQt进行串口调试,可以通过以下步骤实现波形显示: 1. 导入必要的库: ```python import serial # 用于串口通信 from PyQt5.QtWidgets import QApplication, QMainWindow # 用于创建GUI窗口 from pyqtgraph import PlotWidget, plot # 用于绘制波形图 from PyQt5 import QtGui # 用于绘制图形界面 ``` 2. 创建GUI窗口: ```python class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("串口波形显示") self.graphWidget = PlotWidget(self) self.setCentralWidget(self.graphWidget) ``` 3. 初始化串口: ```python ser = serial.Serial('COM1', 9600) # 假设串口号为COM1,波特率为9600 ``` 4. 获取数据并更新波形图: ```python def update(): data = ser.readline().decode().strip() # 读取串口接收到的数据 # 在此对数据进行处理,如解析和转换 # 绘制波形图 pass ``` 5. 启动GUI窗口并更新波形图: ```python if __name__ == '__main__': app = QApplication([]) window = MyWindow() timer = QtCore.QTimer() timer.timeout.connect(update) timer.start(0) window.show() app.exec() ``` 以上为使用PyCharm和PyQt实现串口调试波形显示的基本步骤。根据具体需求,可以对代码进行优化和扩展,实现更多功能,如设置坐标轴范围、改变波形样式等。 ### 回答3: PyCharm是一种集成开发环境(IDE),可用于编、调试和运行Python代码。它提供了许多功能,包括代码自动补全、调试器和版本控制集成,使开发人员能够更轻松地创建和管理Python项目。 PyQt是一种用于创建图形用户界面(GUI)的Python绑定库,它基于Qt框架。借助PyQt,开发人员可以使用Python跨平台的应用程序,包括窗口、按钮、文本框等各种GUI元素。 串口调试是通过串行通信接口与外部设备进行通信调试的过程。在PyCharm中,我们可以使用PySerial库来实现串口调试。PySerial提供了一组简便的函数来操作串口,包括打开串口、设置波特率、发送和接收数据等。 波形显示是一种可视化方式,用于展示信号随时间变化的图形。在PyCharm中,我们可以使用Matplotlib库来实现波形显示。Matplotlib提供了一些图形绘制函数,我们可以将接收到的数据进行处理后,在图形上动态显示出来,从而实现波形显示。 使用PyCharm、PyQt和PySerial,我们可以创建一个串口调试程序,其中PyQt用于创建GUI界面,PySerial用于串口通信,Matplotlib用于绘制波形。在程序中,我们可以通过GUI界面设置串口参数,打开串口,发送和接收数据,并将接收到的数据实时绘制成波形显示。这样,我们就可以方便地进行串口调试,同时可视化地观察信号的变化情况。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sokedev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值