IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Elektronická hracia kocka s Arduino

V predchádzajúcej lekcii, Tvorba vlastnej Arduino knižnice - OOP v praxi , sme si ukázali, ako sa tvoria vlastné jednoduché knižnice pre Arduino.

V dnešnom tutoriále si ukážeme, ako si postaviť elektronickú hraciu kocku s generátorom náhodných čísel. Vygenerované číslo budeme zobrazovať na znakovom LCD displeji (možno použiť i hodinový displej).

Funkčnosť

Cieľovou funkciu si popíšeme: po stlačení tlačidla sa na displeji vypíše náhodné číslo. Ak budeme tlačidlo držať, čísla sa budú meniť každých 0.5 sekundy.

Súčiastky

Čo budeme potrebovať:

  • Vývojovú dosku (v mojom prípade Arduino UNO)
  • Nepájivé kontaktné pole
  • tlačidlo
  • 4k7 rezistor
  • Znakový LCD displej alebo hodinový displej
  • potenciometer
  • vodiče

Stavba

Najskôr začneme s displejom. Ja som použil LCD s modrým podsvietením as dvoma riadkami o šestnástich znakoch. LCD zapojíme podľa schémy. Potenciometer pripojíme na zem a na VO pin. Týmto potenciometrom si nastavíme kontrast textu. Piny potom zvolíme v programe. Na presnejšiu zapojenie a prácu s displejom sa môžete pozrieť do tutoriálu LCD displej.

Zapojenie LCD displeja do Arduino - Arduino

Ďalej budeme potrebovať tlačidlo, po ktorého stlačení nám Arduino vygeneruje náhodné číslo v rozmedzí 1-6. Toto tlačidlo pripojíme cez 4k7 rezistor k plusu a prepojíme ho s dátový pinom z jednej strany. Tento pin je napojený na Arduino. Z druhej strany ho pripojíme na zem. V schéme je zakreslený 330 ohm rezistor, ale ja mám skúsenosti s odporom 4k7 (inak by mohlo dôjsť ku skratu). Generátor náhodných čísel sa každopádne dá naprogramovať na generovanie omnoho vyšších čísel, ale keďže toto má byť hracia kocka so šiestimi stenami, použijeme len malé rozmedzí. Ak chceme, môžeme si našu hračku naprogramovať tak, aby nám generovala čísla v rozmedzí 1-10 (desetistěnná kocka).

Arduino

K našej hračke si môžeme pripojiť aj LED diódu, aby sme vedeli, že tlačidlo je stlačené. Ale to už je na vás. Týmto by sme mali mať stavbu hotovú. Ja som pripojil veliké červené tlačidlo, aby bolo jednoduchšie na obsluhu. (Na obraze je aj Arduino NANO, ale toho si nevšímajte). Má stavba vyzerá nejako takto:

Hracia kocka pre Arduino - Arduino

Programovanie

Generovanie náhodných čísel nám zaistí metóda randomSeed (). Do tejto metódy len zadáme číslo pinu, na ktorom sa meria elektromagnetický šum, ktorý môže slúžiť ako náhodná vstupná hodnota. Potom použijeme premennú random (max) alebo random (min, max). V našom prípade random (1,7).

Teraz si otvoríme Arduino IDE a presunieme k programu, ktorý je tu:

#include <LiquidCrystal.h> // nahraje knihovnu pro displej
int rs_pin=A0; // nastavíme piny pro displej
int e_pin=A1;
int d4_pin=A2;
int d5_pin=A3;
int d6_pin=A4;
int d7_pin=A5;
LiquidCrystal LCD(rs_pin, e_pin, d4_pin, d5_pin, d6_pin, d7_pin); // definuje piny pro displej

void setup()
{
    pinMode(7,INPUT); // pin s tlačítkem jako vstup
    LCD.begin(16,2); // zahájí displej s dvěma řádky a šestnácti znaky
    Serial.begin(9600); // zapne sériovou komunikaci
    randomSeed(digitalRead(3)); // čte náhodu na digitálním pinu č.3
}

void loop()
{
    if (digitalRead(7)==LOW) // když je tlačítko stisknuté
    {
        LCD.setCursor(0,0); // nastaví kurzor na 1. znak
        LCD.print("nahodne cislo:"); // vypíše "náhodné číslo:"
        LCD.setCursor(5,5); // nastaví kurzor na 5. znak 2. řádky
        LCD.print("<"); // vypíše "<" na 5. znaku
        LCD.setCursor(7,5); // nastaví kurzor na 7. znak 2. řádky
        LCD.print(random(,7)); // napíše náhodné  číslo v rozmezí 1-6
        LCD.setCursor(9,5); // nastaví kurzor na 9. pozici
        LCD.print(">"); //vypíše ">" na 9. znaku
        Serial.println(random(1,7)); // vypíše náhodné číslo přes sériovou linku
    }
}

Jednotlivé časti programu sú popísané priamo v zdrojovom kóde. Program si nahráme do Arduino. Po stlačení tlačidla by sa nám malo na displeji objaviť toto:

Hracia kocka na Arduino - Arduino

Ak vám naša hracia kocka funguje, tak prajem príjemnú zábavu pri hraní doskových hier. Ak by ste mali nejaký problém s chodom hracie kocky, napíšte mi do komentárov. A to je pre dnešok všetko.

Nabudúce, v lekcii Arduino a práca s tlačidlami , si ukážeme prácu so samostatnými tlačidlami.


 

Predchádzajúci článok
Tvorba vlastnej Arduino knižnice - OOP v praxi
Všetky články v sekcii
Arduino
Preskočiť článok
(neodporúčame)
Arduino a práca s tlačidlami
Článok pre vás napísal @PeWy@
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor programuje v C++, Javě a Batchi. Zajímá se o elektroniku a především pracuje s Arduinem.
Aktivity