Arduino - Kostka do gry

arduino-jak-zrobic-kostke-do-gryW dzisiejszym poradniku chciałbym zaprezentować wam coś w miarę prostego związanego z elektroniką, czyli jak wykonać elektroniczną kostkę do gry z wykorzystaniem Arduino.

Czym jest arduino możecie przeczytać na moim blogu #7 Arduino i wakacje.

Projekt ten jest banalny. Stworzymy kostkę do gry, która będzie wyświetlała pseudolosowe liczy z przedziału 1-6, przez co będzie zapalała odpowiednią liczbę diodek.

Potrzebujemy oczywiście Arduino, 6 diodek, 6 rezystorów 100Ω, jeden guzik (swith), 1 rezystor 1,2kΩ, płytkę stykową i parę przewodów. Jak niektórzy wiedzą, arduino nie jest wymagane pod warunkiem, że macie mikrokontroler z 7 pinami, którymi można sterować oraz programator dzięki, któremu wgracie program.

Gdy mamy już wszystkie części zabieramy się do łączenia:

schemat-polaczenia-kostki-do-gry

Każdą diodę łączymy z rezystorami 100Ω (w nóżce plusa diody (dłuższa nóżka)) i podpinamy kolejno pod piny 6-1. Nóżki minusowe diodek (krótsze) podpinamy do szyny uziemienia, czyli do minusa. Do pinu 0 podpinamy nasz guzik. Na szynę zasilania wyprowadziłem z arduino 3,3V (gówna szyna), a na dolną GND (uziemienie (czyli minus)). Jeśli wszystko mamy podpięte jak na schemacie powyżej, zostało wgrać na arduino program, który po naciśnięciu przycisku zapali losową liczbę diodek od 1 do 6.

 

Kod programu:

// ARDUINO - Kostka do gry
// Created by Squiddy Skeith
// http://www.squiddy.pl/
// Kod programu można wgrac rozniez na mikrokontroler posiadajacy
// 7 pinow cyfrowych do sterowania diodami i guzikiem.
// Zasilanie 3.3V, R: 6x100, 1x1.2k, Diody: 6szt, 1xGuzik.
// Arduino lub mikrokontroler z programatorem. int guzik;

int rzut;
int guzik;
int czas = 2000; // czas ile maja sie palic diody po wcisnieciu guzika (ms)

void setup(){
pinMode(6, OUTPUT); //Dioda 1
pinMode(5, OUTPUT); //Dioda 2
pinMode(4, OUTPUT); //Dioda 3
pinMode(3, OUTPUT); //Dioda 4
pinMode(2, OUTPUT); //Dioda 5
pinMode(1, OUTPUT); //Dioda 6
pinMode(0, INPUT); //Guzik
}

void loop(){
//Ustawiamy by diody byly wylaczone:
digitalWrite(6,LOW); // Dioda 1
digitalWrite(5,LOW); // Dioda 2
digitalWrite(4,LOW); // Dioda 3
digitalWrite(3,LOW); // Dioda 4
digitalWrite(2,LOW); // Dioda 5
digitalWrite(1,LOW); // Dioda 6

// Przypisujemy guzik do pinu 0:
guzik = digitalRead(0);

// Dajemy funkcje warunkowa if:
if(guzik == HIGH){ // Jesli gusik jest wcisniety
rzut = random(6)+1; // liczby pseudolosowe od 1 do 6

//Ustawiamy ile diod ma sie palic, gdy wypadnie
//pseudolosowa liczba z przedzialu 1-6:

if(rzut==1){ //Jesli wypadnie 1 do zapali sie dioda 1 (pin6)
digitalWrite(6,HIGH);
delay(czas); // czas ile diody się pala (czas w milisekundach)
}

if(rzut==2){ //Jesli wypadnie 2 do zapalą sie diody 1 i 2 (pin6 i pin5)
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
delay(czas);
}

if(rzut==3){
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
delay(czas);
}

if(rzut==4){
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
digitalWrite(3,HIGH);
delay(czas);
}

if(rzut==5){
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
digitalWrite(3,HIGH);
digitalWrite(2,HIGH);
delay(czas);
}

if(rzut==6){
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
digitalWrite(3,HIGH);
digitalWrite(2,HIGH);
digitalWrite(1,HIGH);
delay(czas);
}
}
}
// Pamiętamy o wszystkich klamrach i wszystko powinno dzialac.

 

Kod programu kopiujemy i wklejamy do programu Arduino, po czym klikamy "załaduj" i program jest już wgrany na naszym Arduino. Jak widać program jest napisany w bardzo prostym języku za pomocą funkcji "if". Co się dzieje w programie i jaka funkcja, za co odpowiada, również wam opisałem.

program-kostka-do-gry

Jeśli wszystko jest podłączone prawidłowo wystarczy wcisnąć guzik i nasz kostka do gry działa. Po skończeniu można wypalić własną płytkę i polutować wszystko z podłączeniem na dwie baterie w jakiejś małej obudowie np. drewnianej.

Filmik pokazyjący kostkę do gry na arduino.

kostka-do-gry

kostka-do-gry

kostka-do-gry