Naključno zaporedje prižiganja diod

Prva naloga pri projektu igre Simon bo ustvarjanje naključnega zaporedja prižiganja diod. To pomeni, da boš na preizkusno ploščico dodal/-a 4 LED diode (rdečo, modro, oranžno in zeleno) ter jih sprogramiral/-a tako, da se bodo prižigale v naključnem zaporedju. Najprej naj se naključno prižge ena dioda. Nato se prižge ista dioda in doda nova naključna dioda in tako naprej, dokler zaporedje ne bo dolgo 10 barv.

Strojna oprema

  • 1 Malina
  • 1 preizkusna ploščica (angl. breadboard)
  • 1 zatič oblike T s kablom (angl. T-cobbler with breakout cable)
  • 4 LED diode (rdeče, modre, oranžne in zelene barve)
  • 4 upori 330 Ω
  • vtične žičke moški-moški (angl. jumper wire male-to-male)

Programska oprema

  • Python 3 (prednameščen na Raspbianu)
  • Pythonov modul gpiozero (prednameščen na Raspbianu)
  • Pythonov modul random (prednameščen na Raspbianu)
  • Pythonov modul time (prednameščen na Raspbianu)

Navodila

  1. Poveži Malinine GPIO nožice in preizkusno ploščico s pomočjo T-zatiča in kabla.
  2. Poveži rdečo LED diodo z nožico GND in nožico GPIO 18 (glej zavihek Vezje).
  3. Poveži modro LED diodo z nožico GND in nožico GPIO 4 (glej zavihek Vezje).
  4. Poveži oranžno LED diodo z nožico GND in nožico GPIO 22 (glej zavihek Vezje).
  5. Poveži zeleno LED diodo z nožico GND in nožico GPIO 23 (glej zavihek Vezje).
  6. Odpri IDLE in ustvari novo datoteko tako, da klikneš File > New file.
  7. Shrani novo datoteko tako, da klikneš File > Save. Datoteki daj ime simon1.py.
  8. V datoteko simon1.py vnesi kodo z zavihka Koda.
  9. Shrani kodo s Ctrl+S in jo nato zaženi s F5.
  10. Ko boš pognal(-a) program, bi se morale diode prižigati v naključnem zaporedju.


# encoding: utf-8
import gpiozero
import random
import time

led = [
    gpiozero.LED(4),  # modra
    gpiozero.LED(18), # rdeča
    gpiozero.LED(22), # oranžna
    gpiozero.LED(23)  # zelena
]

# Ustvarjaj zaporedno dodajanje različnih/naključnih barv v zaporedje,
# ki je najprej dolgo 1 barvo, na koncu pa 10 barv. Izpši zaporedje oz.
# prižigaj lučke v zaporedju.
zaporedje = []
for i in range(10):
    nova = random.randint(0, 3)
    zaporedje.append(nova)
    # izpiši zaporedje
    print(zaporedje)
    # prižigaj lučke v zaporedju
    for barva in zaporedje:
        led[barva].on()
        time.sleep(1)
        led[barva].off()
        time.sleep(0.2)
    time.sleep(2)

Izvorna koda