Bu DIY Elektronik D20 Kalıp ile Tarzda Yuvarlayın

Bu DIY Elektronik D20 Kalıp ile Tarzda Yuvarlayın

Bir sonraki masa üstü rol yapma oyununuz için biraz benzersiz bir şey ister misiniz? Kritik vuruşlar ve ıskalamalar için özel grafiklere sahip bir elektronik D20'ye ne dersiniz? Bugün size bir Arduino ve birkaç basit parça ile kendinizinkini nasıl oluşturacağınızı göstereceğim.





Daha önce hiç Arduino kullanmadıysanız endişelenmeyin. başlangıç ​​kılavuzu .





Yapı Planı

Bu basit bir proje. Bir Arduino, bir OLED ekranı çalıştıracak ve bir düğme kalıbı yuvarlayacaktır. Kritik vuruşlar veya kritik vuruşlar için özel grafikler gösterilecektir. Kodu kolayca D8, D10 veya D12 olacak şekilde değiştirebilirsiniz.





Neye ihtiyacın var

  • 1 adet Arduino
  • 1x0,96' I2C OLED ekran
  • 1 x Basma Düğmesi
  • 1x10k? direnç
  • 1 x Ekmek Tahtası
  • çeşitli bağlama telleri
  • Yazılı talimatları sonuna kadar takip etmek istemiyorsanız, kodun tamamı burada.

Kendi D20'nizi oluşturmak için ihtiyacınız olan temel parçalar bunlardır. Bunu bir kasaya kurmak (aşağıda tartışılmaktadır) ve devreyi daha kalıcı bir duruma lehimlemek isteyebilirsiniz. Bunu yapmak için ihtiyacınız olacak ek parçalar şunlardır:

Bu OLED ekranlar çok havalı. Genellikle beyaz, mavi, sarı veya üçünün bir karışımı olarak satın alınabilirler. Davama uyması için mavi bir tane satın aldım. bir aldığınızdan emin olun I2C yerine model SPI .



Hemen hemen her Arduino uygun olacaktır. Kasaya sığacak kadar küçük oldukları için bir Nano seçtim. Arduino modelleri hakkında daha fazla bilgi için satın alma kılavuzumuza göz atın.

Devre

İşte ihtiyacınız olan devre:





Bağlamak VCC ve GND OLED ekranında Arduino'ya +5V ve zemin . Bağlamak analog 4 Arduino'da etiketli pime SDA . Bağlamak analog 5 için SCL toplu iğne. Bu pinler, ekranı I2C veri yolunu kullanarak sürmek için gereken devreyi içerir. Tam pinler modele göre değişir, ancak Nano ve Uno'da A4 ve A5 kullanılır. kontrol edin Tel kitaplık belgeleri Uno veya Nano kullanmıyorsanız modeliniz için.

Pili toprağa bağlayın ve ŞARAP toplu iğne. Bu, giriş voltajı anlamına gelir ve çeşitli farklı DC voltajlarını kabul eder - ancak önce kendi modelinizi kontrol edin ve bazen biraz değişebilir.





Düğmeyi şuraya bağlayın: dijital pin 2 . 10k nasıl dikkat edin? direnç toprağa bağlanır. Bu çok önemli! Bu, aşağı çekme direnci olarak bilinir ve Arduino'nun bir düğmeye basıldığında sahte verileri veya parazitleri algılamasını önler. Aynı zamanda tahtanın korunmasına da hizmet eder. Bu direnç kullanılmasaydı, +5V doğrudan toprağa giderdi. Bu bir olarak bilinir ölü kısa ve bir Arduino'yu öldürmenin kolay bir yoludur.

Bu devreyi lehimliyorsanız, bağlantılarınızı ısıyla daralan makaronla koruyun:

Çok fazla ısıtmadığınızdan emin olun ve bunu yalnızca devrenin çalıştığından emin olduktan sonra yapın. Ayrıca kablolarınızı çiftler halinde bükmek isteyebilirsiniz. Bu onları temiz tutar ve aşırı stresten korumaya yardımcı olur:

Düğme Testi

Devreyi kurduğunuza göre, bu test kodunu yükleyin (doğru kartı ve bağlantı noktasını seçtiğinizden emin olun). Araçlar > Pano ve Araçlar > Bağlantı Noktası menüler):

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);
}
}

Yüklendikten sonra Arduino'yu USB üzerinden bağlı tutun ve seri monitörü açın ( Sağ Üst > Seri Monitör ). kelimeleri görmelisin İşe yarıyor düğmesine her bastığınızda görünür.

Hiçbir şey olmazsa, gidin ve devrenizi iki kez kontrol edin.

OLED Kurulumu

Ekranı sürmek için iki kitaplık kurmanız gerekir. İndir Adafruit_SSD1306 ve Github'dan Adafruit-GFX [Artık Kullanılamaz] kitaplıklarını bulun ve bunları kitaplık klasörünüze kaydedin. Kitaplık klasörlerinizin nerede olduğundan emin değilseniz, bu aynı ekranı daha ayrıntılı olarak yapılandırdığım retro oyun öğreticimi okuyun.

Arduino IDE'nizi yeniden başlatın ve Dosya > Örnekler Menü. Seçme Adafruit SSD1306 ve daha sonra ssd1306_128x64_i2c . Bu kodu yükleyin (biraz zaman alacaktır) ve ekranda birçok şekil ve desen görmelisiniz:

Hiçbir şey olmazsa, bağlantılarınızı iki kez kontrol edin. Kontrol ettikten sonra hala çalışmıyorsa, örnek kodu değiştirmeniz gerekecektir.

photoshop'ta metne doku nasıl eklenir

Bu satırı değiştirin (başlangıçta kurmak işlev):

display.begin(SSD1306_SWITCHCAPVCC, 0x3D);

Buna:

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

Bu, kullandığınız ekranla ilgili kitaplığa özel ayrıntıları bildirir. Şimdi, derlemeye devam etmeye hazır olmalısınız.

Dosya

Bunu bir breadboard üzerinde yapıyorsanız veya kutuya koymak istemiyorsanız, bu adımı atlayabilirsiniz.

Bu kutuyu tasarladım ve 3D yazdırdım. dosyaları al Thingiverse . 3D yazıcınız yoksa endişelenmeyin -- çevrimiçi hizmetler 3D Hub'lar ve şekiller çevrimiçi baskı hizmetleri sağlamak.

Bu kutuyu tahtadan veya plastik bir kutu satın alarak kolayca yapabilirsiniz. proje kutusu .

Kapak, basit bir itme tasarımıdır ve donanım için birkaç kesik içerir:

kod

Artık her şey hazır olduğuna göre kod zamanı. İşte nasıl çalışacak sözde kod :

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

Bunun düzgün çalışması için rasgele bir sayı üretilmesi gerekir - bu zarın yuvarlanmasıdır. Arduino adında rastgele bir sayı üretecine sahiptir. rastgele ama kullanmamalı. Temel rastgele görevler için yeterince iyi olsa da, elektronik bir kalıp için yeterince rastgele değil. Nedenleri biraz karmaşıktır, ancak ilgileniyorsanız daha fazlasını okuyabilirsiniz. boallen.com .

İndir TrueRandom tarafından kütüphane sirleech Github'da. Bunu kitaplık klasörünüze ekleyin ve IDE'yi yeniden başlatın.

Şimdi yeni bir dosya oluşturun ve ilk kodunuzu ayarlayın (veya bitmiş kodu GitHub'dan alın):

#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() {

}

Bu kod, OLED'i yapılandırır ve yeni rastgele sayı kitaplığınızla birlikte onunla iletişim kurmanız gereken tüm kitaplıkları içerir. Şimdi bunu ana döngüye ekleyin:

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);
}
}

Bu, şu anda oldukça basit, ancak çalışan bir D20. Düğmeye her basıldığında, ekranda 1 ile 20 arasında rastgele bir sayı gösterilir:

Bu iyi çalışıyor, ama biraz sıkıcı. Hadi daha iyi hale getirelim. İki yeni yöntem oluşturun, Beraberlik ve silmekÖlmek :

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

Bunlar ekranın ortasına bir kalıp çizecektir. Belki bir D20 veya D12 vb. çizerek bunu daha karmaşık hale getirmek isteyebilirsiniz, ancak temel altı kenarlı bir kalıp çizmek daha kolaydır. İşte temel kullanım:

drawDie();

Ardından, rastgele sayıyı, yalnızca daha büyük ve ortada çizmek için ana döngünüzü değiştirin. Metin boyutunu ve imleci şu şekilde değiştirin:

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

Şimdi çok daha iyi görünüyor:

Tek sorun, dokuzdan büyük sayılarla ilgili:

Bunun için düzeltme basittir. 10'dan küçük herhangi bir sayı, imleci 10 veya daha büyük sayılardan farklı bir konuma ayarlayacaktır. Bu satırı değiştirin:

xbox one denetleyicisi iki kez yanıp sönüyor ve kapanıyor
display.setCursor(57, 21);

Bununla:

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);
}

İşte şimdi neye benziyor:

Artık geriye kalan tek şey, kritik bir vuruş yaptığınızda veya ıskaladığınızda çekilen görüntüler. İlgili birkaç adım var, ancak bu yeterince basit bir süreç.

Kullanmak istediğiniz uygun bir resim bulun (ekran sadece tek renkli olduğundan ne kadar basitse o kadar iyidir). İşte kullandığım görseller:

Resim Kredisi: publicdomainvectors.org

Kullanmak istediğiniz herhangi bir görüntünün bir HEX dizisine dönüştürülmesi gerekecektir. Bu, görüntünün kod biçiminde bir temsilidir. Bunu yapmak için kullanılabilecek birçok araç vardır ve bazıları özellikle OLED ekranlar için yazılmıştır. En kolay yol, ResimdenC_Hex'e çevrimiçi araç. İşte gerekli ayarlar:

Windows 10 mikrofon sesi nasıl artırılır

Resminizi yükleyin ve kod biçimini HEX:0x . Ayarlamak İçin kullanılır ile Tüm resim çizme işlevi için Siyah/Beyaz . Diğer tüm seçenekleri varsayılan olarak bırakın. Gerekirse resmi buradan yeniden boyutlandırabilirsiniz. basmak C Dizesini Alın ve görüntü verilerinin göründüğünü görmelisiniz:

Oluşturulan bu verilere bir dakika içinde ihtiyacınız olacak. adlı iki işlev oluşturun çizmekPatlama ve çizmekKafatası (veya sürümünüze uygun bir ad). İşte kod:

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
}

Kullandığım görüntüleri kullanmak istiyorsanız, devam edin ve kodu kopyalayın. Daha önce oluşturduğunuz kendi resimlerinizi kullanmak istiyorsanız, bayt kodunu imSku ve imExp diziler gerektiği gibi.

İşte bu görüntüler ekranda nasıl görünüyor:

Bu kodun en önemli kısmı şu satırdır:

static const unsigned char PROGMEM imSku[]

Bu, Arduino'ya görüntülerinizi EEPROM'da saklamasını söyler ( EEPROM nedir? ) RAM'i yerine ( RAM için hızlı kılavuz ). Bunun nedeni basit; Arduino'nun sınırlı RAM'i vardır ve görüntüleri depolamak için hepsini kullanmak, kodunuzun yürütülmesi için herhangi bir kalıntı bırakmayabilir

Ana sayfanızı değiştirin Eğer bir veya 20 yuvarlandığında bu yeni grafikleri gösteren ifade. Resimlerin yanında yuvarlanan sayıyı göstermek için kod satırlarına da dikkat edin:

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
}

Ve işte bu yeni rulolar şöyle görünüyor:

Hepsi kod tarafı için (hepsini atladıysanız GitHub'dan kodu alın). Bunu kolayca D12, D8 vb. olacak şekilde değiştirebilirsiniz.

Son montaj

Artık her şey bittiğinde, her şeyi kutulama zamanı. Cıvataları aşırı sıkmamaya dikkat ederek ekranı cıvatalayın. Bu muhtemelen en zor kısımdır. Bunu yaparken bir ekranı kırdım, bu yüzden bazı plastik pullar kullanmak isteyebilirsiniz. bazı kareleri kestim plastik karton :

Küçük somun ve cıvataların bağlanması zor olabilir. Uç: Somunları başlangıçta yerleştirmek için bir tornavidanın ucunda küçük bir Blu-Tack parçası kullanın:

Düğmeyi vidalayın, pili bağlayın ve kapağı kapatın. Herhangi bir kabloyu sıkıştırmamaya veya kısa devre yapmasına neden olacak şekilde çok sıkı bağlamamaya dikkat edin. Sondaki kablolarınızın uzunluğuna bağlı olarak, açıkta kalan bağlantıları bir miktar yalıtımla korumanız gerekebilir (seri kutu iyi çalışır):

İşte içeride nasıl göründüğü:

Ve işte bitmiş ürün:

Artık bir elektronik D20'nin gururlu sahibi olmalısınız!

Hangi modifikasyonları yaptınız? Görüntüleri değiştirdin mi? Yorumlarda bize bildirin, ne yaptığınızı görmek isteriz!

Paylaş Paylaş Cıvıldamak E-posta Konuşmayı Canlandırmak İçin Yeni Başlayanlar Kılavuzu

Konuşmayı canlandırmak zor olabilir. Projenize diyalog eklemeye hazırsanız, süreci sizin için özetleyeceğiz.

Sonrakini Oku
İlgili konular
  • kendin yap
  • Arduino
  • Masa oyunu
  • Elektronik
Yazar hakkında Joe Coburn(136 Makale Yayınlandı)

Joe, İngiltere'deki Lincoln Üniversitesi'nden Bilgisayar Bilimleri mezunudur. Profesyonel bir yazılım geliştiricisi ve drone uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video çekerken bulunabilir.

Joe Coburn'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın