Lekcja 2: Przycisk z czerwoną diodą LED

Cel

Wykorzystanie Grove - przycisk z czerwoną diodą LED w celu kontrolowania migania diody oraz umożliwienia buzzerowi na generowanie różnych efektów dźwiękowych.

  

Wymaganie sprzętowe

Przygotuj:

  • przewód microUSB
  • Raspberry Pi 3 Model B
  • Komputer

Zawarte w zestawie

  • Grove Base Hat
  • Grove przewód
  • Grove - przycisk z czerwoną diodą LED
  • Grove – Buzzer

 

Podłączenie sprzętu

Krok 1. Użyj przewód Grove, aby podłączyć Grove - Buzzer do portu PWM i Grove - przycisk z czerwoną diodą LED do D5 na Base Hat i nałóż nakładkę na Raspberry Pi.

Krok 2. Podłącz Raspberry Pi do źródła zasilanie za pomocą przewodu microUSB.

Programowanie

Krok 1: Wpisz poniższe polecenia, aby stworzyć plik Pythona

  

cd grove.py
nano lesson_2.py

 

Krok 2: Skopiuj poniższy kod

 

#!/usr/bin/env python

import time
from mraa import getGpioLookup
from upm import pyupm_buzzer as upmBuzzer

from grove.button import Button
from grove.grove_ryb_led_button import GroveLedButton

def main():
    # Grove - LED Button connected to port D5
    button = GroveLedButton(5)

    # Grove - Buzzer connected to PWM port
    buzzer = upmBuzzer.Buzzer(getGpioLookup('GPIO12'))

    def on_event(index, event, tm):
        if event & Button.EV_SINGLE_CLICK:
            print('single click')
            button.led.light(True)
            buzzer.playSound(upmBuzzer.BUZZER_DO, 500000)

        elif event & Button.EV_LONG_PRESS:
            print('long press')
            button.led.light(False)
            buzzer.playSound(upmBuzzer.BUZZER_DO, 1000000)

    button.on_event = on_event

    while True:
        time.sleep(1)

if __name__ == '__main__':
    main()

 

Krok 3:Uruchom program

 

sudo chmod +x lesson_2.py
sudo ./lesson_2.py

 

Sukces

Jeśli wszystko pójdzie dobrze, przekonasz się, że po dłuższym przytrzymaniu przycisku dioda zgaśnie, a buzzer wyda długi dźwięk „Do”. Natomiast po jednokrotnym naciśnięciu dioda LED zaświeci się, a buzzer wyda krótki dźwięk „Do”.

 

pi@raspberrypi:~/grove.py $ sudo ./lesson_2.py
single click
single click
single click
long press
single click
long press
long press
Traceback (most recent call last):
  File "./lesson2.py", line 34, in 
    main()
  File "./lesson2.py", line 31, in main
    time.sleep(1)
KeyboardInterrupt
^Cpi@raspberrypi:~/grove.py $ 

  

 

  

Spis treści

zapraszamy do współpracy!