咸鱼ZTMR实例—小车状态

咸鱼ZTMR实例—小车状态

可以控制马达后,我们就能做很多事情了,比如风扇,和小车。这次我们用函数来定义小车状态,方便使用。
函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。

语法
Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):
    函数体

实例
让我们使用函数来输出"Hello World!":
def holle ()print("hello world")
说明

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

例:封装个属于自己的print()

def mprint(str):
	"打印任何传入的字符串"
	print(str)
	return
mprint("我是咸鱼")

在这里插入图片描述

例程:

# main.py -- put your code here!
from pyb import Pin, Timer,delay
from time import sleep_us,ticks_us,sleep
cs = Pin('B10',Pin.OUT_PP)    #B10设置为输出引脚输出高电平
cs(1)
ch1 =None
ch2 =None     #初始化
AI1 = Pin('B12',Pin.OUT_PP)    #右侧马达
AI2 = Pin('B13',Pin.OUT_PP)
BI1 = Pin('B14',Pin.OUT_PP)    #左侧马达
BI2 = 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)

#小车状态
def go(speed):    #直行状态                
	ch1.pulse_width_percent(speed)   
	ch2.pulse_width_percent(speed)
	AI1(0)            
	AI2(1)
	BI1(1)
	BI2(0)
  
def back(speed):  #倒车
	ch1.pulse_width_percent(speed)
	ch2.pulse_width_percent(speed)
	AI1(1)     
	AI2(0)
	BI1(0)
	BI2(1)

def stopo(): #停止
	ch1.pulse_width_percent(0)
	ch2.pulse_width_percent(0)
	

def spin_left(speed): #左旋
	ch1.pulse_width_percent(0)#右
	ch2.pulse_width_percent(speed)
	AI1(1)
	AI2(0)
	BI1(1)
	BI2(0)

def spin_right(speed):#右旋
	ch1.pulse_width_percent(speed)
	ch2.pulse_width_percent(0)
	AI1(0)
	AI2(1)
	BI1(0)
	BI2(1)

def left(speed):      #左转
	ch1.pulse_width_percent(0)
	ch2.pulse_width_percent(speed)
	AI1(1)
	AI2(0)
	BI1(0)
	BI2(0)

def right(speed):     #右转
	ch1.pulse_width_percent(speed)
	ch2.pulse_width_percent(0)
	AI1(0)
	AI2(0)
	BI1(0)
	BI2(1)
while True:         #调用
	back(40)		#括号里参数为数字0~100 PWM占空比

发布了166 篇原创文章 · 获赞 22 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45020839/article/details/105506758