树莓派 小车java_树莓派小车之前进和后退(创乐博套件)

树莓派小车之前进

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

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接口来实现。(这里是电路模块的名字,实际操作中也可以起不同的名字,或者接入不同的接口)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是树莓派Python小车前进后退的代码示例: ```python import RPi.GPIO as GPIO import time # 设置GPIO引脚 GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.OUT) GPIO.setup(13, GPIO.OUT) GPIO.setup(15, GPIO.OUT) GPIO.setup(16, GPIO.OUT) # 前进 def forward(): GPIO.output(11, GPIO.HIGH) GPIO.output(13, GPIO.LOW) GPIO.output(15, GPIO.HIGH) GPIO.output(16, GPIO.LOW) # 后退 def backward(): GPIO.output(11, GPIO.LOW) GPIO.output(13, GPIO.HIGH) GPIO.output(15, GPIO.LOW) GPIO.output(16, GPIO.HIGH) # 停止 def stop(): GPIO.output(11, GPIO.LOW) GPIO.output(13, GPIO.LOW) GPIO.output(15, GPIO.LOW) GPIO.output(16, GPIO.LOW) # 测试 forward() time.sleep(2) backward() time.sleep(2) stop() # 清理GPIO引脚 GPIO.cleanup() ``` 以上代码中,我们使用了RPi.GPIO库来控制树莓派GPIO引脚。我们设置了四个引脚来控制小车前进后退,分别是11、13、15、16。我们定义了三个函数来控制小车的运动:前进后退和停止。最后,我们进行了简单的测试,让小车前进2秒,后退2秒,然后停止。最后,我们清理了GPIO引脚。 ### 回答2: 树莓派是一款功能强大的单板计算机,可以应用于各种领域。其中,使用树莓派制作小车并通过Python控制进行前进后退是一项有趣的DIY项目。下面,我将介绍如何使用Python编写树莓派小车前进后退代码。 首先,我们需要安装RPi.GPIO库,该库可以实现树莓派GPIO引脚的输入输出控制。在树莓派上运行以下命令即可安装该库: ``` sudo apt-get update sudo apt-get install python-dev python-rpi.gpio ``` 安装完成后,我们可以开始编写代码了。首先,需要导入RPi.GPIO库: ``` import RPi.GPIO as GPIO ``` 接着,定义左右两个电机的引脚和工作模式: ``` # 定义左电机引脚 left_motor_pin1 = 11 left_motor_pin2 = 12 # 定义右电机引脚 right_motor_pin1 = 15 right_motor_pin2 = 16 # 定义GPIO工作模式为BCM GPIO.setmode(GPIO.BCM) # 设置GPIO引脚为输出模式 GPIO.setup(left_motor_pin1, GPIO.OUT) GPIO.setup(left_motor_pin2, GPIO.OUT) GPIO.setup(right_motor_pin1, GPIO.OUT) GPIO.setup(right_motor_pin2, GPIO.OUT) ``` 接下来,我们定义前进后退的函数: ``` # 小车前进 def car_forward(): # 左电机正转 GPIO.output(left_motor_pin1, GPIO.HIGH) GPIO.output(left_motor_pin2, GPIO.LOW) # 右电机正转 GPIO.output(right_motor_pin1, GPIO.HIGH) GPIO.output(right_motor_pin2, GPIO.LOW) # 小车后退 def car_backward(): # 左电机反转 GPIO.output(left_motor_pin1, GPIO.LOW) GPIO.output(left_motor_pin2, GPIO.HIGH) # 右电机反转 GPIO.output(right_motor_pin1, GPIO.LOW) GPIO.output(right_motor_pin2, GPIO.HIGH) ``` 最后,我们在主函数中调用这两个函数,控制小车前进后退: ``` if __name__ == '__main__': try: # 小车前进 car_forward() # 延时 time.sleep(2) # 小车后退 car_backward() # 延时 time.sleep(2) # 停止 GPIO.cleanup() except KeyboardInterrupt: GPIO.cleanup() ``` 以上代码是一个简单的树莓派小车前进后退的示例。根据实际需要,可以根据这个示例进行扩展和修改,实现更多功能。 ### 回答3: 树莓派是一种很有趣的嵌入式计算机,它可以用来开发各种有趣的项目,就像制作一个可以远程控制的小车一样。这个小车可以前进后退、左右转弯,可以用树莓派和Python来实现。下面我将介绍如何编写一个树莓派python小车前进后退代码。 首先,我们需要准备硬件设备,包括小车底盘、驱动电机、电池、树莓派等。使用树莓派控制小车的方式,我们可以将两个电机分别与树莓派的两个GPIO口相连,这样我们就可以通过调节GPIO口的电平状态来实现电机的正反转。 接着,我们需要使用Python编写代码,来实现小车的控制。小车能够前进后退的关键在于我们如何控制电机的正反转。我们可以通过设置GPIO口的电平状态,控制电机的正反转。假设我们将左侧电机的GPIO口设置为17,右侧电机的GPIO口设置为18,则我们可以使用以下代码实现小车前进: ``` import RPi.GPIO as gpio gpio.setmode(gpio.BCM) gpio.setup(17,gpio.OUT) gpio.setup(18,gpio.OUT) def go_forward(): gpio.output(17,gpio.HIGH) gpio.output(18,gpio.HIGH) ``` 以上代码中,我们首先导入RPi.GPIO模块,并设置使用BCM模式来控制GPIO口。然后,我们将17和18GPIO口设置为输出模式。最后,我们定义一个go_forward函数,当函数被调用时,将17和18口的电平都设置为高电平,从而使电机正转,实现小车前进。 类似地,我们可以定义go_backward函数来实现小车后退: ``` def go_backward(): gpio.output(17,gpio.LOW) gpio.output(18,gpio.LOW) ``` 以上代码中,我们将17和18口的电平都设置为低电平,从而使电机反转,实现小车后退。 如果我们要停止小车运动,则需要将17和18的电平都设置为LOW。代码如下: ``` def stop(): gpio.output(17,gpio.LOW) gpio.output(18,gpio.LOW) ``` 以上代码中,我们定义了stop函数,将17和18口的电平都设置为低电平,从而使电机停止。 通过以上的代码,我们可以轻松地控制小车前进后退,以及停止。当然,要实现小车的更多复杂运动,比如左右转弯等,我们还需要编写更多代码实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值