Obsah:

Kostky Arduino pro deskové hry: 4 kroky
Kostky Arduino pro deskové hry: 4 kroky

Video: Kostky Arduino pro deskové hry: 4 kroky

Video: Kostky Arduino pro deskové hry: 4 kroky
Video: Současné výzvy strojového učení a AI - Tomáš Mikolov || Seminář MPN 26.2.2020 2024, Listopad
Anonim

Autor: RoboCircuits_comSledovat více od autora:

Elektronické kostky s UTSOURCE
Elektronické kostky s UTSOURCE
Elektronické kostky s UTSOURCE
Elektronické kostky s UTSOURCE
Přepínač hladiny vody pomocí D882
Přepínač hladiny vody pomocí D882
Přepínač hladiny vody pomocí D882
Přepínač hladiny vody pomocí D882
Hodiny okolního reálného času
Hodiny okolního reálného času
Hodiny okolního reálného času
Hodiny okolního reálného času

O: YouTuber, Drone Manufaturer Více o RoboCircuits_com »

Možná jste tyto kostky použili při hraní LUDO a dalších deskových her. Ale jako elektronický nadšenec musím tento trend změnit.

Rozhodl jsem se tedy udělat elektronickou kostku. Pro svůj účel jsem použil Arduino.

Krok 1: DIY Arduino

Toto arduino jsem vyrobil pomocí mikrokontroléru atmega 328p. Deska plošných spojů k tomu je objednána na „jlcpcb.com“, protože poskytuje nejlepší desky plošných spojů za nízké ceny. Poté jsem všechny součásti připájel a nakonec jsem dostal toto roztomilé vypadající Arduino UNO.

Všechna schémata a soubory jsou uvedeny v článku mého Webiste -

Krok 2: Vytvoření projektu

dobře!!!!

dost o Arduinu. Nyní vytvořme projekt. Pro náhodné hodnoty jsem použil náhodnou funkci v arduino ide k získání hodnot od 1 do 6, kdykoli stisknu tlačítko. Podívejte se tedy na toto celé video, abyste věděli, jak tento projekt vzniká.

Krok 3: Kód

/* Tento kód vytvořil RoboCircuits

Přihlaste se k odběru na youtube https://youtube.com/robocircuits nebo navštivte robocircuits.com Vždy musíme zahrnout knihovnu*/

#include "LedControl.h"

/* Nyní potřebujeme pracovat s LedControl. ***** Tato čísla pinů pravděpodobně nebudou fungovat s vaším hardwarem ***** pin 12 je připojen k DataIn pin 11 je připojen k CLK pin 10 je připojen k LOAD Máme pouze jeden MAX72XX. */

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

/ * vždy počkáme trochu mezi aktualizacemi displeje */ unsigned long delaytime = 500; byte šest [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; byte pět [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; byte four [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; byte tři [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; byte dva [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; bajt jedna [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

neplatné nastavení () { / * MAX72XX je při spuštění v úsporném režimu, musíme provést probuzení * / lc.shutdown (0, false); / * Nastavte jas na střední hodnoty */ lc.setIntensity (0, 8); / * a vymažte displej */ lc.clearDisplay (0); }

/* Tato metoda zobrazí znaky (k zobrazení celých znaků potřebujete alespoň 7x7 diod)* /void one1 () { /* zde jsou data pro znaky* / /* nyní je zobrazujte po jednom s malým zpoždění */ lc.setRow (0, 0, jedna [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, jedna [7]); zpoždění (doba zpoždění); } void two2 () { / * zde jsou data pro znaky * / / * nyní je zobrazují jeden po druhém s malým zpožděním * / lc.setRow (0, 0, dva [0]); lc.setRow (0, 1, dva [1]); lc.setRow (0, 2, dva [2]); lc.setRow (0, 3, dva [3]); lc.setRow (0, 4, dva [4]); lc.setRow (0, 5, dva [5]); lc.setRow (0, 6, dva [6]); lc.setRow (0, 7, dva [7]); zpoždění (doba zpoždění); } void three3 () { / * zde jsou data pro znaky * / / * nyní je zobrazují jeden po druhém s malým zpožděním * / lc.setRow (0, 0, tři [0]); lc.setRow (0, 1, tři [1]); lc.setRow (0, 2, tři [2]); lc.setRow (0, 3, tři [3]); lc.setRow (0, 4, tři [4]); lc.setRow (0, 5, tři [5]); lc.setRow (0, 6, tři [6]); lc.setRow (0, 7, tři [7]); zpoždění (doba zpoždění); } void four4 () { / * zde jsou data pro znaky * / / * nyní je zobrazují čtyři po čtyřech s malým zpožděním * / lc.setRow (0, 0, čtyři [0]); lc.setRow (0, 1, čtyři [1]); lc.setRow (0, 2, čtyři [2]); lc.setRow (0, 3, čtyři [3]); lc.setRow (0, 4, čtyři [4]); lc.setRow (0, 5, čtyři [5]); lc.setRow (0, 6, čtyři [6]); lc.setRow (0, 7, čtyři [7]); zpoždění (doba zpoždění); } void Five5 () { / * zde jsou data pro znaky * / / * nyní je zobrazí pětkrát s malým zpožděním * / lc.setRow (0, 0, pět [0]); lc.setRow (0, 1, pět [1]); lc.setRow (0, 2, pět [2]); lc.setRow (0, 3, pět [3]); lc.setRow (0, 4, pět [4]); lc.setRow (0, 5, pět [5]); lc.setRow (0, 6, pět [6]); lc.setRow (0, 7, pět [7]);

zpoždění (doba zpoždění); } void six6 () { / * zde jsou data pro znaky * / / * nyní je zobrazují šestkrát po šesti s malým zpožděním * / lc.setRow (0, 0, šest [0]); lc.setRow (0, 1, šest [1]); lc.setRow (0, 2, šest [2]); lc.setRow (0, 3, šest [3]); lc.setRow (0, 4, šest [4]); lc.setRow (0, 5, šest [5]); lc.setRow (0, 6, šest [6]); lc.setRow (0, 7, šest [7]); zpoždění (doba zpoždění); }

void loop () {int x; if (analogRead (A4) == 1000) {x = random (1, 6); } switch (x) {case 1: one1 (); přestávka; případ 2: two2 (); přestávka; případ 3: three3 (); přestávka; případ 4: four4 (); přestávka; případ 5: Five5 (); přestávka; případ 6: six6 (); přestávka;} }

Krok 4: Líbí se Sdílet

Přihlaste se k odběru na YouTube -

Stejně jako my na Facebooku -

Navštivte -

Doporučuje: