组装小车

小车主要由计算芯片、电机驱动、电机、电源和车架等五个主要模块组成。组装过程就是用导线把计算芯片、电机驱动、电机、电源连接起来,然后把所有部分固定在车架上面。计算芯片对应的是树莓派,电机驱动对应的是L298N芯片,树莓派和L298N之间的连线较为关键,下面先分别介绍下这2个芯片。

gpio

先看一下树莓派的GPIO引脚图,前面提到过,树莓派就是通过给这些针脚输出高低电平来给外设发出控制信号,而L298N就会作为一个外设和其中一些针脚连接起来。小车控制程序运行于树莓派之上,采用Python语言,通过RPI.GPIO库来控制这些针脚。RPI.GPIO库有2种方式引用这些针脚,一种是通过直观的顺序编号1~40(也是我采用的)引用的。还用另外一种编号方式,但是不太直观,就不介绍了。

L298N IO

看一下L298N接口,其中1(12V输入)和2(电源地)分别接电源对应正负极。5(马达A输出)和6(马达B)各自引出2条线接到马达的2个接线上。小车是四轮驱动,有四个马达,所以需要把小车左边两个轮子马达串联接到5(马达A输出),小车右边2个轮子串联接到6(马达B输出)。连接L298N和马达的导线使用的是杜邦线,可以使用电烙铁焊接一下。

其中3(马达A使能)和4(马达B使能)上面的跳线帽需要拔掉,同时绿色圈出的2个针脚需要分别接到树莓派GPIO编号13、15针脚(也可以接其他GPIO针脚)上面。这样树莓派通过给其13和15针脚高电平就会使得L298N给马达A和马达B驱动电压,反之使得L298N不给马达A和马达B驱动电压(马达不工作)。

其中7(单片机IO控制输入)用来控制马达转动方向或者制动,共有4个针脚(从左到右编号为1~4),左侧2个控制马达A,右侧2个控制马达B。下面的表格反映了如何通过马达使能和IO输入信号控制马达运动方式。

马达使能 A/B 输入引脚 1/3 输入引脚 2/4 马达运动方式
高电平 高电平 低电平 正转
高电平 低电平 高电平 反转
高电平 高电平 高电平 制动
高电平 低电平 低电平 制动
低电平 - - 自由运动

如果要通过树莓派控制L298N IO输入信号,需要把L298N的4个IO输入针脚按照顺序接到树莓派的GPIO编号31、33、35、37针脚(也可以接其他GPIO针脚)上面。这样树莓派通过给其31、33、35、37针脚高或者低电平,再结合其13、15针脚的高或低电平就可以控制马达的运动情况。

前面提到过小车左侧2个轮子串联接到马达A输出,右侧2个轮子串联接到马达B输出。原因是小车左侧2个轮子转动方向始终是一致的,通过马达A输出控制,右侧2个轮子转动方向始终是一致的,通过马达B输出控制。前进时4个轮子同时向前转,后退时4个轮子同时向后转。左转时左侧2个轮子向后转,右侧两个轮子向前转。右转时左侧2个轮子向前转,右侧两个轮子向后转。下面的表格反映了如何通过树莓派GPIO输出信号控制控制小车运动方式。

GPIO 13/15 GPIO 31 GPIO 33 GPIO 35 GPIO 37 小车运动方式
高电平 高电平 低电平 高电平 低电平 前进
高电平 低电平 高电平 低电平 高电平 后退
高电平 低电平 高电平 高电平 低电平 左转
高电平 高电平 低电平 低电平 高电平 右转
低电平 - - - - 停止

只要按照上面这个表格编写GPIO控制程序,就可以顺利的让小车跑起来了,当然有个细节需要注意下,就是小车的运动方式和安装马达方向也有关系,按照上面的说明的方式进行接线,按照上面的表格进行编程,小车的运动方向有可能是反的,具体在调试小车时可以注意下。

还有一个重要的点,L298N和树莓派需要共地,需要从2(电源地)引出一条导线接在树莓派针脚39(Ground)上面。

然后L298N通过18650锂电池组供电,之前已经连上了。树莓派通过充电宝供电。现在需要把车架搭好,然后把各个部分安装固定到车架上。主要有树莓派芯片、L298N芯片、18650锂电池组、充电宝等都固定在车架上,按照上面说明的接线方式连上导线。最后再说明下,组装过程时,实际是先搭好车架,想好每个组件安装在哪里,怎么布线方便等然后再开始接线。如果上来就接线,后面安装固定时就不方便了。

OK,到这里,小车整体上应该已经组装完成,接下来需要编写小车控制程序了。