Esempio n. 1
0
def on_key(key_index, is_pressed):
    global pattern

    if is_pressed:
        x, y = keypad.index_to_coords(key_index)
        pattern[x + y * 4] = (pattern[x + y * 4] + 1) % 4
        if pattern[x + y * 4] == 0:
            display.drawPixel(x, y, 0x400000)
            tone = 396
        elif pattern[x + y * 4] == 1:
            display.drawPixel(x, y, 0x004000)
            tone = 440
        elif pattern[x + y * 4] == 2:
            display.drawPixel(x, y, 0x004040)
            tone = 495
        elif pattern[x + y * 4] == 3:
            display.drawPixel(x, y, 0x404000)
            tone = 528
        display.flush()
        sndmixer.freq(synth, tone)
        sndmixer.play(synth)
        sndmixer.volume(synth, 64)
        virtualtimers.new(100, sound_off, False)
def tone(pwm, freq, duration, pause=None):
    global i
    freq = round(freq)
    if not pause:
        duration = round(duration * 0.9)
        pause = round(duration * 0.1)
    if freq < 1:
        pwm.duty(0)
        sndmixer.freq(i, 0)
    else:
        pwm.freq(freq)
        #pwm.duty(50)
        sndmixer.freq(i, freq)
        time.sleep_ms(duration)
        sndmixer.freq(i, 0)
        pwm.duty(0)
        time.sleep_ms(pause)
Esempio n. 3
0
mpr121.set(10, 1)  # Calibration resets MPR121, here we re-enable LED power

buzzer_pin = machine.Pin(12, machine.Pin.OUT)
time.sleep(0.01)
buzzer_pwm = machine.PWM(buzzer_pin, duty=50)

sndmixer.begin(2)
synth = sndmixer.synth()
sndmixer.volume(synth, 50)
sndmixer.waveform(synth, 1)

while True:
    buzzer_pwm.duty(50)
    buzzer_pwm.freq(500)
    sndmixer.freq(synth, 500)
    neopixel.send(bytes([0xFF, 0, 0] * 12))
    time.sleep(0.25)
    buzzer_pwm.freq(600)
    sndmixer.freq(synth, 600)
    neopixel.send(bytes([0, 0xFF, 0] * 12))
    time.sleep(0.25)
    buzzer_pwm.freq(800)
    sndmixer.freq(synth, 800)
    neopixel.send(bytes([0, 0, 0xFF] * 12))
    time.sleep(0.25)
    buzzer_pwm.freq(500)
    sndmixer.freq(synth, 500)
    neopixel.send(bytes([0xFF, 0, 0] * 12))
    time.sleep(0.25)
    buzzer_pwm.freq(600)
from machine import Pin, PWM, random
import time

import sndmixer

sndmixer.begin(2)
i = sndmixer.synth()
sndmixer.freq(i, 0)
sndmixer.volume(i, 10)


def tone(pwm, freq, duration, pause=None):
    global i
    freq = round(freq)
    if not pause:
        duration = round(duration * 0.9)
        pause = round(duration * 0.1)
    if freq < 1:
        pwm.duty(0)
        sndmixer.freq(i, 0)
    else:
        pwm.freq(freq)
        #pwm.duty(50)
        sndmixer.freq(i, freq)
        time.sleep_ms(duration)
        sndmixer.freq(i, 0)
        pwm.duty(0)
        time.sleep_ms(pause)


def play(pwm, song):