1. 确定对象
以小车为例,假设小车上有'车灯'和'四个电机'两种对象.
车灯:需要确定车灯接在那个pin上,还需要提供'on','off'和'闪烁n次'三种功能。
电机:需要确定四个电机的八根信号线接在哪些pin上,还需要提供'forward','backward','stop'等功能
2. 实例化对象并调用功能
小车上可以有多个车灯,每个车灯都可以实例化
led = car.LED(13) # 在引脚13上创建一个LED对象
四个电机构成一个整体'move',实例化方法
move = car.MOVE(5,6,7,8,9,10,11,12) # 在引脚5-12上创建一个小车MOVE对象
3. 代码实现方法:
分成两个文件:
# car_main.py
import car
def main():
led = car.LED(13) # 在引脚13上创建一个LED对象
move = car.MOVE(5,6,7,8,9,10,11,12) # 在引脚5-12上创建一个小车MOVE对象
led.blink(2) # LED闪烁2次
move.forward()
led.blink(2)
move.backward()
led.blink(2)
move.stop()
if __name__ == '__main__':
main()
# car.py
from machine import Pin
import time
class LED:
def __init__(self, pin_num):
self.pin = Pin(pin_num, Pin.OUT)
def on(self):
self.pin.value(1)
def off(self):
self.pin.value(0)
def blink(self, times, duration=0.5):
for i in range(times):
self.on()
time.sleep(duration)
self.off()
time.sleep(duration)
class MOVE:
def __init__(self, w1_1, w1_2, w2_1, w2_2, w3_1, w3_2, w4_1, w4_2):
self.zq1 = Pin(w1_1, Pin.OUT) #左前
self.zq2 = Pin(w1_2, Pin.OUT)
self.yq1 = Pin(w2_1, Pin.OUT) #右前
self.yq2 = Pin(w2_2, Pin.OUT)
self.zh1 = Pin(w3_1, Pin.OUT) #左后
self.zh2 = Pin(w3_2, Pin.OUT)
self.yh1 = Pin(w4_1, Pin.OUT) #右后
self.yh2 = Pin(w4_2, Pin.OUT)
def forward(self):
self.zq1.value(1)
self.zq2.value(0)
self.yq1.value(1)
self.yq2.value(0)
self.zh1.value(1)
self.zh2.value(0)
self.yh1.value(1)
self.yh2.value(0)
def backward(self):
self.zq1.value(0)
self.zq2.value(1)
self.yq1.value(0)
self.yq2.value(1)
self.zh1.value(0)
self.zh2.value(1)
self.yh1.value(0)
self.yh2.value(1)
def stop(self):
self.zq1.value(0)
self.zq2.value(0)
self.yq1.value(0)
self.yq2.value(0)
self.zh1.value(0)
self.zh2.value(0)
self.yh1.value(0)
self.yh2.value(0)