Roll u stilu s ovim DIY elektroničkim dielom D20

  • Brian Curtis
  • 0
  • 2316
  • 477
Oglas

Želite nešto malo jedinstveno za vašu sljedeću stolno-igranu ulogu? Što je s elektroničkim D20 s prilagođenom grafikom za kritične pogotke i promašaje? Danas ću vam pokazati kako s Arduinom možete napraviti svoj vlastiti dio i nekoliko jednostavnih dijelova.

Ne brinite ako nikada prije niste koristili Arduino, imamo vodič za početak Upoznavanje s Arduinom: Vodič za početnike Početak rada s Arduinom: Vodič za početnike Arduino je platforma za prototiranje elektronike otvorenog koda koja se temelji na fleksibilnoj i jednostavnoj koristiti hardver i softver. Namijenjen je umjetnicima, dizajnerima, hobistima i svima koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja. .

Izgradite plan

Ovo je jednostavan projekt. Arduino će pokretati OLED zaslon, a gumb će pokrenuti matricu. Prilagođena grafika prikazat će se za kritični hit ili kritični promašaj. Kôd možete lako izmijeniti u obliku D8, D10 ili D12.

Što trebaš

  • 1 x Arduino
  • 1 x 0,96 "I2C OLED zaslon
  • 1 x tipka
  • 1 x 10k? Otpornik
  • 1 x krušna ploča
  • Izdvojene žice za spajanje
  • Ovdje unesite puni kôd, ako ne želite slijediti sve pisane upute.

To su osnovni dijelovi koji su vam potrebni za izgradnju vlastitog D20. Možda ga želite instalirati u futrolu (o kojoj je riječ u daljnjem tekstu) i spojite krug u trajnije stanje. Evo dodatnih dijelova koji su vam potrebni za to:

  • Vijci 4 x M2 x 10 mm (0,4 inča)
  • 4 x M2 matice
  • 4 x 7 mm podmetači (0,28 inča)
  • Snaga akumulatora od 9 V (ili prikladna alternativa)
  • Izvrsne cijevi za skupljanje topline

Ovi OLED zasloni su vrlo cool. Obično se mogu kupiti u bijeloj, plavoj, žutoj ili mješavini ove tri. Kupio sam ga u plavom, da odgovara mom slučaju. Obavezno nabavite I2C model umjesto SPI.

Gotovo svaki Arduino će biti prikladan. Odabrao sam Nano, jer su dovoljno mali da se mogu uklopiti u slučaj. Pogledajte naš vodič za kupnju Arduino vodič za kupnju: Koju ploču trebate nabaviti? Vodič za kupnju Arduinoa: Koji odbor trebate dobiti? Postoji toliko mnogo različitih Arduino ploča vani da bi vam bilo oprošteno što ste zbunjeni. Koje biste trebali kupiti za svoj projekt? Pomozite nam s ovim vodičem za kupovinu Arduino-a! za više informacija o Arduino modelima.

Krug

Evo kruga koji vam treba:

Spojiti VCC i GND na OLED zaslonu Arduinu +5V i tlo. Spojiti analogni 4 na Arduinu na pin označen SDA. Spojiti analogni 5 prema SCL pin. Ove igle sadrže krug potreban za pogon zaslona pomoću I2C sabirnice. Točne iglice ovisit će ovisno o modelu, ali A4 i A5 koriste se na Nano i Uno. Provjerite dokumentaciju knjižnice žica za svoj model ako ne koristite Uno ili Nano.

Spojite bateriju na zemlju i uređaj VIN pin. To znači napon u i prihvaća razne različite istosmjerne napone - ali prvo provjerite svoj određeni model, a može ponekad i malo varirati.

Gumb spojite na digitalni pin 2. Primijetite kako 10k? otpornik je spojen na zemlju. Ovo je veoma važno! To je poznato kao otpornik koji se spušta i sprječava da Arduino otkriva lažne podatke ili smetnje kao pritiske na tipku. Služi i za zaštitu ploče. Ako se ovaj otpornik ne koristi, + 5V bi išao ravno u zemlju. To je poznato kao mrtav kratki i jednostavan je način ubiti Arduina.

Ako lepite ovaj krug, zaštitite svoje veze toplinskim cijevima:

Pazite da ga ne zagrijavate previše i učinite to samo nakon što ste sigurni da krug radi. Također biste željeli uviti kabele u parove. To ih održava urednima i pomaže ih zaštititi od pretjeranog stresa:

Test gumba

Sada kada ste izgradili krug, prenesite ovaj testni kôd (obavezno odaberite ispravnu ploču i priključak s Alati> Ploča i Alati> Luka izbornika):

const int buttonPin = 2; // broj postavke podešavanja neispravnosti igle za gumb () pinMode (buttonPin, INPUT); // gumb za postavljanje Serial.begin (9600); // setup serial void petlja () if (digitalRead (buttonPin) == HIGH) Serial.print ("Radi"); kašnjenja (250); 

Nakon učitavanja zadržite Arduino spojen putem USB-a i otvorite serijski monitor (Gore desno> Serijski monitor). Trebali biste vidjeti riječi Radi pojavljuju se svaki put kada pritisnete gumb.

Ako se ništa ne dogodi, idite i provjerite krug.

Postavljanje OLED-a

Za pokretanje zaslona morate instalirati dvije knjižnice. Preuzmite biblioteke Adafruit_SSD1306 i Adafruit-GFX [No Longer Available] iz Github-a i spremite ih u svoju bibliotečku mapu. Ako niste sigurni gdje se nalaze mape knjižnice, pročitajte moj priručnik za igranje Arduino Retro igre s OLED zaslonom Arduino Retro igranje s OLED zaslonom. Jeste li se ikad zapitali koliko je potrebno da napišete svoje vlastite retro igre? Kako je Pong lako kodirati Arduino? , gdje detaljnije konfiguriram isti zaslon.

Ponovo pokrenite Arduino IDE i prenesite testnu skicu s Datoteka> Primjeri izbornik. Odaberi Adafruit SSD1306 i onda ssd1306_128x64_i2c. Prenesite ovaj kôd (proći će neko vrijeme) i na zaslonu bi trebali vidjeti puno oblika i uzoraka:

Ako se ništa ne dogodi, provjerite veze. Ako nakon provjere i dalje neće raditi, morat ćete izmijeniti kôd uzorka.

Promijenite ovu liniju (na početku postaviti funkcija):

display.begin (SSD1306_SWITCHCAPVCC, 0x3D);

Na ovo:

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

Ovo govori knjižnici određene detalje o zaslonu koji koristite. Sada bi trebali biti spremni za nastavak nadogradnje.

Slučaj

Ako ovo gradite na ploči ili ne želite priložiti okvir, onda ovaj korak možete preskočiti.

Dizajnirao sam i 3D ispisao ovu kutiju. Nabavite datoteke na Thingiverseu. Ne brinite ako nemate 3D pisač - mrežne usluge 3D čvorišta i Shapeways pružaju usluge internetskog ispisa.

Tu kutiju lako možete napraviti od drveta ili kupnjom plastične kutije za projekte.

Poklopac je jednostavnog gurnog dizajna i sadrži nekoliko rezova za hardver:

Kod

Sad kad je sve spremno, vrijeme je za šifru. Evo kako će to raditi u Pseudocode-u:

ako je pritisnut gumb generirajte slučajni broj ako je slučajni broj 20 prikažite grafički inače ako je slučajni broj 1 prikažite grafički inače prikaži broj

Da bi ovo pravilno funkcioniralo, potrebno je generirati slučajni broj - ovo je valjak matrice. Arduino ima generator slučajnih brojeva koji se zove slučajan, ali ne bi ga trebali koristiti. Iako je dovoljno dobar za osnovne slučajne zadatke, jednostavno nije slučajan za elektroničku matricu. Razlozi su pomalo složeni, ali možete, ako vas zanima, na boallen.com.

Preuzmite biblioteku TrueRandom od sirleech na Github. Dodajte to u mapu svoje biblioteke i ponovno pokrenite IDE.

Sada stvorite novu datoteku i postavite svoj početni kôd (ili jednostavno zgrabite gotov kod iz GitHub-a):

#include #include #include #include #include Adafruit_SSD1306 zaslon (4); void setup () display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // postavi OLED pinMode (buttonPin, INPUT); // gumb za postavljanje void petlja () 

Ovaj kôd konfigurira OLED i uključuje sve knjižnice koje su vam potrebne za komunikaciju s njim, zajedno s vašom novom bibliotekom slučajnih brojeva. Sada dodajte ovo glavnoj petlji:

if (digitalRead (buttonPin) == HIGH) kašnjenje (15); if (digitalno čitanje (buttonPin) == HIGH) display.fillScreen (BLACK); // izbrisati cijeli prikaz zaslona.setTextColor (WHITE); display.setTextSize (2); prikaz.setCursor (0, 0); display.println (TrueRandom.random (1, 21)); // ispis slučajnog broja prikaz.display (); // pisati za prikaz kašnjenja (100); 

To je sasvim osnovno u minuti, ali radi o D20. Kad god se gumb pritisne, na ekranu se prikazuje slučajni broj između jedan i 20:

To dobro uspijeva, ali pomalo je dosadno. Učinimo to boljim. Stvorite dvije nove metode, drawDie i eraseDie:

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

Oni će nacrtati matricu na sredini ekrana. Ovo biste možda željeli učiniti još složenijim, možda crtanjem D20 ili D12 itd., Ali jednostavnije je nacrtati osnovnu šesterostranu matricu. Evo osnovne uporabe:

drawDie ();

Zatim modificirajte svoju glavnu petlju kako biste nacrtali slučajni broj, samo veći i u sredini. Promijenite veličinu i pokazivač teksta na ovo:

display.setTextColor (White); prikaz.setCursor (57, 21);

Sada izgleda puno bolje:

Jedini problem je s brojevima većim od devet:

Popravak za to je jednostavan. Bilo koji broj manji od 10 postavit će kursor na drugačiji položaj od onih brojeva 10 ili većih. Zamijenite ovaj redak:

prikaz.setCursor (57, 21);

S ovim:

int roll = TrueRandom.random (1, 21); // pohraniti slučajni broj if (roll) < 10)  // single character number display.setCursor(57, 21);  else  // dual character number display.setCursor(47, 21); 

Evo kako to sada izgleda:

Sve što je sada preostalo je za slike kada provučete kritični pogodak ili promašaj. Uključeno je nekoliko koraka, ali to je dovoljno jednostavan postupak.

Pronađite odgovarajuću sliku koju želite koristiti (što je jednostavnija, to je bolji, jer je zaslon samo jednobojan). Evo slika koje sam koristio:

Kreditna slika: publicdomainvectors.org

Svaka slika koju želite koristiti morat će se pretvoriti u HEX polje. Ovo je prikaz slike u kodnom obliku. Na raspolaganju je mnogo alata za to, a neki su napisani posebno za OLED zaslone. Najlakši način je korištenje mrežnog alata PicturetoC_Hex. Evo potrebnih postavki:

Učitajte svoju sliku i postavite format koda na Hex: 0x. Set Koristi za do Crno / bijelo za sve funkcije crtanja slike. Sve ostale opcije ostavite kao zadane. Ovdje možete promijeniti veličinu slike. tisak Nabavite C string i trebali biste vidjeti kako se prikazuju slikovni podaci:

Trebat će vam ove generirane podatke za minutu. Stvorite dvije funkcije koje se nazivaju drawExplosion i drawSkull (ili prikladno ime za vašu verziju). Evo koda:

void drawExplosion () // pohranjivanje slike u EEPROM statički const nepotpisani 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,0x00,0xfc, 0x00,0x00,0x00 , 0x00,0x00,0x78,0x7f, 0xff, 0xc0,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, 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, 0xf0,0x03,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,0x01,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,0x00,0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,0x00,0x07,0xff, 0xff, 0xf9,0xff, 0xd8, 0x00,0x00,0x00,0x3f, 0xff, 0xf0,0x0f, 0x00,0x00,0x00,0x00,0x1f, 0x1f, 0xf0,0x00,0x00,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, 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,0x1f, 0xff, 0x00,0x00,0x00,0x00,0x00,0x0f, 0xff, 0xff, 0xff, 0x00, 0x00,0x00,0x07,0xff, 0xff, 0xff, 0xff, 0xf0,0x00,0x00,0x0f, 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,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); // nacrtaj oblak gljiva void drawSkull () // pohranjivanje slike u EEPROM statički const nepotpisani znak 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,0x30,0x00,0x00,0xf0,0x00,0x00,0x00 , 0x00,0x78,0x00,0x07,0xf0,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,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,0x03,0xff, 0xc4,0x7f, 0xf0,0x00,0x00,0x00,0x03,0xff, 0xcc, 0x7f, 0xf0 , 0x00,0x00,0x00,0x03,0xff, 0xcc, 0x7f, 0xf0,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,0x64 , 0x00,0x1b, 0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; display.drawBitmap (0, 0, imSku, 60, 64, 1); // nacrtati oblak lubanje

Ako želite koristiti slike koje sam koristio, idite dalje i kopirajte kôd. Ako želite koristiti svoje vlastite slike koje ste prethodno stvorili, kopirajte bajt kod u polje imSku i imExp nizovi prema potrebi.

Evo kako ove slike izgledaju na zaslonu:

Najvažniji dio tog koda je ova linija:

statički const nepotpisani znak PROGMEM imSku []

Ovo govori Arduinu da pohranjuje vaše slike u EEPROM (što je EEPROM? Kako koristiti Arduino EEPROM za spremanje podataka između energetskih ciklusa Kako koristiti Arduino EEPROM za spremanje podataka između ciklusa napajanja Jeste li znali da Arduino može pohraniti podatke kada je isključen ? Govorim o EEPROM-u, zato mi se pridružite dok vam pokažem kako čitati i pisati na njemu.) Umjesto njegova RAM-a (brzi vodič za RAM. Brzi i prljavi vodič za RAM: Što trebate znati brzo i Prljavi vodič za RAM: Što trebate znati RAM je bitna komponenta svakog računala, ali može biti zbunjujuća. Raščlanjujemo ga na jednostavan način za shvatiti, razumjet ćete.). Razlog tome je jednostavan; Arduino ima ograničenu RAM memoriju, a koristeći sve to za pohranu slika možda neće ostaviti preostali za izvršavanje vašeg koda

Izmijenite svoje glavno ako Izjava za prikaz ove nove grafike kada se pomakne jedna ili 20. Imajte na umu retke koda da biste prikazali i broj zajedno sa slikama:

if (roll == 20) drawExplosion (); prikaz.setCursor (80, 21); display.println ( "20");  else if (roll == 1) display.setCursor (24, 21); display.println ( "1"); drawSkull ();  else if (roll) < 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 evo kako izgledaju ti novi rolni:

To je sve za šifru (idite na kod GitHub-a ako ste sve to preskočili). To možete lako izmijeniti u obliku D12, D8 itd.

Završna skupština

Sad kad je sve ostalo završeno, vrijeme je da sve sredimo. Pričvrstite zaslon, pri tome pazite da vijke ne pritegnete previše. Ovo je vjerojatno najteži dio. Razbio sam zaslon radeći to, tako da možda želite koristiti neke plastične podloške. Izrezao sam nekoliko kvadrata od plastike:

Male matice i vijci mogu se teško spojiti. Savjet: Koristite mali komad Blu-Tacka na kraju odvijača da biste prvo postavili matice:

Privijte gumb, spojite bateriju i zatvorite poklopac. Pazite da ne zakačite žice ili ih preglasno povežete, što bi moglo uzrokovati kratki spoj. Ovisno o duljini stražnjih vodiča, možda ćete trebati zaštititi izložene priključke nekom izolacijom (serijska kutija dobro radi):

Evo kako to izgleda iznutra:

I evo gotovog proizvoda:

Sada biste trebali biti ponosni vlasnik elektroničkog D20!

Koje ste izmjene napravili? Jeste li promijenili slike? Javite nam u komentarima, voljeli bismo vidjeti što ste napravili!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.