![90ffe144f34e691b9252e88f6fe988b8.png](https://i-blog.csdnimg.cn/blog_migrate/d466512d5b01a561eaa7fe9fe8938747.jpeg)
几年前自己动手DIY做了一个智能小车,用的是ARM-A8的开发板做的控制核心,移植的厂家提供的Linux系统,很多设备的驱动程序都是自己写的,学习了字符设备驱动、块设备驱动驱动,到网络设备驱动等等系统驱动程序的编写,用到了uboot裁剪移植,内核的裁剪和移植,还有文件系统的制作等等内容,应用层软件通过系统调用控制底层设备,还需要封装库等等,很是复杂,这段时间接触到了树莓派和Python,发现很多基础设置现在已经很完善了,开发人员只需要关心应用软件的逻辑和实现就可以了,所以就重新开发了我的智能小车,今天就来控制小车的四个直流减速电机(伺服电机)完成小车的动力控制。
样子基本就是如下图这样子了。
![769bf2b1974ac8facb0469050b614cc4.png](https://i-blog.csdnimg.cn/blog_migrate/9224e596690887ac068fc13ebc668d7f.jpeg)
![1b784ee724fb9f270c8159f5fb487b82.png](https://i-blog.csdnimg.cn/blog_migrate/cb26a14fa954c1127360e8b6d85b9dd9.jpeg)
首先,我在这里使用的电机驱动模块是在网上买的L298四直流三步进电机驱动模块,其中使用的是L298N双H桥直流电机驱动芯片,如下图,其中OUT1-OUT8对应的IN1-IN8可以驱动四个直流减速电机。
![327254c66c3e70f672eb6586f53f1ce4.png](https://i-blog.csdnimg.cn/blog_migrate/4fd60a1e8e5f85b6fa5db8a8cd25536f.jpeg)
由于我的四个电机是相对安装的,蓝线和绿线接线如下图,这是从上向下的顶视图。
![7aa43f1dfe33a2c8557d043db10f2fc2.png](https://i-blog.csdnimg.cn/blog_migrate/4a91c2ba7dd21e8bf2557f2686d74ca5.png)
下面我们就写一个在树莓派上面运行的PyQt5的程序,可以通过GPIO口控制小车的行进,而且可以在Qt界面中操作。
一、软件编码
1、使用PyQt5设计界面
使用QtDesigner设计一个UI界面,保存为HomePage.ui文件,可以自行设计,主要目的是通过点击按钮,达到控制小车前后左右移动的目的,如下图:
![f209274bffd0e6c5af82dc835235b305.png](https://i-blog.csdnimg.cn/blog_migrate/9a3495de14c51921177b057d9fb37585.jpeg)
2、将HomePage.ui文件转换为ui_HomePage.py,使用pyuic5命令或者在PyCharm中直接转换:
pyuic5 -o ui_HomePage.py HomePage.ui
或
![ff086c9d7a6bbe9bc3854978e11e6d5b.png](https://i-blog.csdnimg.cn/blog_migrate/2469cd3d3634e45ef6acd0489c1037d5.png)
这样我们就创建了一个UI界面,目录结构如下: