Rollen Sie stilvoll mit diesem elektronischen D20-Werkzeug zum Selbermachen

Rollen Sie stilvoll mit diesem elektronischen D20-Werkzeug zum Selbermachen

Möchten Sie etwas Einzigartiges für Ihr nächstes Tabletop-Rollenspiel? Wie wäre es mit einem elektronischen D20 mit benutzerdefinierter Grafik für kritische Treffer und Fehlschüsse? Heute zeige ich dir, wie du mit einem Arduino und ein paar einfachen Teilen dein eigenes bauen kannst.

Machen Sie sich keine Sorgen, wenn Sie noch nie einen Arduino verwendet haben, wir haben einen Erste Schritte .



Bauplan

Dies ist ein einfaches Projekt. Ein Arduino steuert ein OLED-Display und ein Knopf würfelt. Benutzerdefinierte Grafiken werden für kritische Treffer oder kritische Fehlwürfe angezeigt. Sie können den Code einfach in D8, D10 oder D12 ändern.



Was du brauchst

  • 1 x Arduino
  • 1 x 0,96 ' I2C-OLED-Display
  • 1 x Druckknopf
  • 1x 10.000 ? Widerstand
  • 1 x Steckbrett
  • Verschiedene Anschlussdrähte
  • Vollständiger Code hier, wenn Sie die schriftlichen Anweisungen nicht vollständig befolgen möchten.

Das sind die Kernteile, die Sie brauchen, um Ihren eigenen D20 zu bauen. Sie können es in ein Gehäuse einbauen (siehe unten) und den Schaltkreis in einen dauerhafteren Zustand verlöten. Hier sind die zusätzlichen Teile, die Sie dafür benötigen:

  • 4 x M2 x 10 mm (0,4 Zoll) Schrauben
  • 4 x M2 Muttern
  • 4 x 7 mm (0,28 Zoll) Unterlegscheiben
  • 9V Batterieschnapper (oder geeignete Alternative)
  • Verschiedene Schrumpfschläuche

Diese OLED-Displays sind sehr cool. Sie können normalerweise in Weiß, Blau, Gelb oder einer Mischung der drei gekauft werden. Ich habe einen in Blau gekauft, passend zu meinem Fall. Stellen Sie sicher, dass Sie eine I2C Modell statt SPI .



Fast jeder Arduino ist geeignet. Ich habe mich für einen Nano entschieden, da sie klein genug sind, um in das Gehäuse zu passen. Weitere Informationen zu Arduino-Modellen finden Sie in unserem Einkaufsführer.

Die Rennbahn

Hier ist die Schaltung, die Sie brauchen:

Verbinden VCC und Masse auf dem OLED-Display zum Arduino +5V und Boden . Verbinden analog 4 auf dem Arduino an den beschrifteten Pin SDA . Verbinden analog 5 zum SCL Stift. Diese Pins enthalten die Schaltung, die zum Ansteuern des Displays über den I2C-Bus erforderlich ist. Die genauen Pins variieren je nach Modell, aber beim Nano und Uno werden A4 und A5 verwendet. Überprüf den Dokumentation zur Drahtbibliothek für Ihr Modell, wenn Sie kein Uno oder Nano verwenden.



Verbinden Sie die Batterie mit Masse und die WEIN Stift. Dies steht für Spannung in und akzeptiert eine Vielzahl verschiedener Gleichspannungen - aber überprüfen Sie zuerst Ihr spezifisches Modell, und es kann manchmal leicht variieren.

Verbinden Sie die Schaltfläche mit digitaler Pin 2 . Beachten Sie, wie die 10k ? Widerstand ist mit Masse verbunden. Dies ist sehr wichtig! Dies wird als Pull-Down-Widerstand bezeichnet und verhindert, dass der Arduino falsche Daten oder Störungen als Knopfdruck erkennt. Es dient auch dem Schutz des Boards. Wenn dieser Widerstand nicht verwendet würde, würden +5 V direkt in Masse gehen. Dies ist bekannt als a tot kurz und ist eine einfache Möglichkeit, einen Arduino zu töten.

Wenn Sie diese Schaltung löten, schützen Sie Ihre Verbindungen mit Schrumpfschlauch:

Stellen Sie sicher, dass Sie es nicht zu stark erhitzen, und tun Sie dies nur, wenn Sie sicher sind, dass die Schaltung funktioniert. Sie können Ihre Kabel auch paarweise verdrillen. Dies hält sie ordentlich und schützt sie vor unnötigem Stress:

Tastentest

Nachdem Sie die Schaltung erstellt haben, laden Sie diesen Testcode hoch (stellen Sie sicher, dass Sie die richtige Platine und den richtigen Port aus dem Werkzeuge > Tafel und Extras > Port Menüs):

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

Lassen Sie das Arduino nach dem Hochladen über USB angeschlossen und öffnen Sie den seriellen Monitor ( Oben rechts > Serieller Monitor ). Du solltest die Worte sehen Es klappt erscheinen jedes Mal, wenn Sie die Taste drücken.

Wenn nichts passiert, überprüfen Sie Ihre Schaltung.

OLED-Setup

Sie müssen zwei Bibliotheken installieren, um die Anzeige zu steuern. Laden Sie die . herunter Adafruit_SSD1306 und Adafruit-GFX [Nicht mehr verfügbar] Bibliotheken von Github und speichern Sie sie in Ihrem Bibliotheksordner. Wenn Sie sich nicht sicher sind, wo sich Ihre Bibliotheksordner befinden, lesen Sie mein Retro-Gaming-Tutorial , in dem ich dieselbe Anzeige genauer konfiguriere.

Starten Sie Ihre Arduino IDE neu und laden Sie eine Testskizze von der Datei > Beispiele Speisekarte. Auswählen Adafruit SSD1306 und dann ssd1306_128x64_i2c . Laden Sie diesen Code hoch (es dauert eine Weile) und Sie sollten viele Formen und Muster auf dem Display sehen:

Wenn nichts passiert, überprüfen Sie Ihre Verbindungen. Wenn es nach der Überprüfung immer noch nicht funktioniert, müssen Sie den Beispielcode ändern.

Wie macht man den Porträtmodus auf dem iPhone 7?

Ändern Sie diese Zeile (am Anfang des erstellen Funktion):

display.begin(SSD1306_SWITCHCAPVCC, 0x3D);

Dazu:

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

Dadurch werden der Bibliothek spezifische Details über die von Ihnen verwendete Anzeige mitgeteilt. Sie sollten jetzt bereit sein, mit dem Build fortzufahren.

Der Fall

Wenn Sie dies auf einem Steckbrett aufbauen oder es nicht einpacken möchten, können Sie diesen Schritt überspringen.

Ich habe diese Box entworfen und in 3D gedruckt. Holen Sie sich die Dateien auf Thingiverse . Machen Sie sich keine Sorgen, wenn Sie keinen 3D-Drucker haben - Online-Dienste 3D-Hubs und Shapeways bieten Online-Druckdienste an.

Sie können diese Kiste ganz einfach aus Holz oder durch den Kauf eines Kunststoffs herstellen Projektbox .

Der Deckel ist ein einfaches Push-Fit-Design und enthält einige Ausschnitte für die Hardware:

Der Code

Nun, da alles fertig ist, ist es Zeit für den Code. So wird es funktionieren Pseudocode :

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

Damit dies richtig funktioniert, muss eine Zufallszahl generiert werden – das ist der Würfelwurf. Arduino hat einen Zufallszahlengenerator namens willkürlich , sollte es aber nicht verwenden. Während es für grundlegende zufällige Aufgaben gut genug ist, ist es für einen elektronischen Würfel einfach nicht zufällig genug. Die Gründe dafür sind etwas kompliziert, aber bei Interesse können Sie mehr lesen unter boallen.com .

Laden Sie die . herunter TrueRandom Bibliothek von Sirleech auf Github. Fügen Sie dies Ihrem Bibliotheksordner hinzu und starten Sie die IDE neu.

Erstellen Sie nun eine neue Datei und richten Sie Ihren anfänglichen Code ein (oder holen Sie sich einfach den fertigen Code von 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() {

}

Dieser Code konfiguriert die OLED und enthält alle Bibliotheken, die Sie benötigen, um mit ihr zu kommunizieren, zusammen mit Ihrer neuen Zufallszahlenbibliothek. Fügen Sie dies nun der Hauptschleife hinzu:

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

Dies ist im Moment ziemlich einfach, aber es ist ein funktionierender D20. Immer wenn die Taste gedrückt wird, wird eine Zufallszahl zwischen eins und 20 auf dem Bildschirm angezeigt:

Das funktioniert gut, ist aber etwas langweilig. Machen wir es besser. Erstellen Sie zwei neue Methoden, zeichnenDie und löschenDie :

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

Diese ziehen einen Würfel in die Mitte des Bildschirms. Vielleicht möchten Sie dies komplizierter machen, indem Sie vielleicht einen D20 oder D12 usw. zeichnen, aber es ist einfacher, einen einfachen sechsseitigen Würfel zu zeichnen. Hier ist die grundlegende Verwendung:

drawDie();

Als nächstes ändern Sie Ihre Hauptschleife, um die Zufallszahl zu zeichnen, nur größer und in der Mitte. Ändern Sie die Textgröße und den Cursor wie folgt:

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

Es sieht jetzt viel besser aus:

Das einzige Problem ist bei Zahlen größer als neun:

Die Lösung dafür ist einfach. Bei Zahlen unter 10 wird der Cursor auf eine andere Position gesetzt als bei Zahlen ab 10. Ersetzen Sie diese Zeile:

So verkleinern Sie die Größe von JPG
display.setCursor(57, 21);

Mit diesem:

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

So sieht das jetzt aus:

Jetzt bleiben nur noch die Bilder, wenn Sie einen kritischen Treffer oder Fehlschuss würfeln. Es sind einige Schritte erforderlich, aber es ist ein einfacher Prozess.

Suchen Sie ein geeignetes Bild, das Sie verwenden möchten (je einfacher, desto besser, da die Anzeige nur einfarbig ist). Hier die Bilder die ich verwendet habe:

Bildnachweis: publicdomainvectors.org

Jedes Bild, das Sie verwenden möchten, muss in ein HEX-Array konvertiert werden. Dies ist eine Darstellung des Bildes in Codeform. Dafür stehen viele Tools zur Verfügung, von denen einige speziell für OLED-Displays geschrieben wurden. Der einfachste Weg ist, die PicturetoC_Hex Online-Tool. Hier sind die erforderlichen Einstellungen:

windows 10 kann externe festplatte nicht finden

Laden Sie Ihr Bild hoch und setzen Sie das Codeformat auf HEX:0x . Satz Benutzt für zu Schwarz/Weiß für alle Funktionen zum Zeichnen von Bildern . Belassen Sie alle anderen Optionen als Standardwerte. Hier können Sie bei Bedarf die Größe des Bildes ändern. Drücken Sie C-String abrufen und Sie sollten die Bilddaten sehen:

Sie benötigen diese generierten Daten in einer Minute. Erstellen Sie zwei Funktionen namens zeichnenExplosion und zeichnenSchädel (oder ein passender Name für Ihre Version). Hier ist der Code:

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
}

Wenn Sie die von mir verwendeten Bilder verwenden möchten, kopieren Sie den Code. Wenn Sie Ihre zuvor erstellten eigenen Bilder verwenden möchten, kopieren Sie den Byte-Code in das imSku und imExp Arrays nach Bedarf.

So sehen diese Bilder auf dem Display aus:

Der wichtigste Teil dieses Codes ist diese Zeile:

static const unsigned char PROGMEM imSku[]

Dies weist den Arduino an, Ihre Bilder im EEPROM zu speichern ( Was ist EEPROM? ) anstelle seines RAM ( Kurzanleitung zu RAM ). Der Grund dafür ist einfach; Das Arduino hat begrenzten RAM, und wenn Sie alles zum Speichern von Bildern verwenden, bleiben möglicherweise keine Reste übrig, die Ihr Code ausführen kann

Ändern Sie Ihre Haupt- wenn -Anweisung, um diese neuen Grafiken anzuzeigen, wenn eine Eins oder 20 gewürfelt wird. Beachten Sie die Codezeilen, um auch die neben den Bildern gewürfelte Zahl anzuzeigen:

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
}

Und so sehen diese neuen Rollen aus:

Das ist alles für die Codeseite (hol dir den Code von GitHub, wenn du das alles übersprungen hast). Sie können dies leicht in D12, D8 usw. ändern.

Endmontage

Jetzt, wo alles andere fertig ist, ist es Zeit, alles zu verpacken. Schrauben Sie das Display fest und achten Sie darauf, die Schrauben nicht zu fest anzuziehen. Dies ist möglicherweise der schwierigste Teil. Ich habe dabei ein Display geknackt, daher möchten Sie möglicherweise einige Kunststoffscheiben verwenden. Ich schneide ein paar Quadrate aus Plastikard :

Die kleinen Schrauben und Muttern können schwierig zu verbinden sein. Spitze: Verwenden Sie ein kleines Stück Blu-Tack am Ende eines Schraubendrehers, um die Muttern zunächst zu setzen:

Schrauben Sie den Knopf auf, schließen Sie den Akku an und schließen Sie den Deckel. Achten Sie darauf, keine Drähte einzuklemmen oder zu fest zu bündeln, was möglicherweise zu einem Kurzschluss führt. Abhängig von der Länge Ihrer nachlaufenden Kabel müssen Sie möglicherweise freiliegende Verbindungen mit etwas Isolierung schützen (eine serielle Box funktioniert gut):

So sieht es innen aus:

Und hier ist das fertige Produkt:

Sie sollten jetzt stolzer Besitzer einer elektronischen D20 sein!

Welche Modifikationen hast du vorgenommen? Hast du die Bilder geändert? Lass es uns in den Kommentaren wissen, wir würden gerne sehen, was du getan hast!

Teilen Teilen Tweet Email Ein Leitfaden für Anfänger zum Animieren von Sprache

Animierende Rede kann eine Herausforderung sein. Wenn Sie bereit sind, Ihrem Projekt Dialog hinzuzufügen, werden wir den Prozess für Sie aufschlüsseln.

Weiter lesen
Verwandte Themen
  • Heimwerken
  • Arduino
  • Brettspiel
  • Elektronik
Über den Autor Joe Coburn(136 veröffentlichte Artikel)

Joe hat einen Abschluss in Informatik an der University of Lincoln, Großbritannien. Er ist ein professioneller Softwareentwickler und wenn er nicht gerade Drohnen fliegt oder Musik schreibt, ist er oft beim Fotografieren oder Videoproduzieren anzutreffen.

Mehr von Joe Coburn

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren