驱动外设
在 seeed 的 Grove Basic Kit for Raspberry Pi Pico 的 wiki 页面,提供了基础外设的使用和一些传感器的示例代码,对于我这种刚入门 mpy 的新人来说,还是很有参考价值的
使用 i2c 点亮 oled
所使用的 oled 屏幕,我们可以上 seeed 的 wiki
找到对应的资料。
oled 的驱动库我使用的是 adfruit 的, 毕竟开源硬件大牛
编写示例代码
from machine import Pin, Timer, I2C
from ssd1306 import SSD1306_I2C
led = Pin("LED", Pin.OUT)
timer = Timer()
def blink(timer):
led.toggle()
timer.init(freq=2, mode=Timer.PERIODIC, callback=blink)
i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=400000)
oled = SSD1306_I2C(128, 64, i2c)
oled.text("hello eeworld!", 0, 0)
oled.show()
使用 pwm 驱动蜂鸣器
所使用的 beep,我们可以上 seeed 的 wiki 找到对应的资料。
编写示例代码
from machine import I2C, Pin, PWM
from ssd1306 import SSD1306_I2C
import utime
i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=400000)
oled = SSD1306_I2C(128, 64, i2c)
oled.text("Hello World!", 0, 0)
oled.show()
tones = {"1": 262, "2": 294, "3": 330, "4": 349, "5": 392, "6": 440, "7": 494, "-": 0}
melody = "1155665-4433221-5544332-5544332-1155665-4433221"
beeper = PWM(Pin(16))
beeper.duty_u16(1000)
for tone in melody:
freq = tones[tone]
if freq:
beeper.freq(freq)
beeper.duty_u16(1000)
else:
beeper.duty_u16(0)
utime.sleep_ms(400)
beeper.duty_u16(0)
utime.sleep_ms(100)
beeper.deinit()
运行之后可以听到蜂鸣器在播放小星星
总结
借助开源的 mpy 库还是挺容易上手的,有需求的可以先去网上找找现成的,就不需要重复造轮子