Aplikace B12 Písmena

Z Gymnázia Elgartova posíláme návod na jednoduché a přitom praktické využití micro:bita při tvorbě nápisů. Programovali jsme v pythonu (python.microbit.org).

název: B12 Písmena
kategorie: B mírně pokročilí
ref.číslo: B12
projekt: Příspěvky uživatelů
verze: 01, 2017-06-25
autor: Gymnázium Elgartova, Brno


Zadání:

Při zapnutí svítí písmeno A, při stisku tlačítka B se zobrazují postupně další písmena abecedy (B, C, D, …), při stisku tlačítka A se vracíme v abecedě zpět.

Po nahrání programu na více microbitů je možné sestavovat různé nápisy.

Nápověda bez prozrazení řešení:

K sestavení programu potřebujeme umět pracovat se seznamy. Ty zadáváme pomocí hranatých závorek, například

jmena = [“Petr”, “Jan”, “Tomáš”]

Položky v seznamu jsou číslované od nuly a k jejich získání používáme opět hranaté závorky. Například

  • Jmena[0] obsahuje text Petr
  • Jmena[1] obsahuje text Jan
  • Jmena[2] obsahuje text Tomáš

Písmena abecedy (a případně další symboly)  můžeme uložit do jednoho seznamu. K pohybu v seznamu použijeme proměnnou, kterou při stisku tlačítek zvyšujeme nebo snižujeme.

Místo seznamu bychom mohli použít i prostý řetězec všech písmen abecedy za sebou. Výhodou seznamu je, že může obsahovat i obrázky.

K zobrazení písmene bez pohybu po displeji používáme display.show, pro testování stisknutí tlačítka button_a.was_pressed(), případně button_b.was_pressed().

 

 

 

Řešení:

Písmena abecedy uložíme do seznamu:

pismena = [“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, “L”,
  “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”, “W”, “X”, “Y”, “Z”]

Abychom mohli průběžně měnit zobrazené písmeno, použijeme proměnnou x, ve které budeme mít uloženu aktuální pozici v seznamu. Na počátku chceme zobrazit písmeno A na pozici 0, proto nastavíme

x = 0

a pomocí display.show zobrazíme aktuální písmeno:

display.show(pismena[x])

Po stisku tlačítka B chceme posunout zobrazené písmeno o jedno místo vpřed (x = x + 1), po stisku tlačítka A o jedno místo vzad (x = x – 1) a zobrazit aktuální písmeno. Nezapomeneme ošetřit krajní písmena – pokud stisknu A a mám zobrazeno A (x=0), chci, aby se zobrazilo Z (x=25), při stisku B naopak.

if button_a.was_pressed():
    if x == 0:
            x = 25
    else:
            x = x - 1
    display.show(pismena [x])

Část programu, která se má stále opakovat, vkládáme do nekonečného cyklu while True:

Celý program může vypadat takto:

pismena = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", 
  "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
x = 0
display.show(pismena[x])

while True:
    if button_a.was_pressed():
        if x == 0:
            x = 25
        else:
            x = x - 1
        display.show(pismena [x])
    if button_b.was_pressed():
        if x == 25:
            x = 0
        else:
            x = x + 1
        display.show(pismena [x])

 

 

Posted in kat B - mírně pokročilí.