#coding:utf-8 import os import time import RPi.GPIO as GPIO from base_ctrl import BaseController ####################################### #############信号引脚定义############## ####################################### GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) def is_raspberry_pi5(): with open('/proc/cpuinfo', 'r') as file: for line in file: if 'Model' in line: if 'Raspberry Pi 5' in line: return True else: return False base = BaseController('/dev/ttyAMA0', 115200) class CAR: def __init__(self): self.LED0 = 10 #LED0的IO口定义 self.LED1 = 9 #LED1的IO口定义 self.LED2 = 25 #LED2的IO口定义 self.ENA = 13 #//L298 使能A self.ENB = 20 #//L298 使能B self.IN1 = 19 #//电机接口1 self.IN2 = 16 #//电机接口2 self.IN3 = 21 #//电机接口3 self.IN4 = 26 #//电机接口4 GPIO.setup(self.LED0, GPIO.OUT, initial=GPIO.HIGH) ##led0初始化为高电平 GPIO.setup(self.LED1, GPIO.OUT, initial=GPIO.HIGH) ##led1初始化为高电平 GPIO.setup(self.LED2, GPIO.OUT, initial=GPIO.HIGH) ##led2初始化为高电平 GPIO.setup(self.ENA, GPIO.OUT, initial=GPIO.LOW) ##ENA初始化为低电平 GPIO.setup(self.ENB, GPIO.OUT, initial=GPIO.LOW) ##ENB初始化为低电平 GPIO.setup(self.IN1, GPIO.OUT, initial=GPIO.LOW) ##IN1初始化为低电平 GPIO.setup(self.IN2, GPIO.OUT, initial=GPIO.LOW) ##IN2初始化为低电平 GPIO.setup(self.IN3, GPIO.OUT, initial=GPIO.LOW) ##IN3初始化为低电平 GPIO.setup(self.IN4, GPIO.OUT, initial=GPIO.LOW) ##IN4初始化为低电平 def led(self): GPIO.output(self.LED0,False) GPIO.output(self.LED1,False) GPIO.output(self.LED2,False)###LED0,LED1,LED2 = 亮 亮 亮 time.sleep(0.5) GPIO.output(self.LED0,True) GPIO.output(self.LED1,False) GPIO.output(self.LED2,False)###LED0,LED1,LED2 = 灭 亮 亮 time.sleep(0.5) GPIO.output(self.LED0,False) GPIO.output(self.LED1,True) GPIO.output(self.LED2,False)###LED0,LED1,LED2 = 亮 灭 亮 time.sleep(0.5) GPIO.output(self.LED0,False) GPIO.output(self.LED1,False) GPIO.output(self.LED2,True)###LED0,LED1,LED2 = 亮 亮 灭 time.sleep(0.5) GPIO.output(self.LED0,False) GPIO.output(self.LED1,False) GPIO.output(self.LED2,False)###LED0,LED1,LED2 = 亮 亮 亮 time.sleep(0.5) GPIO.output(self.LED0,True) GPIO.output(self.LED1,True) GPIO.output(self.LED2,True)###LED0,LED1,LED2 = 灭 灭 灭 time.sleep(0.5) print("run: led") def led_light(self): GPIO.output(self.LED0,False) GPIO.output(self.LED1,False) GPIO.output(self.LED2,False)###LED0,LED1,LED2 = 亮 亮 亮 print("run: led_light") def led_dark(self): GPIO.output(self.LED0,True) GPIO.output(self.LED1,True) GPIO.output(self.LED2,True)###LED0,LED1,LED2 = 灭 灭 灭 print("run: led_dark") def stop(self): # 停止运行 GPIO.output(self.ENA,False) GPIO.output(self.ENB,False) GPIO.output(self.IN1,False) GPIO.output(self.IN2,False) GPIO.output(self.IN3,False) GPIO.output(self.IN4,False) print("run: stop move") def Q(self): # 停止的快捷键 self.stop() def q(self): self.stop() def forward(self): # 前进 base.send_command({"T":1,"L":0.2,"R":0.2}) time.sleep(2) base.send_command({"T":1,"L":0,"R":0}) print("run: move !!!!forward") def W(self): # 前进的快捷键 self.forward() def w(self): self.forward() def back(self): # 后退 GPIO.output(self.ENA,True) GPIO.output(self.ENB,True) GPIO.output(self.IN1,True) GPIO.output(self.IN2,False) GPIO.output(self.IN3,True) GPIO.output(self.IN4,False) print("run: move back") def S(self): # 后退的快捷键 self.back() def s(self): self.back() def left(self): # 左转 GPIO.output(self.ENA,True) GPIO.output(self.ENB,True) GPIO.output(self.IN1,False) GPIO.output(self.IN2,True) GPIO.output(self.IN3,True) GPIO.output(self.IN4,False) print("run: move left") def A(self): # 左转的快捷键 self.left() def a(self): self.left() def right(self): # 右转 GPIO.output(self.ENA,True) GPIO.output(self.ENB,True) GPIO.output(self.IN1,True) GPIO.output(self.IN2,False) GPIO.output(self.IN3,False) GPIO.output(self.IN4,True) print("run: move right") def D(self): # 右转的快捷键 self.right() def d(self): self.right()