Bu DIY Elektronik D20 Die ile Stil Rulo

  • William Charles
  • 0
  • 2693
  • 26
reklâm

Bir sonraki masa üstü rol yapma oyununuz için benzersiz bir şey mi istiyorsunuz? Kritik isabetler ve ıskalar için özel grafikleri olan elektronik bir D20'ye ne dersiniz? Bugün size bir Arduino ve birkaç basit parça ile nasıl kendinizinkini kuracağınızı göstereceğim..

Daha önce hiç Arduino kullanmadıysanız endişelenmeyin, artık bir başlangıç ​​kılavuzumuz var Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino, esnek, kolay temelli, açık kaynaklı bir elektronik prototip platformudur. donanım ve yazılımı kullanmak. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar yaratmak isteyen herkes için hazırlanmıştır.. .

Plan Oluştur

Bu basit bir proje. Bir Arduino bir OLED ekrana sahip olacak ve bir düğme kalıbı yuvarlayacak. Özel grafikler, kritik isabet veya kritik hatalı dönüşler için gösterilecektir. Kodu kolayca D8, D10 veya D12 olarak değiştirebilirsiniz..

Neye ihtiyacın var

  • 1 x Arduino
  • 1 x 0.96 "I2C OLED ekran
  • 1 x Basma Düğmesi
  • 1 x 10k? rezistans
  • 1 x Breadboard
  • Çeşitli kanca teller
  • Yazılı talimatlarla tüm yolu takip etmek istemiyorsanız tam kod burada.

Bunlar kendi D20'nizi oluşturmak için ihtiyacınız olan temel parçalardır. Bir kasaya monte etmek isteyebilirsiniz (aşağıda tartışılmıştır) ve devreyi daha kalıcı bir duruma lehimlemek isteyebilirsiniz. İşte yapmanız gereken ek parçalar:

  • 4 x M2 x 10mm (0,4 inç) cıvatalar
  • 4 x M2 fındık
  • 4 x 7mm (0,28 inç) rondelalar
  • 9V akü (veya uygun alternatif)
  • Çeşitli ısıyla daralan makaron

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

Hemen hemen her Arduino uygun olacaktır. Davaya sığacak kadar küçük oldukları için bir Nano seçtim. Satın alma rehberimizi inceleyin Arduino Satın Alma Rehberi: Hangi Kurulu Almalı? Arduino Satın Alma Rehberi: Hangi Kurulu Almalısınız? Dışarıda pek çok farklı Arduino tahtası var, kafanız karıştığı için affedilirsiniz. Projeniz için hangisini satın almalısınız? Bu Arduino satın alma rehberi ile yardım edelim! Arduino modelleri hakkında daha fazla bilgi için.

Devre

İşte ihtiyacınız olan devre:

bağlamak VCC ve GND Arduino için OLED ekranda +5V ve zemin. bağlamak analog 4 Arduino'da etiketli pime SDA. bağlamak analog 5 -e SCL toplu iğne. Bu pinler, I2C veriyolunu kullanarak ekranı çalıştırmak için gereken devreyi içerir. Kesin pimler modele göre değişir, ancak Nano ve Uno'da A4 ve A5 kullanılır. Uno veya Nano kullanmıyorsanız, modeliniz için Wire kitaplığının belgelerine bakın..

Bataryayı toprağa ve VIN toplu iğne. Bu, voltaj girişi anlamına gelir ve çeşitli farklı DC voltajları kabul eder - ancak önce kendi modelinizi kontrol edin;.

Düğmesini dijital pin 2. 10 bin nasıl? direnç toprağa bağlı. Bu çok önemli! Bu bir aşağı çekme direnci olarak bilinir ve Arduino'nun sahte veri veya bir düğmeye basılmasıyla parazit algılamasını önler. Ayrıca tahtanın korunmasına da hizmet eder. Bu direnç kullanılmazsa, + 5V doğrudan toprağa gider. Bu bir çok 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ıtmamaya dikkat edin ve bunu yalnızca devrenin çalıştığından emin olduğunuzda yapın. Kablolarınızı çiftler halinde bükmek de isteyebilirsiniz. Bu onları düzenli tutar ve aşırı strese karşı korumalarına yardımcı olur:

Düğme Testi

Şimdi devreyi kurduğunuza göre, bu test kodunu yükleyin (doğru pano ve bağlantı noktasını seçtiğinizden emin olun). Araçlar> Yönetim Kurulu ve Araçlar> Liman menüler):

const int buttonPin = 2; // düğme pininin sayısı void setup () pinMode (buttonPin, INPUT); // kurulum butonu Serial.begin (9600); // seri kurulum void loop () if (digitalRead (buttonPin) == HIGH) Serial.print ("Çalışır"); gecikmesi (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üğmeye her bastığınızda belirir.

Hiçbir şey olmazsa, git ve devreni iki kez kontrol et.

OLED Kurulumu

Ekranı sürmek için iki kitaplık yüklemeniz gerekir. Adafruit_SSD1306 ve Adafruit-GFX [Artık Kullanılmıyor] kitaplıklarını Github'dan indirin ve onları kütüphane klasörünüze kaydedin. Kütüphane klasörlerinin nerede olduğundan emin değilseniz, retro oyun derslerimi okuyun Arduino Retro Oyun bir OLED Ekranlı Arduino Retro Oyun bir OLED Ekranlı Kendi retro oyunlarınızı yazmak için ne kadar iş gerektiğini merak ettiniz mi? Pong, Arduino'yu kodlamak için ne kadar kolay? bu aynı ekranı daha ayrıntılı olarak yapılandırdığım yer.

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

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

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

display.begin (SSD1306_SWITCHCAPVCC, 0x3D);

Buna:

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

Bu, kütüphaneye, kullandığınız ekranla ilgili belirli ayrıntıları söyler. Şimdi hepiniz derlemeye devam etmek için ayarlanmış olmalısınız.

Dosya

Bunu bir breadboard üzerine inşa ediyorsanız veya kutuya koymak istemiyorsanız, bu adımı atlayabilirsiniz.

Bu kutuyu tasarladım ve 3D yazdırdım. Dosyaları Thingiverse'de bul. 3D yazıcınız yoksa endişelenmeyin - çevrimiçi hizmetler 3D Hub ve Shapeway'ler çevrimiçi baskı hizmetleri sunar.

Bu kutuyu ahşaptan kolayca yapabilir veya plastik bir proje kutusu satın alarak.

Kapak basit bir itme tasarımına sahiptir ve donanım için birkaç kesme içerir:

Kod

Şimdi her şey hazır olduğuna göre, kod zamanı. İşte Pseudocode'da nasıl çalışacağı:

Eğer düğmeye basılırsa, rastgele sayı 20 ise rasgele sayı üretilirse, rastgele sayı 1 ise grafiği göster, başka bir sayı göster

Bunun düzgün çalışması için rastgele bir sayının üretilmesi gerekir - bu, kalıp rulosudur. Arduino adlı rastgele bir sayı üreteci var rasgele, ama kullanmamalıyım. Temel rastgele görevler için yeterince iyi olmasına rağmen, elektronik bir kalıp için yeterince rastgele değildir. Neden biraz karmaşık, ama boallen.com ile ilgileniyorsanız yapabilirsiniz..

TrueRandom kütüphanesini Github'daki sirleech'ten indirin. Bunu kitaplık klasörünüze ekleyin ve IDE'yi yeniden başlatın.

Şimdi yeni bir dosya oluşturun ve başlangıç ​​kodunuzu ayarlayın (veya sadece bitmiş kodu GitHub'dan alın):

#include #include #include #include #include Adafruit_SSD1306 görüntüleme (4); geçersiz kurulum () display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // OLED pinMode'u (buttonPin, INPUT) ayarlayın; // kurulum düğmesi void loop () 

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

if (digitalRead (buttonPin) == HIGH) gecikme (15); if (digitalRead (buttonPin) == HIGH) display.fillScreen (BLACK); // tüm ekranı siliniz display.setTextColor (WHITE); display.setTextSize (2); display.setCursor (0, 0); display.println (TrueRandom.random (1, 21)); // rastgele sayıyı yazdırmak display.display (); // Gecikmeyi görüntülemek için yaz (100); 

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

Bu iyi çalışıyor, ama biraz sıkıcı. Daha iyi yapalım. İki yeni yöntem oluşturun, drawDie ve eraseDie:

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

Bunlar ekranın ortasına bir kalıp çekecektir. Bunu belki de bir D20 veya D12 çizerek daha karmaşık hale getirmek isteyebilirsiniz, ancak temel altı taraflı kalıbı çizmek daha kolaydır. İşte temel kullanım:

drawDie ();

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

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

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

Tek sorun dokuzdan büyük sayılarla ilgilidir:

Bunun için düzeltme basittir. 10'dan küçük sayılar imlecin 10 veya daha büyük sayılardan farklı bir konuma ayarlanmış olmasını sağlar. Bu satırı değiştir:

display.setCursor (57, 21);

Bununla:

int roll = TrueRandom.random (1, 21); // rastgele sayıyı saklayın if (roll < 10)  // single character number display.setCursor(57, 21);  else  // dual character number display.setCursor(47, 21); 

İşte şimdi neye benziyor:

Şimdi geriye kalan tek şey, kritik bir vuruş yaptığınız veya özlediğiniz görüntüler içindir. Dahil olan birkaç adım var, ancak bu yeterince basit bir işlem.

Kullanmak istediğiniz uygun bir görüntü bulun (ekran yalnızca tek renk olduğundan daha kolay). İşte kullandığım görüntüler:

Resim Kredisi: publicdomainvectors.org

Kullanmak istediğiniz herhangi bir görüntünün bir HEX dizisine dönüştürülmesi gerekir. Bu, görüntünün kod biçiminde gösterimidir. Bunu yapmak için pek çok araç vardır ve bazıları özellikle OLED ekranları için yazılmıştır. En kolay yol, PicturetoC_Hex çevrimiçi aracını kullanmaktır. İşte gerekli ayarlar:

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

Bu üretilen verilere bir dakika içinde ihtiyacınız olacak. Adı verilen iki işlev oluşturun. drawExplosion ve drawSkull (veya sürümünüz için uygun bir isim). İşte kod:

void drawExplosion () // görüntüyü EEPROM statik const imzasız karakterinde sakla 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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00; display.drawBitmap (0, 0, imExp, 64, 62, 1); // mantar bulutu çizin void drawSkull () // görüntüyü EEPROM statik yapısında saklayın imzasız karakter 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); // kafatası bulutunu çiz

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 SANÜS gerektiği gibi diziler.

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

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

statik const imzasız karakter PROGMEM imSku []

Bu Arduino'ya resimlerinizi EEPROM'a kaydetmesini söyler (EEPROM nedir? Arduino EEPROM'u Güç Döngülerinde Veri Tasarrufu İçin Kullanma Arduino EEPROM'u Güç Döngülerinde Veri Tasarrufu İçin Kullanma Arduino EEPROM'u Güç Döngülerinde Veri Tasarrufu İçin Kullanma EEPROM'dan bahsediyorum, bu yüzden bana katılmak için nasıl okunacağını ve yazacağımı gösterdiğim için bana katılın.) RAM'in yerine (RAM'in hızlı rehberi RAM'in Hızlı ve Kirli Rehberi: Hızlı ve Bilmeniz Gerekenler RAM'in Kirli Rehberi: Bilmeniz Gerekenler RAM, her bilgisayarın çok önemli bir bileşenidir, ancak kafa karıştırıcı olabilir. Anlamanız gereken kolay anlaşılır terimlerle parçalara ayırabiliriz.). Bunun nedeni basittir; Arduino'da RAM sınırlıdır ve görüntüleri saklamak için hepsini kullanmak, kodunuzun çalışması için hiçbir şey bırakmayabilir

Ana sayfanızı değiştirin Eğer Biri veya 20'si alındığında bu yeni grafikleri gösterme ifadesi. Resimlerin yanında yuvarlanan numarayı göstermek için kod satırlarına dikkat edin:

if (roll == 20) drawExplosion (); display.setCursor (80, 21); display.println ( "20");  else eğer (roll == 1) display.setCursor (24, 21); display.println ( "1"); drawSkull ();  else eğer (rulo < 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 neye benziyor:

Kod tarafı için hepsi bu (hepsini atladıysanız GitHub'dan kodu alın). Bunu kolayca bir D12, D8, vb. Olarak değiştirebilirsiniz..

Son montaj

Şimdi her şey bitti, şimdi her şeyi toparlamanın zamanı geldi. Cıvataları fazla sıkmamaya dikkat ederek ekranı sıkın. Bu muhtemelen en zor kısımdır. Bunu yaparken bir ekranı kırdım, bu yüzden bazı plastik yıkayıcılar kullanmak isteyebilirsiniz. Plasticard'dan bazı kareler çıkardım:

Küçük somun ve civata bağlamak için zor olabilir. Bahşiş: Somunları ilk oturtmak için tornavidanın ucunda küçük bir Blu-Tack parçası kullanın:

Düğmeyi vidalayın, pili bağlayın ve kapağı kapatın. Kabloları sıkıştırmamaya veya kabloları çok sıkı sarmamaya dikkat edin, muhtemelen kısa devre yapabilir. İzleyen uçlarınızın uzunluğuna bağlı olarak, açık bağlantıları bazı yalıtımlarla korumanız gerekebilir (bir seri kutu iyi çalışır):

İşte içinde göründüğü gibi:

Ve işte bitmiş ürün:

Şimdi bir elektronik D20'nin gururlu sahibi olmalısınız!

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




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.