树莓派python编程小车_Sunny的树莓派小车DIY教程(附视频)

本文是树莓派小车系列教程的一部分,介绍了所需的组件如树莓派、电机驱动模块、超声波测距等,并详细讲解了模块接线及Python控制马达转动的方法。通过设置GPIO接口,实现了小车前进、后退、左右转向的控制。
摘要由CSDN通过智能技术生成

20151108230954800-0.jpg

一、组件介绍

大家好,我是Sunny。今天将给大家带来系列教程《树莓派小车系列》,先给大家介绍介绍我这次使用到的一些组件。

1、树莓派

20151108224155427-0.jpg

2、小车底盘

20151108224155704-0.jpg

3、小车车轮(马达)

20151108224155601-0.jpg

4、L298N电机驱动模块

20151108224155986-0.jpg

5、超声波测距模块、杜邦线

20151108224155478-0.jpg

6、电池盒

20151108224155171-0.jpg

7、无线网卡

二、模块接线

首先树莓派要安装好系统和python的一些模块。这个小车最主要部分就是L298N模块的控制,控制住了L298N这个模块就控制住了我们整个小车,这里我弄一张图片,大家可以看到每一个地方是干嘛的。然后就是跟树莓派的对接。

L298N的每个接口负责的功能如下图

20151108225039718-0.jpg

下面是树莓派和l298n接线图

20151108225039889-0.jpg

把马达接到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)

20150525192244349.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值