Úlohy
Led
Zadání
Led je důležitý prvek většiny zařízení a má různé funkce.
- K čemu se například led používá? (signalizace stavu, upozornění na mobilu)
Vytvořte program, který rozsvítí libovonou led diodu.
Postup
- Ze složky shortcuts knihovny dtbox importujte objekt green_led
- Využijte funkci toggle objektu green_led, která rozsvítí nebo zhasne led
Řešení
Barevná led
Zadání
Barevné světlo se používá velmi často. Např. pro estetické účely.
- K čemu dalšímu se využívá barevné led? (OLED display cell)
Vytvořte program, který rozsvítí barevnou led libovolnou barvou.
Postup
- ze složky shortcuts knihovny dtbox importujte objekt wsled
- z knihovny dtbox importujte modul colors
- využije funkci objektu wsled, která na barevné led rozsvítí zadanou barvu, kterou najde v modulu colors
Řešení
Blesk
Zadání
Blesk se u fotoaparátu používá pro vyšší viditelnost na fotkách ve tmavých podmínkách.
Vytvořte program, který napodobí takový blesk tím, že na barevné diodě krátce rozsvítí bíle světlo (cca 10-20 ms).
Postup
- ze složky shortcuts knihovny dtbox importujte objekt wsled
- z modulu time importujte funkci sleep_ms
- z knihovny dtbox importujte modul colors
- využije funkci objektu wsled, která na barevné led rozsvítí zadanou barvu, kterou najde v modulu colors
- využijte funkci sleep_ms s parametrem, který představuje délku záblesku
- na objektu wsled vyvolejte funkci color, které předáte argument color.BLACK, čímž světlo zhasne
Řešení
from time import sleep_ms
from dtbox.wsled.shortcuts import wsled
from dtbox import colors
wsled.color(colors.WHITE) # the same as ws.color((255, 255, 255))
sleep_ms(15)
wsled.color(colors.BLACK)
Animace na display
Zadání
Animace je základní prvek pro estetiku a objevuje se ve většině programů. Například načítací kolečko.
- Kde jinde se animace vyskytují? (messenger, instagram, …)
Vytvořte program, který na pravé straně displaye vykreslí nějaký znak a postupně ho bude vykreslovat pokaždé o jednu pozici vlevo, čímž vytvoří iluzi toho, že se znak pohybuje zprava doleva.
Postup
- ze složky shortcuts importujte objekt display
- z modulu time importujte funkci sleep_ms
- pomocí funkce show objektu display zobrazte znak vpravo (řetězec tří mezer a znaku)
- funkcí sleep_ms udělejte pauzu mezi posunem znaku
- funkcí show zobrazte o znak jednu pozici vlevo (řetězec dvou mezer, znaku a mezery)
- dvakrát opakujte posun
Řešení
from dtbox.display.shortcuts import display
from time import sleep_ms
display.show(" a")
sleep_ms(300)
display.show(" ah")
sleep_ms(300)
display.show(" aho")
sleep_ms(300)
display.show("ahoj")
sleep_ms(300)
display.show("hoj ")
sleep_ms(300)
display.show("oj ")
sleep_ms(300)
display.show("j ")
sleep_ms(300)
display.show(" ")
sleep_ms(300)
sleep_ms(1000)
# tato funkce dělá to samé
display.scroll("ahoj", scroll=true)
Zobrazení vzdálenosti
Zadání
Ultrazvukový senzor nám umožňuje zjistit vzdálenost. Toho se dá využít například u parkovacího senzoru.
- Kde se setkáme s lokalizací pomocí ultrazvuku? (netopýr)
Vytvořte program, který na display napíše vzdálenost nejbližšího objektu směrem od ultrazvukového senzoru.
Postup
- z modulu shortcuts ve složce display knihovny dtbox importujte objekt display
- z modulu shortcuts ve složce ultrasonic knihovny dtbox importujte objekt ultrasonic
- do proměnné distance uložte výsledek funkce distance_cm objektu ultrasonic přetypovaný na řetězec
- proměnnou zobrazte na display pomocí funkce show
Řešení
from time import sleep
from dtbox.ultrasonic.shortcuts import ultrasonic
from dtbox.display.shortcuts import display
while True:
distance = ultrasonic.distance_cm()
print(distance)
display.show_right(distance)
sleep(1)
Zobrazení teploty
Zadání
Teploměr umožňuje získání aktuální teploty, čehož se dá využít např. u tělesného teploměru.
- Kde jinde se dá teploměr využít? (zjištění teploty na procesoru)
Vytvořte program, který na display zapíše aktuální teplotu.
Postup
- z modulu shortcuts ze složky display knihovny dtbox importujte objekt display
- z modulu shortcuts ze složky thermometer knihovny dtbox importujte objekt thermometer
- využijte funkci show objektu display, které jako argument předáte výsledek funkce get_temperature objektu thermometer
Řešení
from dtbox.thermometer.shortcuts import thermometer
from dtbox.display.shortcuts import display
from time import sleep
while True:
temperature = thermometer.get_temp()
display.show_right(temperature)
sleep(1)
Melodie
Zadání
Vydávaní zvuků zařízením je používáno velmi často. Např. signalizace chyby při spuštění počítače.
- Kde jinde se hodí vydávání různých frekvencí? (alarm)
Vytvořte program, který z knihovny importuje nějakou melodii a přehraje jí.
Postup
- z modulu shortcuts ze složky display knihovny dtbox importujte objekt display
- z modulu shortcuts ze složky thermometer knihovny dtbox importujte objekt thermometer
- využijte funkci show objektu display, které jako argument předáte výsledek funkce get_temperature objektu thermometer
Řešení
from dtbox.buzzer.shortcuts import buzzer
from dtbox.melody import indiana
buzzer.play_melody(indiana)
NTP hodiny
Zadání
Ntp je protokol, který je zodpovědný za to, že všechny počítače v síti mají nastavený stejný čas.
- Kde se například využívá ntp? (hodiny na mobilu)
Vytvořte program, který se připojí na internet, pomocí ntp nastaví čas na počítači a opakovaně bude aktualizovat čas zobrazovaný na displeji.
Postup
- z modulu shortcuts ze složky display knihovny dtbox importujte objekt display
- z modulu shortcuts ze složky network knihovny dtbox importujte objekt network
- z modulu time importujte funkci sleep_ms
- importujte modul ntptime
- importujte modul time
- pomocí funkce connect objektu network se připojte k internetu
- pomocí funkce settime modulu ntptime nastavte čas
- TODO
Řešení
from dtbox.display.shortcuts import display
from time import sleep_ms
from dtbox.network.shortcuts import network
import ntptime
import time
network.connect()
ntptime.settime()
while True:
t = time.localtime(time.mktime(time.localtime()) + 2*3600)
hours = "%02d" % (t[3],)
minutes = "%02d" % (t[4],)
display.show(hours+"."+minutes)
sleep_ms(1000)