Roll ve velkém stylu s tímto DIY Electronic D20 Die

  • Michael Fisher
  • 2
  • 5093
  • 186
reklama

Chcete pro svou příští stolní RPG hru něco jedinečného? A co elektronický D20 s vlastní grafikou pro kritické zásahy a zmeškání? Dnes vám ukážu, jak si vytvořit svůj vlastní s Arduino a několika jednoduchými částmi.

Nebojte se, pokud jste Arduino ještě nikdy nepoužívali, máme průvodce jak začít Začínáme s Arduino: Průvodce pro začátečníky Začínáme s Arduino: Průvodce pro začátečníky Arduino je platforma s otevřeným zdrojovým kódem elektroniky založená na flexibilní, snadno použitelné- používat hardware a software. Je určen pro umělce, designéry, fandy a kohokoli, kdo má zájem o vytváření interaktivních objektů nebo prostředí. .

Sestavte plán

Toto je jednoduchý projekt. Arduino bude řídit OLED displej a tlačítko bude házet kostkou. Vlastní grafika se zobrazí pro kritický zásah nebo kritický miss rolls. Kód můžete snadno upravit na D8, D10 nebo D12.

Co potřebuješ

  • 1 x Arduino
  • 1 x 0,96 "displej I2C OLED
  • 1 x tlačítko
  • 1 x 10k? Rezistor
  • 1 x prkénko
  • Různé dráty
  • Celý kód zde, pokud si nepřejete dodržovat písemné pokyny.

To jsou hlavní části, které potřebujete k vytvoření vlastního D20. Možná budete chtít nainstalovat do pouzdra (diskutováno níže) a pájet obvod do trvalejšího stavu. Zde jsou další části, které musíte udělat:

  • 4 x M2 x 10 mm (0,4 palce) šrouby
  • 4 x matice M2
  • 4 x 7 mm (0,28 palce) podložky
  • 9V baterie snap (nebo vhodná alternativa)
  • Různé smršťovací trubičky

Tyto OLED displeje jsou velmi cool. Obvykle je lze zakoupit v bílé, modré, žluté nebo ve směsi tří. Koupil jsem si jeden v modrém, aby odpovídal mému případu. Ujistěte se, že dostanete I2C model místo SPI.

Bude vhodný téměř jakýkoli Arduino. Vybral jsem si Nano, protože jsou dostatečně malé, aby se vešly do případu. Podívejte se na našeho průvodce nákupem Průvodce nákupem Arduino: Kterou desku byste měli získat? Průvodce nákupem Arduina: Kterou desku byste měli získat? Je tam tolik různých druhů desek Arduino, bylo by vám odpuštěno, že jste zmatení. Které byste si měli koupit pro svůj projekt? Pomozte nám s tímto nákupním průvodcem Arduino! Další informace o modelech Arduino.

Okruh

Zde je okruh, který potřebujete:

Připojit VCC a GND na OLED displeji Arduino +5V a přízemní. Připojit analog 4 na Arduino na čep označený SDA. Připojit analog 5 do SCL kolík. Tyto kolíky obsahují obvody potřebné k ovládání displeje pomocí sběrnice I2C. Přesné kolíky se budou lišit podle modelu, ale na modelech Nano a Uno se používají A4 a A5. Pokud nepoužíváte Uno nebo Nano, podívejte se do dokumentace knihovny Wire k vašemu modelu.

Připojte baterii k zemi a VIN kolík. To znamená, že je připojeno k napětí, a přijímá řadu různých stejnosměrných napětí - ale nejprve zkontrolujte svůj konkrétní model a někdy se může mírně lišit.

Připojte tlačítko k digitální pin 2. Všimněte si, jak 10k? odpor je připojen k zemi. Toto je velmi důležité! Toto je známé jako stahovací odpor a brání Arduino detekovat falešná data nebo rušení stiskem tlačítka. Slouží také k ochraně desky. Pokud by tento rezistor nebyl použit, + 5V by šlo rovnou do země. Toto je známé jako mrtvý krátký a je to snadný způsob, jak zabít Arduina.

Pokud pájíte tento obvod, chraňte svá spojení pomocí smršťovací hadičky:

Ujistěte se, že jej příliš nezohříváte, a to až poté, co jste si jisti, že obvod funguje. Můžete také chtít zkroucení kabelů na páry. To je udržuje čisté a pomáhá je chránit před nepřiměřeným stresem:

Tlačítko Test

Nyní, když jste vytvořili obvod, nahrajte tento testovací kód (nezapomeňte vybrat správnou desku a port ze seznamu Nástroje> Deska a Nástroje> Port nabídky):

const int buttonPin = 2; // číslo nastavení knoflíku void setup () pinMode (buttonPin, INPUT); // tlačítko nastavení Serial.begin (9600); // setup serial void loop () if (digitalRead (buttonPin) == HIGH) Serial.print ("Funguje to"); zpoždění (250); 

Po nahrání udržujte Arduino připojené přes USB a otevřete sériový monitor (Vpravo nahoře> Sériový monitor). Měli byste vidět slova Funguje to se objeví při každém stisknutí tlačítka.

Pokud se nic nestane, jděte a znovu zkontrolujte okruh.

Nastavení OLED

Abyste mohli řídit displej, musíte nainstalovat dvě knihovny. Stáhněte si z knihovny Github knihovny Adafruit_SSD1306 a Adafruit-GFX [No Longer Available] a uložte je do složky knihovny. Pokud si nejste jisti, kde máte složky s knihovnami, přečtěte si můj návod na retro hry Arduino Retro Gaming s OLED displejem Arduino Retro Gaming S OLED displejem Už jste někdy přemýšleli, kolik práce vyžaduje psaní vlastních retro her? Jak snadné je Pong kódovat Arduino? , kde nakonfiguruji toto stejné zobrazení podrobněji.

Restartujte Arduino IDE a nahrajte testovací náčrtek z Soubor> Příklady Jídelní lístek. Vybrat Adafruit SSD1306 a pak ssd1306_128x64_i2c. Nahrajte tento kód (bude to chvíli trvat) a na displeji byste měli vidět spoustu tvarů a vzorů:

Pokud se nic nestane, znovu zkontrolujte připojení. Pokud po kontrole stále nebude fungovat, budete muset upravit ukázkový kód.

Změňte tento řádek (na začátku založit funkce):

display.begin (SSD1306_SWITCHCAPVCC, 0x3D);

K tomuto:

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

Toto sdělí knihovně specifické podrobnosti o displeji, který používáte. Nyní byste měli být všichni připraveni pokračovat s sestavením.

Pouzdro

Pokud stavíte toto na prkénku nebo si ho nepřejete zabalit, můžete tento krok přeskočit.

Navrhl jsem a 3D vytiskl tuto krabici. Získejte soubory na serveru Thingiverse. Nebojte se, pokud nemáte 3D tiskárnu - online služby 3D Hubs a Shapeways poskytují online tiskové služby.

Tuto krabici můžete snadno vyrobit ze dřeva nebo si zakoupit plastovou krabici na projekt.

Víko je jednoduché provedení push fit a obsahuje několik výřezů pro hardware:

Kód

Nyní, když je vše připraveno, je čas na kód. Jak to bude fungovat v Pseudokódu:

pokud je stisknuto tlačítko, vygenerujte náhodné číslo, pokud je náhodné číslo 20 zobrazit grafiku jinak, pokud náhodné číslo je 1 zobrazit grafiku jinak zobrazit číslo

Aby to fungovalo správně, musí být vygenerováno náhodné číslo - to je role formy. Arduino má generátor náhodných čísel náhodný, ale nemělo by se to používat. I když je to dost dobré pro základní náhodné úkoly, pro elektronickou matrici to nestačí. Důvody jsou poněkud komplikované, ale můžete, pokud vás zajímá boallen.com.

Stáhněte si knihovnu TrueRandom od Sirleech na Githubu. Přidejte toto do složky knihovny a restartujte IDE.

Nyní vytvořte nový soubor a nastavte svůj počáteční kód (nebo jen pořiďte hotový kód z GitHubu):

#include #include #include #include #include Adafruit_SSD1306 display (4); void setup () display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // nastavení OLED pinMode (buttonPin, INPUT); // tlačítko nastavení void loop () 

Tento kód konfiguruje OLED a zahrnuje všechny knihovny, které s ním musíte komunikovat, spolu s vaší novou knihovnou náhodných čísel. Nyní přidejte toto do hlavní smyčky:

if (digitalRead (buttonPin) == HIGH) zpoždění (15); if (digitalRead (buttonPin) == HIGH) display.fillScreen (BLACK); // vymazat celý displej display.setTextColor (WHITE); display.setTextSize (2); display.setCursor (0, 0); display.println (TrueRandom.random (1, 21)); // print náhodné číslo display.display (); // zápis pro zobrazení zpoždění (100); 

To je v tuto chvíli docela základní, ale je to funkční D20. Po každém stisknutí tlačítka se na obrazovce zobrazí náhodné číslo od jednoho do 20:

Funguje to dobře, ale je to trochu nudné. Pojďme to vylepšit. Vytvořte dvě nové metody, drawDie a eraseDie:

void drawDie () display.drawRect (32, 0, 64, 64, WHITE); 

Ty nakreslí matrici uprostřed obrazovky. Možná budete chtít, aby to bylo komplikovanější, například nakreslením D20 nebo D12 atd., Ale je jednodušší nakreslit základní šestibokou matrici. Zde je základní použití:

drawDie ();

Dále upravte svou hlavní smyčku tak, aby nakreslila náhodné číslo, pouze větší a uprostřed. Změňte velikost textu a kurzor na toto:

display.setTextColor (WHITE); display.setCursor (57, 21);

Teď to vypadá mnohem lépe:

Jediný problém je u čísel větších než devět:

Oprava tohoto problému je jednoduchá. Jakákoli čísla menší než 10 budou mít kurzor nastaven na jinou pozici než čísla 10 nebo větší. Nahraďte tento řádek:

display.setCursor (57, 21);

S tím:

int roll = TrueRandom.random (1, 21); // uložte náhodné číslo, pokud (roll < 10)  // single character number display.setCursor(57, 21);  else  // dual character number display.setCursor(47, 21); 

Jak to vypadá teď:

Vše, co zbývá, je pro obrázky, když hodíte kritickým zásahem nebo chybí. Existuje několik kroků, ale je to dost jednoduchý proces.

Najděte vhodný obrázek, který chcete použít (čím jednodušší, tím lépe, protože displej je pouze jednobarevný). Zde jsou obrázky, které jsem použil:

Obrázek Kredit: publicdomainvectors.org

Jakýkoli obrázek, který chcete použít, bude třeba převést do pole HEX. Toto je reprezentace obrázku ve formě kódu. K dispozici je mnoho nástrojů a některé jsou psány speciálně pro OLED displeje. Nejjednodušší způsob je použití online nástroje PicturetoC_Hex. Zde jsou potřebná nastavení:

Nahrajte obrázek a nastavte formát kódu na HEX: 0x. Soubor Používá na Černá / bílá pro všechny funkce kreslení obrazu. Ponechte všechny ostatní možnosti jako výchozí. Zde můžete změnit velikost obrázku. lis Získejte C String a měli byste vidět obrazová data:

Tato vygenerovaná data budete potřebovat za minutu. Vytvořte dvě funkce s názvem drawExplosion a drawSkull (nebo vhodné jméno pro vaši verzi). Zde je kód:

void drawExplosion () // uložit obrázek do EEPROM statické konstanty bez znaménka char PROGMEM imExp [] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xfc, 0x00,0x00,0x00 , 0x00,0x00,0x78,0x7f, 0xff, 0xc0,0x00,0x00,0x00,0x00,0x00,0xfe, 0xff, 0xff, 0xf0,0x00,0x00,0x00,0x3f, 0xff, 0xff, 0xff, 0xfb, 0x00,0x00,0x00 , 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0,0x00,0x00,0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,0x01,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,0x03,0xff , 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,0x03,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,0x03,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,0x03,0xff, 0xff , 0xff, 0xff, 0xff, 0xff, 0xf0,0x07,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,0x07,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,0x07,0xff, 0xff, 0xff , 0xff, 0xff, 0xff, 0xe0,0x07,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,0x1f, 0xff, 0xff, 0xff, 0xff , 0xff, 0xff, 0xe0,0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,0x03,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,0x03,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff0x03,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,0x01,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,0x00,0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,0x00,0x07,0xff, 0xff, 0xf9,0xff, 0xd8, 0x00,0x00,0x00,0x3f, 0xff, 0xf0,0x0f, 0x00,0x00,0x00,0x00,0x00,0x1f, 0x1f, 0xf0,0x00,0x00,0x00,0x00,0x0f, 0xe0,0x00,0x00,0x00, 0x00,0x00,0x00,0x0f, 0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0xf0,0x00,0x00,0x00,0x00, 0x00,0x00,0x0f, 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x3f, 0xf8,0x00,0x00,0x00,0x00,0x00, 0x00,0x7f, 0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x7f, 0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0x7f, 0xff, 0x00,0x00,0x00,0x00,0x00,0x00,0, 0x7f, 0xfe, 0x00,0x00,0x00,0x00,0x00,0x00,0x7f, 0xfc, 0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x07, 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f, 0xf8,0x00, 0x00,0x00,0x00,0x00,0x00,0x0f, 0xfc, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f, 0xff, 0x00,0x00,0x00,0x00,0x00,0x0f, 0xff, 0xff, 0xff, 0x00, 0x00,0x00,0x07,0xff, 0xff, 0xff, 0xff, 0xf0,0x00,0x00,0x00,0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,0x00,0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,0x00,0x01,0xbf, 0xff, 0xff, 0xff, 0x30,0x00,0x00,0x00,0x00,0x13,0xf7,0xb8,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; display.drawBitmap (0, 0, imExp, 64, 62, 1); // draw mushroom cloud void drawSkull () // uložit obrázek do EEPROM statické konstanty bez znaménka PROGMEM imSku [] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0xf0,0x00,0x00,0x0000 , 0x00,0x78,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0xfc, 0x00,0x07,0xf8,0x00,0x00,0x00,0x00,0xfe, 0x00,0x07,0xf8,0x00,0x00,0x00,0x01 , 0xfe, 0x00,0x07,0xfc, 0x00,0x00,0x00,0x01,0xfe, 0x00,0x07,0xfe, 0x00,0x3f, 0xc0,0x03,0xfe, 0x00,0x01,0xff, 0x81,0xff, 0xfc, 0x07,0xec , 0x00,0x00,0x3f, 0xc7,0xff, 0xff, 0x1f, 0xc0,0x00,0x00,0x0f, 0xcf, 0xff, 0xff, 0xdf, 0x00,0x00,0x00,0x07,0xbf, 0xff, 0xff, 0xee, 0x00,0x00 , 0x00,0x01,0x7f, 0xff, 0xff, 0xf0,0x00,0x00,0x00,0x00,0x00,0xff, 0xff, 0xff, 0xf8,0x00,0x00,0x00,0x01,0xff, 0xff, 0xff, 0xf8,0x00,0x00,0x00 , 0x03,0xff, 0xff, 0xff, 0xfc, 0x00,0x00,0x00,0x07,0xff, 0xff, 0xff, 0xfe, 0x00,0x00,0x00,0x0f, 0xff, 0xff, 0xff, 0xff, 0x00,0x00,0x00,0x0f , 0xff, 0xff, 0xff, 0xff, 0x00,0x00,0x00,0x1f, 0xff, 0xff, 0xff, 0xff, 0x80,0x00,0x00 , 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80,0x00,0x00,0x1f, 0xff, 0xff, 0xff, 0xff, 0x80,0x00,0x00,0x1f, 0xff, 0xff, 0xff, 0xff, 0x80,0x00,0x00,0x1f , 0xff, 0xff, 0xff, 0xff, 0x80,0x00,0x00,0x1f, 0xff, 0xff, 0xff, 0xff, 0x80,0x00,0x00,0x1e, 0x3f, 0xff, 0x3f, 0xc7,0x80,0x00,0x00,0x1e, 0x0c , 0x0f, 0x00,0x07,0x80,0x00,0x00,0x1e, 0x00,0x0f, 0x00,0x0f, 0x80,0x00,0x00,0x1e, 0x00,0x19,0x80,0x0f, 0x00,0x00,0x00,0x0f, 0x00,0x19 , 0x80,0x0f, 0x00,0x00,0x00,0x0d, 0x00,0x30,0xc0,0x1f, 0x00,0x00,0x00,0x05,0x80,0x70,0xc0,0x1e, 0x00,0x00,0x00,0x05,0xf0,0xe0,0xe0 , 0x36,0x00,0x00,0x00,0x01,0xff, 0xe0,0x7f, 0xf0,0x00,0x00,0x00,0x00,0x03,0xff, 0xc4,0x7f, 0xf0,0x00,0x00,0x00,0x03,0xff, 0xcc, 0x7f, 0xf0 , 0x00,0x00,0x00,0x03,0xff, 0xcc, 0x7f, 0xf0,0x00,0x00,0x00,0x00,0x03,0xff, 0x9e, 0x7f, 0xf0,0x00,0x00,0x00,0x00,0xff, 0xfe, 0x7f, 0xc0,0x00 , 0x00,0x00,0x00,0x01,0xff, 0xf8,0x1c, 0x00,0x00,0x00,0x03,0xe0,0x3f, 0x01,0xbf, 0x00,0x00,0x00,0x07,0xa6,0x40,0x09,0x9f, 0x80,0x00 , 0x00,0x1f, 0x27,0x5a, 0x39,0x9f, 0xf8,0x00,0x01,0xff, 0x27,0xdb, 0x39,0x0f, 0xfc, 0x00,0x03,0xfe, 0x31,0x7f, 0x39,0x07,0xfc, 0x00,0x03 , 0xfc, 0x10,0x1a, 0x02,0x03,0xf8,0x00,0x03,0xf8,0x10,0x00,0x02,0x01,0xf0,0x00,0x01,0xf8,0x10,0x00,0x02,0x01,0xe0,0x00,0x00,0x78 , 0x10,0x00,0x02,0x00,0xe0,0x00,0x00,0x70,0x30,0x00,0x02,0x00,0x00,0x00,0x00,0x30,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,064 , 0x00,0x1b, 0x00,0x00,0x00,0x00,0x73,0x55,0x63,0x00,0x00,0x00,0x00,0x00,0xf9,0x55,0x4f, 0x00,0x00,0x00,0x00,0x00,0x7f, 0x14 , 0x1f, 0x00,0x00,0x00,0x00,0x00,0x1f, 0xe0,0xfe, 0x00,0x00,0x00,0x00,0x00,0x0f, 0xff, 0xfc, 0x00,0x00,0x00,0x00,0x00,0x07,0xff, 0xf0 , 0x00,0x00,0x00,0x00,0x00,0x03,0xff, 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; display.drawBitmap (0, 0, imSku, 60, 64, 1); // draw cloud lebky

Pokud chcete použít obrázky, které jsem použil, pokračujte a zkopírujte kód. Pokud chcete použít vlastní obrázky, které jste vygenerovali dříve, zkopírujte bajtový kód do imSku a imExp pole podle potřeby.

Zde tyto obrázky vypadají na displeji:

Nejdůležitější součástí tohoto kódu je tento řádek:

statická konstanta nepodepsaná char PROGMEM imSku []

To říká Arduino, aby ukládal vaše obrázky do EEPROM (co je EEPROM? Jak používat Arduino EEPROM k ukládání dat mezi výkonovými cykly Jak používat Arduino EEPROM k ukládání dat mezi výkonovými cykly Věděli jste, že Arduino může ukládat data, když je vypnutá) „Mluvím o EEPROM, tak se ke mně připojte, když vám ukážu, jak číst a psát.“ Namísto jeho RAM (rychlý průvodce RAM A rychlý a špinavý průvodce RAM: Co potřebujete vědět rychle a Dirty Guide to RAM: Co potřebujete vědět RAM je klíčovou součástí každého počítače, ale může to být matoucí. Rozdělujeme jej podle snadno pochopitelných podmínek, kterým rozumíte.). Důvod je jednoduchý; Arduino má omezenou paměť RAM a jeho použití až k ukládání obrázků nemusí zůstat zbylé, aby se váš kód mohl spustit

Upravte svůj hlavní -li pro zobrazení těchto nových grafik, když je jeden nebo 20 válcován. Poznamenejte si řádky kódu, aby se zobrazilo také číslo válcované vedle obrázků:

if (roll == 20) drawExplosion (); display.setCursor (80, 21); display.println ("20");  else if (roll == 1) display.setCursor (24, 21); display.println ("1"); drawSkull ();  jinak pokud (hodit < 10)  // single character number display.setCursor(57, 21); display.println(roll); // write the roll drawDie(); // draw the outline  else  // dual character number display.setCursor(47, 21); display.println(roll); // write the roll drawDie(); // draw the outline 

A jak vypadá tato nová role:

To je vše pro kódovou stránku (pokud to všechno přeskočíte, pořiďte si kód z GitHubu). Dalo by se to snadno upravit tak, aby to bylo D12, D8 atd.

Konečné shromáždění

Nyní, když je vše hotové, je čas vše zabalit. Přišroubujte displej a ujistěte se, že šrouby příliš nepřitahujte. To je možná nejtěžší část. Praskl jsem tak na displeji, takže možná budete chtít použít nějaké plastové podložky. Vystřihnul jsem z Plasticard několik čtverců:

Malé matice a šrouby se mohou obtížně spojit. Tip: Pomocí malého kusu Blu-Tack na konci šroubováku nejprve zašroubujte matice:

Zašroubujte tlačítko, připojte baterii a zavřete víko. Dbejte na to, abyste nezachytili žádné dráty, ani je nespojujte příliš pevně, což by mohlo způsobit zkrat. V závislosti na délce koncových kabelů budete možná muset chránit exponovaná spojení pomocí určité izolace (sériová krabice funguje dobře):

Jak to vypadá uvnitř:

A tady je hotový produkt:

Nyní byste měli být hrdým vlastníkem elektronického D20!

Jaké změny jste provedli? Změnili jste obrázky? Dejte nám vědět v komentářích, rádi bychom viděli, co jste udělali!




ageekifuzo ([email protected])
27.09.21 16:28
<a href=http://slkjfdf.net/>Alinomjo</a> <a href="http://slkjfdf.net/">Pateperio</a> now.zhqh.cs.unedose.fr.hmb.mf http://slkjfdf.net/
uvokomuguziq ([email protected])
27.09.21 16:12
<a href=http://slkjfdf.net/>Ogayofup</a> <a href="http://slkjfdf.net/">Akeyivobe</a> ecc.ljdv.cs.unedose.fr.xyx.ku http://slkjfdf.net/
O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.