【STM32智能车】运行状态

智能车不应该只能前进后退吧,本篇来做其他的小车运行状态。


【STM32智能车】运行状态-LMLPHP
想想,一辆车有那些状态呢?前进,后退,左转,右转,停止。之前定义了直行。

def go(speed):    #直行状态                
	ch1.pulse_width_percent(speed)   
	ch2.pulse_width_percent(speed)
	A0(1)            
	A1(0)    #此状态测试A电机正转
	B0(0)
	B1(1)    #此状态B电机正转
  
def back(speed):  #倒车
	ch1.pulse_width_percent(speed)
	ch2.pulse_width_percent(speed)
	A0(0)            
	A1(1)    
	B0(1)
	B1(0)   

可以看到直行和倒退其实就是将电机信号互换
【STM32智能车】运行状态-LMLPHP

电机状态表。

备注:电机上有一个“+“号,红线在“+”号上。如果加号上是黑线则把我写的状态翻转一下。

这回我们可以试试定义小车的其他状态,左转,右转

def right(speed):      #右转
	ch1.pulse_width_percent(0)      #A电机不动
	ch2.pulse_width_percent(speed)
	B0(0)
	B1(1)

def left(speed):     #左转
	ch1.pulse_width_percent(speed)
	ch2.pulse_width_percent(0)      #B电机不动
	A0(1)
	A1(0)

一张图就能解释,不多说了。
【STM32智能车】运行状态-LMLPHP

小车状态完整代码

包含,前后,左右,停止。

#main.py -- put your code here!

from pyb import Pin, Timer,delay
from time import sleep_us,ticks_us,sleep
cs = Pin('C8',Pin.OUT_PP)    #C8设置为输出引脚输出高电平
cs(1)
ch1 =None
ch2 =None     #初始化
A0= Pin('B12',Pin.OUT_PP)    #右侧马达
A1 = Pin('B13',Pin.OUT_PP)
B0 = Pin('B14',Pin.OUT_PP)    #左侧马达
B1 = Pin('B15',Pin.OUT_PP)

#A电机(右)
p1 = Pin('B8') 
tim1 = Timer(10, freq=120)                  
ch1 = tim1.channel(1, Timer.PWM, pin=p1)
#B电机(左)
p2 = Pin('B9') 
tim2 = Timer(4, freq=120)                  
ch2 = tim2.channel(4, Timer.PWM, pin=p2)

#小车状态
#小车右侧电机接到A处,且电机红线在A0;
#小车左侧电机接到B处,且电机红线在B1
def go(speed):    #直行状态                
	ch1.pulse_width_percent(speed)   
	ch2.pulse_width_percent(speed)
	A0(1)            
	A1(0)    #此状态测试A电机正转
	B0(0)
	B1(1)    #此状态B电机正转
  
def back(speed):  #倒车
	ch1.pulse_width_percent(speed)
	ch2.pulse_width_percent(speed)
	A0(0)            
	A1(1)    
	B0(1)
	B1(0)   

def ztstop(): #停止
	ch1.pulse_width_percent(0)
	ch2.pulse_width_percent(0)
	
def right(speed):      #右转
	ch1.pulse_width_percent(0)      #A电机不动
	ch2.pulse_width_percent(speed)
	B0(0)
	B1(1)

def left(speed):     #左转
	ch1.pulse_width_percent(speed)
	ch2.pulse_width_percent(0)      #B电机不动
	A0(1)
	A1(0)
	
while True:         #调用
	go(50)		#括号里参数为数字0~100 PWM占空比
07-05 06:15