一、组件介绍
大家好,我是Sunny。今天将给大家带来系列教程《树莓派小车系列》,先给大家介绍介绍我这次使用到的一些组件。
1、树莓派
2、小车底盘
3、小车车轮(马达)
4、L298N电机驱动模块
5、超声波测距模块、杜邦线
6、电池盒
7、无线网卡
二、模块接线
首先树莓派要安装好系统和python的一些模块。这个小车最主要部分就是L298N模块的控制,控制住了L298N这个模块就控制住了我们整个小车,这里我弄一张图片,大家可以看到每一个地方是干嘛的。然后就是跟树莓派的对接。
L298N的每个接口负责的功能如下图
下面是树莓派和l298n接线图
把马达接到L298N上面,然后把电池盒的正极接到12v接口,负极接到接地接口(中间那个),然后第三个接口需要一个5v的输入,我就从树莓派的GPIO2取。
in1、in2、in3、in4分别接树莓派GPIO的11、12、13、15这几个口。这张图大家应该能理解到上面in1到in4的接法了,还有电源的接法。
三、马达转动
上面讲了我们如何把树莓派和l298n和马达接线连接起来。既然连起来了,我们就应该来试试如何用树莓派通过python来控制这个马达的转动。
首先我们需要安装python的gpio模块,可以通过pip安装也可以通过下载源代码安装。
sudo vim xiaoche.py
#导入gpio的模块 import RPi.GPIO as GPIO import time #设置gpio口的模式 GPIO.setmode(GPIO.BOARD) #定义信号接口gpio口 INT1 = 11 INT2 = 12 INT3 = 13 INT4 = 15 #设置gpio口为输出 GPIO.setup(INT1,GPIO.OUT) GPIO.setup(INT2,GPIO.OUT) GPIO.setup(INT3,GPIO.OUT) GPIO.setup(INT4,GPIO.OUT) #这里参考上一节模块接线的L298N模块的控制图 GPIO.output(INT1,GPIO.HIGH) GPIO.output(INT2,GPIO.LOW) GPIO.output(INT3,False) GPIO.output(INT4,False) #延时2秒之后执行cleanup释放GPIO接口 time.sleep(2) GPIO.cleanup()
代码写到之后我们保存退出,接着执行一下观看马达有没有转动。
sudo python xiaoche.py
四、底盘安装
五、小车跑起来
下面是 xiaoche.py 完整的代码。
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) IN1 = 11 IN2 = 12 IN3 = 13 IN4 = 15 def init(): GPIO.setup(IN1,GPIO.OUT) GPIO.setup(IN2,GPIO.OUT) GPIO.setup(IN3,GPIO.OUT) GPIO.setup(IN4,GPIO.OUT) def qianjin(sleep_time): GPIO.output(IN1,GPIO.HIGH) GPIO.output(IN2,GPIO.LOW) GPIO.output(IN3,GPIO.HIGH) GPIO.output(IN4,GPIO.LOW) time.sleep(sleep_time) GPIO.cleanup() def cabk(sleep_time): GPIO.output(IN1,GPIO.LOW) GPIO.output(IN2,GPIO.HIGH) GPIO.output(IN3,GPIO.LOW) GPIO.output(IN4,GPIO.HIGH) time.sleep(sleep_time) GPIO.cleanup() def left(sleep_time): GPIO.output(IN1,False) GPIO.output(IN2,False) GPIO.output(IN3,GPIO.HIGH) GPIO.output(IN4,GPIO.LOW) time.sleep(sleep_time) GPIO.cleanup() def right(sleep_time): GPIO.output(IN1,GPIO.HIGH) GPIO.output(IN2,GPIO.LOW) GPIO.output(IN3,False) GPIO.output(IN4,False) time.sleep(sleep_time) GPIO.cleanup() init() cabk(10)
l298n和树莓派不需要共地吗?
当然用移动电源啊
同问,
l298n和树莓派不需要共地吗?
我也在做小车,不需要地是有问题的,没有共地,一开始能转,几天后多次后马达的电压电流浮动较大,导致轮子转动不正常。
天下文章一大抄,些篇文章明显是从哪里抄的或译的。
这个教程是最基础的教程,讲的很明白,用来入门不错。但是做智能小车有点大材小用的,智能小车还是arduino的简单。
超声波模块都没用到啊
L298N和国外讲解的不同,是有所保留吗?
有没有能够实现定位的模块
有个地方搞错了吧,l298n那个5v是输出,不应该接到树莓派同样也是5v输出的引脚
有没有能替代l298n的产品,现在不好买了