Izveidot elektronisku metamā kauliņa simulāciju, izmantojot ESP32 mikrokontrolieri, 9 LED diodes un pogu. Nospiežot pogu:

LED diodes izvietotas kā metamajam kauliņam:
LED1 LED2 LED3
LED4 LED5 LED6
LED7 LED8 LED9
| Elements | GPIO |
|---|---|
| LED1 | 25 |
| LED2 | 26 |
| LED3 | 27 |
| LED4 | 33 |
| LED5 | 32 |
| LED6 | 14 |
| LED7 | 2 |
| LED8 | 4 |
| LED9 | 12 |
| Poga | 19 |
Poga pieslēgta ar PULL_UP rezistoru.
PULL_UP.from machine import Pin
from random import randrange
import time
# LED definīcija
led1 = Pin(25, Pin.OUT)
led2 = Pin(26, Pin.OUT)
# TODO: definētas visas LED diodes
# Poga
button = Pin(19, Pin.IN, Pin.PULL_UP)
# Saraksts ar visām LED diodēm
leds = [
led1, led2, led3,
led4, led5, led6,
led7, led8, led9
]
# Debounce mainīgie
last_press_time = 0
debounce_ms = 200
# Funkcija: izslēgt visas LED diodes
def all_leds_off():
"""
Izslēdz visas LED diodes.
"""
# TODO:
# Izmanto ciklu, lai izslēgtu visas LED diodes
pass
# Funkcija: LED animācija
def leds_blinking():
"""
Izveido īsu LED animāciju pirms
skaitļa parādīšanas.
"""
# TODO:
# Secīgi ieslēdz LED diodes,
# veidojot animāciju
pass
# Funkcija: ģenerē nejaušu skaitli
def roll_dice():
"""
Atgriež nejaušu skaitli no 1 līdz 6.
"""
# TODO:
# Izmanto randrange()
pass
# Funkcija: attēlo skaitli LED diodēs
def show_number_on_leds(num):
"""
Attēlo kauliņa skaitli,
izmantojot LED diodes.
"""
# Vispirms izslēdz visas LED diodes
all_leds_off()
# TODO:
# Izvēlies, kuras LED diodes jāieslēdz
# katram skaitlim no 1 līdz 6
# Piemērs:
#
# if num == 1:
# num_leds = [led5]
#
# elif num == 2:
# num_leds = [led1, led9]
# TODO:
# Ieslēdz izvēlētās LED diodes
pass
# Funkcija: pogas nospiešanas apstrāde
def on_button_press():
"""
Izpilda visas darbības,
kad tiek nospiesta poga.
"""
# TODO:
# 1. Atskaņo animāciju
# 2. Uzģenerē skaitli
# 3. Attēlo rezultātu
pass
# Galvenais cikls
while True:
# TODO:
# Pārbaudi, vai poga nospiesta
#
# Atceries:
# PULL_UP režīmā nospiesta poga = 0
# TODO:
# Pievieno debounce pārbaudi
# TODO:
# Sagaidi pogas atlaišanu
time.sleep_ms(10)
| Kritērijs | Punkti |
|---|---|
| Pareiza LED inicializācija | 2 |
| Funkciju izmantošana | 2 |
| Nejauša skaitļa ģenerēšana | 2 |
| Pareiza LED attēlošana | 4 |
| Debounce realizācija | 3 |
| Koda lasāmība un komentāri | 2 |