树莓派小车如何实现前进和后退

发布时间:2021-11-19 18:39:11 作者:柒染
来源:亿速云 阅读:352

本篇文章给大家分享的是有关树莓派小车如何实现前进和后退,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

树莓派小车之前进

买了一个树莓派小车的配件,当然,有二次开发板板,不过原理相同。 买的板子是创乐博的智能小车套件。 以下代码来自其指导文件,但是文件都是英文,没有代码讲解,导致很难看得懂。本人重新写了,并给出自己的理解,代码也是略有不同,但是从零写起,可以让自己真正明白原理。

1、首先,根据电路图设置需要使用的树莓派引脚

import RPi.GPIO as GPIO
import time
#绑定对应的引脚,来自于图纸
PWMA=18
AIN1 = 22
AIN2 = 27
PWMB=23
BIN1= 25
BIN2 = 24

18引脚控制的是左侧两个电机 23引脚控制的右侧两个电机 AIN1、AIN2、BIN1、BIN2控制的是左右两侧电机的正转和翻转 ##2、设置引脚模式和输入输出

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# 设置引脚为输出
GPIO.setup(PWMA, GPIO.OUT)
GPIO.setup(AIN1, GPIO.OUT)
GPIO.setup(AIN2, GPIO.OUT)
GPIO.setup(PWMB, GPIO.OUT)
GPIO.setup(BIN1, GPIO.OUT)
GPIO.setup(BIN2, GPIO.OUT)
#电机
leftMotor = GPIO.PWM(PWMA, 100)
rightMotor = GPIO.PWM(PWMB, 100)
leftMotor.start(0)
rightMotor.start(0)

这样,设置基本完成,电机就处于待命状态了。

3、前进和后退函数

要使得小车前进,我们需要让四个电机转动起来,既然是前进,当然是电机正转

def forward(speed,runtime):
    leftMotor.ChangeDutyCycle(speed)
    GPIO.output(AIN1, True)#AIN1高电平则正转
    GPIO.output(AIN2, False)#如果为True则翻转
    rightMotor.ChangeDutyCycle(speed)
    GPIO.output(BIN1, True)
    GPIO.output(BIN2, False)
    time.sleep(runtime)#维持状态的时间,如果不给命令执行其他,将会继续执行

当四轮正转的时候,实现了基本的前进功能。 后退当然也是同理,只需要反向设置就好了。

def backword(speed, backtime):
      leftMotor.ChangeDutyCycle(speed)
      GPIO.output(AIN2, True)  # AIN2
      GPIO.output(AIN1, False)  # AIN1
      rightMotor.ChangeDutyCycle(speed)
      GPIO.output(BIN2, True)  # BIN2
      GPIO.output(BIN1, False)  # BIN1
      time.sleep(backtime)

至此,前进和后退的功能就实现了。 最后通过调用函数,来实现小车运行。

if \_\_name\_\_ == '\_\_main\_\_':
    try:
         while True:
             forward(50,3)
    except KeyboardInterrupt:
         GPIO.cleanup()

一定要调用 GPIO.cleanup()函数来清空引脚上的相关设置,否则引脚将被占用,对程序的下次运行可能会有影响。

4、大致的思路

电机连接在电路板上,ChangeDutyCycle可以让我们来设置速度,通过改变占空比来实现。 速度设定好了,设定其正转或者翻转,则是通过连接的AIN1和AIN2接口来实现。(这里是电路模块的名字,实际操作中也可以起不同的名字,或者接入不同的接口)

以上就是树莓派小车如何实现前进和后退,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. Vue 实现前进刷新,后退不刷新的效果
  2. Vue如何实现前进刷新后退不刷新的效果

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

树莓派

上一篇:树莓派怎样进行超声波测距自动避障

下一篇:JavaScript中有什么数据类型转换函数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》