咸鱼ZTMR实例—小车状态
可以控制马达后,我们就能做很多事情了,比如风扇,和小车。这次我们用函数来定义小车状态,方便使用。
函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。
语法
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
函数体
实例
让我们使用函数来输出"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占空比