Spisu treści:

Kości Arduino do gier planszowych: 4 kroki
Kości Arduino do gier planszowych: 4 kroki

Wideo: Kości Arduino do gier planszowych: 4 kroki

Wideo: Kości Arduino do gier planszowych: 4 kroki
Wideo: 5. Kurs Arduino - Kostka do gry [Tinkercad] 2024, Listopad
Anonim

RoboCircuits_comObserwuj Więcej autora:

Elektroniczne kości z UTSOURCE
Elektroniczne kości z UTSOURCE
Elektroniczne kości z UTSOURCE
Elektroniczne kości z UTSOURCE
Przełącznik poziomu wody za pomocą D882
Przełącznik poziomu wody za pomocą D882
Przełącznik poziomu wody za pomocą D882
Przełącznik poziomu wody za pomocą D882
Zegar czasu rzeczywistego otoczenia
Zegar czasu rzeczywistego otoczenia
Zegar czasu rzeczywistego otoczenia
Zegar czasu rzeczywistego otoczenia

O: YouTuber, producent dronów Więcej o RoboCircuits_com »

Mogłeś używać tych kości podczas grania w LUDO i inne gry planszowe. Ale będąc entuzjastą elektroniki muszę zmienić ten trend.

Postanowiłem więc zrobić elektroniczną kostkę. Wykorzystałem Arduino do swoich celów.

Krok 1: Zrób to sam Arduino

To arduino wykonane przeze mnie przy użyciu mikrokontrolera atmega 328p. Płytka do tego jest zamawiana na stronie "jlcpcb.com", ponieważ zapewniają najlepsze w swojej klasie płytki drukowane w niskich cenach. Potem przylutowałem wszystkie części i w końcu dostałem to uroczo wyglądające Arduino UNO.

Wszystkie schematy i pliki są podane w artykule mojej strony internetowej -

Krok 2: Tworzenie projektu

w porządku!!!!

wystarczy o Arduino. Teraz zróbmy projekt. W przypadku wartości losowych użyłem funkcji losowej w arduino ide, aby uzyskać wartości od 1 do 6 za każdym razem, gdy nacisnę przycisk. Więc obejrzyj cały film, aby dowiedzieć się, jak powstaje ten projekt.

Krok 3: Kod

/* Ten kod został zaprojektowany przez RoboCircuits

Zasubskrybuj mnie na youtube https://youtube.com/robocircuits lub odwiedź robocircuits.com Zawsze musimy dołączyć bibliotekę*/

#include "LedControl.h"

/* Teraz potrzebujemy LedControl do pracy. ***** Te numery pinów prawdopodobnie nie będą działać z twoim sprzętem ***** pin 12 jest podłączony do DataIn pin 11 jest podłączony do CLK pin 10 jest podłączony do LOAD Mamy tylko jeden MAX72XX. */

LedControl lc = LedControl (12, 11, 10, 1);

/* zawsze trochę czekamy między aktualizacjami wyświetlacza */ unsigned long delaytime=500; bajt szósty[8]={B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; bajt piąty[8]={B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; bajt czwarty[8]={B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; bajt trzeci[8]={B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; bajt drugi[8]={B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; bajt jeden[8]={B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup() { /* MAX72XX jest w trybie oszczędzania energii podczas uruchamiania, musimy wykonać budzenie */ lc.shutdown(0, false); /* Ustaw jasność na średnie wartości */ lc.setIntensity(0, 8); /* i wyczyść wyświetlacz */ lc.clearDisplay(0); }

/* Ta metoda wyświetli znaki (potrzebujesz co najmniej 7x7 diod led, aby zobaczyć całe znaki) */ void one1() { /* tutaj są dane dla znaków */ /* teraz wyświetlaj je jeden po drugim z małym opóźnienie */ lc.setRow(0, 0, jeden[0]); lc.setRow(0, 1, jeden[1]); lc.setRow(0, 2, jeden[2]); lc.setRow(0, 3, jeden[3]); lc.setRow(0, 4, jeden[4]); lc.setRow(0, 5, jeden[5]); lc.setRow(0, 6, jeden[6]); lc.setRow(0, 7, jeden[7]); opóźnienie (czas opóźnienia); } void two2() { /* oto dane dla znaków */ /* teraz wyświetlaj je jeden po drugim z małym opóźnieniem */ lc.setRow(0, 0, two[0]); lc.setRow(0, 1, dwa[1]); lc.setRow(0, 2, dwa[2]); lc.setRow(0, 3, dwa[3]); lc.setRow(0, 4, dwa[4]); lc.setRow(0, 5, dwa[5]); lc.setRow(0, 6, dwa[6]); lc.setRow(0, 7, dwa[7]); opóźnienie (czas opóźnienia); } void three3() { /* oto dane dla znaków */ /* teraz wyświetlaj je jeden po drugim z małym opóźnieniem */ lc.setRow(0, 0, three[0]); lc.setRow(0, 1, trzy[1]); lc.setRow(0, 2, trzy[2]); lc.setRow(0, 3, trzy[3]); lc.setRow(0, 4, trzy[4]); lc.setRow(0, 5, trzy[5]); lc.setRow(0, 6, trzy[6]); lc.setRow(0, 7, trzy[7]); opóźnienie (czas opóźnienia); } void four4() { /* oto dane dla znaków */ /* teraz wyświetlaj je cztery na cztery z małym opóźnieniem */ lc.setRow(0, 0, four[0]); lc.setRow(0, 1, cztery[1]); lc.setRow(0, 2, cztery[2]); lc.setRow(0, 3, cztery[3]); lc.setRow(0, 4, cztery[4]); lc.setRow(0, 5, cztery[5]); lc.setRow(0, 6, cztery[6]); lc.setRow(0, 7, cztery[7]); opóźnienie (czas opóźnienia); } void five5() { /* oto dane znaków */ /* teraz wyświetlaj je pięć na pięć z małym opóźnieniem */ lc.setRow(0, 0, five[0]); lc.setRow(0, 1, pięć[1]); lc.setRow(0, 2, pięć[2]); lc.setRow(0, 3, pięć[3]); lc.setRow(0, 4, pięć[4]); lc.setRow(0, 5, pięć[5]); lc.setRow(0, 6, pięć[6]); lc.setRow(0, 7, pięć[7]);

opóźnienie (czas opóźnienia); } void six6() { /* oto dane dla znaków */ /* teraz wyświetlaj je sześć na sześć z małym opóźnieniem */ lc.setRow(0, 0, six[0]); lc.setRow(0, 1, sześć[1]); lc.setRow(0, 2, sześć[2]); lc.setRow(0, 3, sześć[3]); lc.setRow(0, 4, sześć[4]); lc.setRow(0, 5, sześć[5]); lc.setRow(0, 6, sześć[6]); lc.setRow(0, 7, sześć[7]); opóźnienie (czas opóźnienia); }

void loop() { int x; if(analogRead(A4)==1000) { x = losowo (1, 6); } switch(x){ przypadek 1: jeden1(); przerwa; przypadek 2: dwa2(); przerwa; przypadek 3: trzy3(); przerwa; przypadek 4: cztery4(); przerwa; przypadek 5: pięć5(); przerwa; przypadek 6: sześć6(); przerwa;} }

Krok 4: Polub udostępnij

Subskrybuj nas na YouTube -

Polub nas na Facebooku -

Odwiedź -

Zalecana: