Elektronická hrací kostka s Arduinem

Hardware PC Arduino Elektronická hrací kostka s Arduinem

V dnešním tutoriálu si ukážeme, jak si postavit elektronickou hrací kostku s generátorem náhodných čísel. Vygenerované číslo budeme zobrazovat na znakovém LCD displeji (lze použít i hodinový displej).

Funkčnost

Cílovou funkci si popíšeme: po stisknutí tlačítka se na displeji vypíše náhodné číslo. Pokud budeme tlačítko držet, čísla se budou měnit každých 0.5 vteřiny.

Součástky

Co budeme potřebovat:

  • Vývojovou desku (v mém případě Arduino UNO)
  • Nepájivé kontaktní pole
  • Tlačítko
  • 4k7 rezistor
  • Znakový LCD displej nebo hodinový displej
  • Potenciometr
  • Vodiče

Stavba

Nejdříve začneme s displejem. Já jsem použil LCD s modrým podsvícením a s dvěma řádkami o šestnácti znacích. LCD zapojíme podle schématu. Potenciometr připojíme na zem a na VO pin. Tímto potenciometrem si nastavíme kontrast textu. Piny potom zvolíme v programu. Na přesnější zapojení a práci s displejem se můžete podívat do tutoriálu LCD displej.

Zapojení LCD displeje do Arduina

Dále budeme potřebovat tlačítko, po jehož stisknutí nám Arduino vygeneruje náhodné číslo v rozmezí 1-6. Toto tlačítko připojíme přes 4k7 rezistor k plusu a propojíme ho s datový pinem z jedné strany. Tento pin je napojen na Arduino. Z druhé strany ho připojíme na zem. Ve schématu je zakreslen 330 ohm rezistor, ale já mám zkušenosti s odporem 4k7 (jinak by mohlo dojít ke zkratu). Generátor náhodných čísel se každopádně dá naprogramovat ke generování mnohem vyšších čísel, ale jelikož toto má být hrací kostka se šesti stěnami, použijeme jen malé rozmezí. Pokud chceme, můžeme si naši hračku naprogramovat tak, aby nám generovala čísla v rozmezí 1-10 (desetistěnná kostka).

K naší hračce si můžeme připojit i LED diodu, abychom věděli, že tlačítko je stisknuté. Ale to už je na vás. Tímto bychom měli mít stavbu hotovou. Já jsem připojil veliké červené tlačítko, aby bylo jednodušší k obsluze. (Na obrázu je i Arduino NANO, ale toho si nevšímejte). Má stavba vypadá nějak takto:

Hrací kostka pro Arduino

Programování

Generování náhodných čísel nám zajistí metoda randomSeed(). Do této metody pouze zadáme číslo pinu, na kterém se měří elektromagnetický šum, který může sloužit jako náhodná vstupní hodnota. Poté použijeme proměnnou random(max) nebo random(min,max). V našem případě random(1,7).

Nyní si otevřeme Arduino IDE a přesuneme k programu, který je zde:

#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é části programu jsou popsány přímo ve zdrojovém kódu. Program si nahrajeme do Arduina. Po stisknutí tlačítka by se nám mělo na displeji objevit toto:

Hrací kostka na Arduino

Pokud vám naše hrací kostka funguje, tak přeji příjemnou zábavu při hraní deskových her. Pokud by jste měli nějaký problém s chodem hrací kostky, napište mi do komentářů. A to je pro dnešek vše.


 

  Aktivity (2)

Článek pro vás napsal Pavel Pewner
Avatar

Jak se ti líbí článek?
Celkem (1 hlasů) :
4444 4


 


Miniatura
Předchozí článek
Zapisovátko Morseovky s Arduinem
Miniatura
Všechny články v sekci
Arduino

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!