Sukitės stilingai su šiuo „pasidaryk pats“ elektroniniu D20 štampu

Sukitės stilingai su šiuo „pasidaryk pats“ elektroniniu D20 štampu

Norite kažko šiek tiek unikalaus kitam vaidmenų žaidimui ant stalo? O kaip elektroninis D20 su pasirinktine grafika kritiniams smūgiams ir praleidimams? Šiandien aš jums parodysiu, kaip sukurti savo naudojant „Arduino“ ir keletą paprastų dalių.





Nesijaudinkite, jei niekada anksčiau nenaudojote „Arduino“, mes turime pradžios vadovas .





Sukurkite planą

Tai paprastas projektas. „Arduino“ vairuos OLED ekraną, o mygtukas sukurs kauliuką. Pasirinktinė grafika bus rodoma kritiniams smūgiams ar kritiniams praleidimams. Galite lengvai pakeisti kodą į D8, D10 arba D12.





Ko tau reikia

  • 1 x „Arduino“
  • 1 x 0,96 colio I2C OLED ekranas
  • 1 x mygtukas
  • 1 x 10 tūkst. Rezistorius
  • 1 x duonos lenta
  • Įvairūs sujungimo laidai
  • Visą kodą rasite čia, jei nenorite vadovautis rašytinėmis instrukcijomis.

Tai yra pagrindinės dalys, kurių jums reikia norint sukurti savo D20. Galbūt norėsite jį įdiegti į dėklą (aptartą toliau) ir lituoti grandinę į pastovesnę būseną. Norėdami tai padaryti, jums reikės papildomų dalių:

Šie OLED ekranai yra labai šaunūs. Paprastai juos galima įsigyti baltos, mėlynos, geltonos arba šių trijų mišinių. Aš nusipirkau vieną mėlyną, kad atitiktų mano atvejį. Įsitikinkite, kad gausite I2C vietoj modelio SPI .



Tiks beveik bet kuris „Arduino“. Aš pasirinkau „Nano“, nes jie yra pakankamai maži, kad tilptų į dėklą. Daugiau informacijos apie „Arduino“ modelius rasite mūsų pirkimo vadove.

Circuit

Štai jums reikalinga grandinė:





Prisijungti VCC ir GND OLED ekrane į „Arduino“ +5V ir žemės . Prisijungti analogas 4 ant „Arduino“ prie kaiščio, pažymėto SDA . Prisijungti analogas 5 į SCL smeigtukas. Šiuose kaiščiuose yra grandinė, reikalinga ekranui valdyti naudojant I2C magistralę. Tikslūs kaiščiai skirsis priklausomai nuo modelio, tačiau A4 ir A5 naudojami „Nano“ ir „Uno“. Patikrink Laidinės bibliotekos dokumentacija jūsų modeliui, jei nenaudojate „Uno“ ar „Nano“.

Prijunkite akumuliatorių prie žemės ir VYNAS smeigtukas. Tai reiškia įtampą ir priima įvairias nuolatinės srovės įtampas, tačiau pirmiausia patikrinkite savo konkretų modelį ir kartais jis gali šiek tiek skirtis.





Prijunkite mygtuką prie skaitmeninis kaištis 2 . Atkreipkite dėmesį, kaip 10 tūkst. rezistorius prijungtas prie žemės. Tai labai svarbu! Tai žinoma kaip nusileidimo rezistorius ir neleidžia „Arduino“ aptikti klaidingų duomenų ar trukdžių paspaudus mygtuką. Tai taip pat padeda apsaugoti plokštę. Jei šis rezistorius nebūtų naudojamas, +5 V eitų tiesiai į žemę. Tai žinoma kaip a miręs trumpas ir yra paprastas būdas nužudyti Arduino.

Jei lituojate šią grandinę, apsaugokite jungtis termiškai susitraukiančiais vamzdeliais:

Įsitikinkite, kad jo per daug nešildote, ir tai darykite tik įsitikinę, kad grandinė veikia. Taip pat galite susukti kabelius į poras. Taip jie būna tvarkingi ir padeda apsisaugoti nuo nereikalingo streso:

Mygtuko testas

Dabar, kai sukūrėte grandinę, įkelkite šį bandymo kodą (būtinai pasirinkite tinkamą plokštę ir prievadą iš Įrankiai> Lenta ir Įrankiai> Uostas meniu):

const int buttonPin = 2; // the number of the button pin
void setup() {
pinMode(buttonPin, INPUT); // setup button
Serial.begin(9600); // setup serial
}
void loop(){
if(digitalRead(buttonPin) == HIGH) {
Serial.print('It Works');
delay(250);
}
}

Įkėlę palaikykite „Arduino“ prijungtą per USB ir atidarykite nuoseklųjį monitorių ( Viršuje dešinėje> Serijinis monitorius ). Turėtumėte pamatyti žodžius Tai veikia pasirodo kiekvieną kartą paspaudus mygtuką.

Jei nieko neįvyks, eikite ir dar kartą patikrinkite savo grandinę.

OLED sąranka

Norėdami valdyti ekraną, turite įdiegti dvi bibliotekas. Atsisiųskite Adafruit_SSD1306 ir „Adafruit-GFX“ [daugiau nebereikia] bibliotekų iš „Github“ ir išsaugokite jas savo bibliotekos aplanke. Jei nesate tikri, kur yra bibliotekos aplankai, perskaitykite mano retro žaidimų vadovėlį, kuriame išsamiau sukonfigūravau tą patį ekraną.

Iš naujo paleiskite „Arduino IDE“ ir įkelkite bandomąjį eskizą iš Failas> Pavyzdžiai Meniu. Pasirinkite „Adafruit“ SSD 1306 ir tada ssd1306_128x64_i2c . Įkelkite šį kodą (tai užtruks šiek tiek laiko) ir ekrane turėtumėte pamatyti daugybę formų ir raštų:

Jei nieko neatsitiks, dar kartą patikrinkite savo ryšius. Jei patikrinus jis vis tiek neveiks, turėsite pakeisti pavyzdinį kodą.

„Windows 10“ įstrigo iš naujo paleidimo ciklo

Pakeiskite šią eilutę ( sąranka funkcija):

display.begin(SSD1306_SWITCHCAPVCC, 0x3D);

Šiam:

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

Tai nurodo konkrečią bibliotekos informaciją apie jūsų naudojamą ekraną. Dabar turėtumėte būti pasirengę tęsti kūrimą.

Byla

Jei kuriate tai ant duonos lentos arba nenorite jos supakuoti, galite praleisti šį veiksmą.

Aš suprojektavau ir 3D atspausdinau šią dėžutę. Įjunkite failus Thingiverse . Nesijaudinkite, jei neturite 3D spausdintuvo - internetinės paslaugos 3D koncentratoriai ir Formos teikti spausdinimo internetu paslaugas.

Šią dėžę galite lengvai pagaminti iš medžio arba nusipirkę plastiko projekto dėžutė .

Dangtelis yra paprastas stumdomas dizainas ir jame yra keletas aparatūros išpjovų:

Kodas

Dabar, kai viskas paruošta, atėjo laikas kodui. Štai kaip tai veiks Pseudokodas :

if button is pressed
generate random number
if random number is 20
show graphic
else if random number is 1
show graphic
else
show number

Kad tai tinkamai veiktų, reikia sugeneruoti atsitiktinį skaičių - tai yra kauliuko ritinys. „Arduino“ turi atsitiktinių skaičių generatorių atsitiktinis , bet nereikėtų jo naudoti. Nors jis yra pakankamai geras pagrindinėms atsitiktinėms užduotims, jis nėra pakankamai atsitiktinis elektroniniam mirimui. Priežastys yra šiek tiek sudėtingos, tačiau jei norite, galite perskaityti daugiau boallen.com .

Atsisiųskite TrueRandom biblioteka pagal sirleech „Github“. Įtraukite jį į savo bibliotekos aplanką ir paleiskite IDE iš naujo.

Dabar sukurkite naują failą ir nustatykite pradinį kodą (arba tiesiog paimkite gatavą kodą iš „GitHub“):

#include
#include
#include
#include
#include
Adafruit_SSD1306 display(4);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // setup the OLED
pinMode(buttonPin, INPUT); // setup button
}
void loop() {

}

Šis kodas sukonfigūruoja OLED ir apima visas bibliotekas, reikalingas bendravimui su juo, taip pat naują atsitiktinių skaičių biblioteką. Dabar pridėkite tai prie pagrindinės kilpos:

if(digitalRead(buttonPin) == HIGH) {
delay(15);
if(digitalRead(buttonPin) == HIGH) {
display.fillScreen(BLACK); // erase the whole display
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(0, 0);
display.println(TrueRandom.random(1, 21)); // print random number
display.display(); // write to display
delay(100);
}
}

Šiuo metu tai yra gana paprasta, tačiau tai yra veikiantis D20. Kai tik paspaudžiamas mygtukas, ekrane rodomas atsitiktinis skaičius nuo vieno iki 20:

Tai veikia gerai, bet šiek tiek nuobodu. Padarykime tai geriau. Sukurkite du naujus metodus, drawDie ir eraseDie :

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

Jie ekrano viduryje nupieš kauliuką. Galbūt norėsite tai padaryti sudėtingiau, pavyzdžiui, nupiešdami D20, D12 ir pan., Tačiau paprasčiau nupiešti pagrindinį šešiakampį kauliuką. Štai pagrindinis naudojimas:

drawDie();

Tada pakeiskite pagrindinę kilpą, kad nupieštumėte atsitiktinį skaičių, tik didesnį ir viduryje. Pakeiskite teksto dydį ir žymeklį į šį:

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

Dabar atrodo daug geriau:

Vienintelė problema yra skaičiai, didesni nei devyni:

Ištaisymas yra paprastas. Visi skaičiai, mažesni nei 10, žymeklį nustatys į kitą vietą nei tie 10 ar didesni. Pakeiskite šią eilutę:

kaip rasti administratoriaus slaptažodį
display.setCursor(57, 21);

Su šiuo:

int roll = TrueRandom.random(1, 21); // store the random number
if (roll <10) {
// single character number
display.setCursor(57, 21);
}
else {
// dual character number
display.setCursor(47, 21);
}

Štai kaip tai atrodo dabar:

Dabar belieka tik vaizdai, kai pataikote kritinį smūgį ar praleidžiate. Yra keletas žingsnių, tačiau tai yra pakankamai paprastas procesas.

Raskite tinkamą vaizdą, kurį norite naudoti (kuo paprastesnis, tuo geriau, nes ekranas yra tik vienspalvis). Štai mano naudojami vaizdai:

Vaizdo kreditas: publicdomainvectors.org

Bet kokį norimą naudoti vaizdą reikės konvertuoti į HEX masyvą. Tai vaizdo atvaizdas kodo pavidalu. Tam yra daug įrankių, o kai kurie yra parašyti specialiai OLED ekranams. Lengviausias būdas yra naudoti PicturetoC_Hex internetinis įrankis. Štai reikalingi nustatymai:

kur yra „MacBook Air“ mikrofonas

Įkelkite vaizdą ir nustatykite kodo formatą HEX: 0x . Nustatyti Naudojama į Juoda/balta visoms piešimo funkcijoms . Visas kitas parinktis palikite numatytosiomis. Jei reikia, čia galite pakeisti vaizdo dydį. Paspauskite Gaukite C eilutę ir turėtumėte pamatyti rodomus vaizdo duomenis:

Šių sugeneruotų duomenų jums prireiks per minutę. Sukurkite dvi funkcijas, vadinamas drawExplosion ir drawSkull (arba tinkamas jūsų versijos pavadinimas). Štai kodas:

void drawExplosion() {
// store image in EEPROM
static const unsigned 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); // draw mushroom cloud
}
void drawSkull() {
// store image in EEPROM
static const unsigned char 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); // draw skull cloud
}

Jei norite naudoti mano naudojamus vaizdus, ​​eikite į priekį ir nukopijuokite kodą. Jei norite naudoti savo sukurtus vaizdus, ​​nukopijuokite baitų kodą į imSku ir imExp masyvus pagal poreikį.

Štai kaip tie vaizdai atrodo ekrane:

Svarbiausia šio kodo dalis yra ši eilutė:

static const unsigned char PROGMEM imSku[]

Tai nurodo „Arduino“ saugoti jūsų vaizdus EEPROM ( kas yra EEPROM? ), o ne RAM ( greitas RAM vadovas ). To priežastis paprasta; „Arduino“ turi ribotą operatyviąją atmintį, ir visa tai panaudojus vaizdams saugoti gali nebelikti likučių, kad jūsų kodas galėtų įvykdyti

Pakeiskite pagrindinį jei teiginį, kad būtų parodyta ši nauja grafika, kai bus suvyniotas vienas ar 20. Atkreipkite dėmesį į kodo eilutes, kad kartu su vaizdais būtų rodomas skaičius:

if(roll == 20) {
drawExplosion();
display.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
}

Štai kaip atrodo šie nauji ritinėliai:

Tai viskas kodo pusėje (eikite ir paimkite kodą iš „GitHub“, jei visa tai praleidote). Galite lengvai pakeisti tai į D12, D8 ir pan.

Galutinis surinkimas

Dabar, kai visa kita baigta, laikas viską supakuoti. Užveržkite ekraną, įsitikinkite, kad per daug nesiveržiate varžtų. Tai turbūt sunkiausia dalis. Tai darydamas sulaužiau ekraną, todėl galbūt norėsite naudoti plastikines poveržles. Iškirpau keletą kvadratų Plastikinė kortelė :

Mažas veržles ir varžtus gali būti sunku prijungti. Patarimas: Naudokite nedidelį „Blu-Tack“ gabalėlį ant atsuktuvo galo, kad iš pradžių pritvirtintumėte veržles:

Prisukite mygtuką, prijunkite akumuliatorių ir uždarykite dangtį. Būkite atsargūs, kad neužstrigtumėte jokių laidų ir nesusietumėte jų per stipriai, galbūt sukeldami trumpąjį jungimą. Priklausomai nuo galinių laidų ilgio, gali tekti apsaugoti neapsaugotas jungtis tam tikra izoliacija (nuosekli dėžutė gerai veikia):

Štai kaip jis atrodo viduje:

O štai gatavas produktas:

Dabar turėtumėte būti išdidus elektroninio D20 savininkas!

Kokius pakeitimus atlikote? Ar pakeitėte vaizdus? Praneškite mums komentaruose, norėtume pamatyti, ką padarėte!

Dalintis Dalintis „Tweet“ Paštu Kalbos animacijos vadovas pradedantiesiems

Kalbos animacija gali būti iššūkis. Jei būsite pasirengę pradėti dialogą prie savo projekto, mes suskaidysime procesą už jus.

Skaityti toliau
Susijusios temos
  • Pasidaryk pats
  • Arduino
  • Stalo žaidimas
  • Elektronika
Apie autorių Joe Coburn(Paskelbti 136 straipsniai)

Joe yra baigęs informatikos studijas Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai neskraido bepiločiais orlaiviais ir nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.

Daugiau iš Joe Coburn

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia