组装小车
小车主要由计算芯片、电机驱动、电机、电源和车架等五个主要模块组成。组装过程就是用导线把计算芯片、电机驱动、电机、电源连接起来,然后把所有部分固定在车架上面。计算芯片对应的是树莓派,电机驱动对应的是L298N芯片,树莓派和L298N之间的连线较为关键,下面先分别介绍下这2个芯片。
先看一下树莓派的GPIO引脚图,前面提到过,树莓派就是通过给这些针脚输出高低电平来给外设发出控制信号,而L298N就会作为一个外设和其中一些针脚连接起来。小车控制程序运行于树莓派之上,采用Python语言,通过RPI.GPIO库来控制这些针脚。RPI.GPIO库有2种方式引用这些针脚,一种是通过直观的顺序编号1~40(也是我采用的)引用的。还用另外一种编号方式,但是不太直观,就不介绍了。
看一下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,到这里,小车整体上应该已经组装完成,接下来需要编写小车控制程序了。