树莓派小车pid控制_7.(番外篇)Raspberry Pi(树莓派)使用PyQt5控制伺服电机转动

本文介绍了如何使用树莓派、PyQt5和L298四直流三步进电机驱动模块来控制直流减速电机。通过设计UI界面,实现通过点击按钮控制小车的行进,代码包括UI设计、伺服电机驱动模块编写和主程序入口。
摘要由CSDN通过智能技术生成

90ffe144f34e691b9252e88f6fe988b8.png

几年前自己动手DIY做了一个智能小车,用的是ARM-A8的开发板做的控制核心,移植的厂家提供的Linux系统,很多设备的驱动程序都是自己写的,学习了字符设备驱动、块设备驱动驱动,到网络设备驱动等等系统驱动程序的编写,用到了uboot裁剪移植,内核的裁剪和移植,还有文件系统的制作等等内容,应用层软件通过系统调用控制底层设备,还需要封装库等等,很是复杂,这段时间接触到了树莓派和Python,发现很多基础设置现在已经很完善了,开发人员只需要关心应用软件的逻辑和实现就可以了,所以就重新开发了我的智能小车,今天就来控制小车的四个直流减速电机(伺服电机)完成小车的动力控制。

样子基本就是如下图这样子了。

769bf2b1974ac8facb0469050b614cc4.png

1b784ee724fb9f270c8159f5fb487b82.png

首先,我在这里使用的电机驱动模块是在网上买的L298四直流三步进电机驱动模块,其中使用的是L298N双H桥直流电机驱动芯片,如下图,其中OUT1-OUT8对应的IN1-IN8可以驱动四个直流减速电机。

327254c66c3e70f672eb6586f53f1ce4.png

由于我的四个电机是相对安装的,蓝线和绿线接线如下图,这是从上向下的顶视图。

7aa43f1dfe33a2c8557d043db10f2fc2.png

下面我们就写一个在树莓派上面运行的PyQt5的程序,可以通过GPIO口控制小车的行进,而且可以在Qt界面中操作。

一、软件编码

1、使用PyQt5设计界面

使用QtDesigner设计一个UI界面,保存为HomePage.ui文件,可以自行设计,主要目的是通过点击按钮,达到控制小车前后左右移动的目的,如下图:

f209274bffd0e6c5af82dc835235b305.png

2、将HomePage.ui文件转换为ui_HomePage.py,使用pyuic5命令或者在PyCharm中直接转换:

pyuic5 -o ui_HomePage.py HomePage.ui

ff086c9d7a6bbe9bc3854978e11e6d5b.png

这样我们就创建了一个UI界面,目录结构如下:

### 树莓派5B串口通信配置 #### 修改配置文件以开启串口 为了使树莓派5B能够通过`/dev/ttyAMA0`进行串口通信,在Ubuntu系统下需编辑配置文件来激活该功能。这可以通过命令行工具完成,具体操作如下: 编辑位于`/boot/firmware/config.txt`中的配置文件,添加必要的参数以确保UART接口正常工作[^1]。 ```bash sudo nano /boot/firmware/config.txt ``` 在文件末尾追加以下内容以便于调整蓝牙子系统的默认行为并释放主要UART用于其他目的[^4]: ```text dtoverlay=pi3-miniuart-bt ``` 保存更改后退出编辑器,并执行重启指令让新的设置生效: ```bash sudo reboot ``` #### 查看可用的串口列表 一旦重新启动完毕,可以利用下面这条命令检查当前已加载的所有UART驱动程序以及它们对应的设备节点名称: ```bash ls /dev/ttyAMA* ``` 此命令会显示所有匹配`ttyAMA`模式的串行端口路径,从而帮助确认目标串口是否已被正确识别和初始化。 #### 连接USB转TTL模块至树莓派 对于物理连接部分,则按照标准做法将USB转TTL模块上的信号线(GND, TX, RX)对应接到树莓派相应管脚上。注意保持数据传输方向的一致性——即发送方(TX)对接接收方(RX),反之亦然[^2]。 #### 测试串口通信 最后一步是在计算机一侧运行合适的软件来进行实际的数据交换测试。例如,可以在Windows或Linux平台上安装图形化的串口调试助手应用程序,设定好相同的波特率等参数之后尝试向树莓派发送消息或者读取其返回的信息流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值