3D Printed Mikrocontroller Dice Roller

5 Schritt:Schritt 1: Materialien Schritt 2: Der Stromkreis Schritt 3: Die Programmierung der Mikrocontroller Schritt 4: Alles zusammen Schritt 5: Das Endergebnis!

3D Printed Mikrocontroller Dice Roller

3D Printed Mikrocontroller Dice Roller

Dies ist eine just-for-fun-Projekt I in der Digilent Maker taten. In der Regel, wenn ich spielen Brettspiele Ich benutze einen Würfel-Rollen Smartphone-App seit Würfel sind so leicht zu verlieren. Ich dachte, ich würde versuchen, meine eigenen Hardware-Version though. Es stellte sich heraus wirklich gut und war eine Menge Spaß. In diesem Instructable Ich werde hingehen, wie ich die Schaltung ausgelegt, schrieb den Code für den Mikrocontroller, machte das Gehäuse, und sie alle zusammen!
Ich trat in dieses Projekt in mehreren Wettbewerben auf Instructables. Wenn Sie dieses Projekt gefällt, stimmen Sie dafür, indem Sie auf "Vote!" Farbband in der oberen rechten Ecke.

Schritt 1: Materialien

  1. 3D Printed Mikrocontroller Dice Roller

    Hier ist eine Liste der Teile, die ich für dieses Projekt verwendet.
    chipKIT UC32 Mikrocontroller und USB-Kabel Sie können auch eine Menge anderer Mikrocontroller wie Arduino Uno oder chipKIT Uno32 7 grün 5mm LEDs Taster (ca. 6 mm breit) 2 verwenden zuno Clips , um den Mikrocontroller-Board halten Sie können einige oder sogar bestellen 3D drucken Sie Ihre eigenen zuno Clips kostenlos bei den obigen Link. 3D gedruckt Gehäuse (Datei unten) Nicht jeder hat Zugang zu einem 3D-Drucker, aber es gibt viele andere Möglichkeiten hier. Ein dicker Karton oder Pappe wird perfekt funktionieren. Auch, wenn Sie wollen, eine 3D-gedruckte Version und haben keinen Zugriff auf einen Drucker, gibt es mehrere Unternehmen (wie i.materialise, Sculpteo, Ponoko und Shapeways), die einen Entwurf für Sie zu drucken und per Post an Sie. Für Putting alles zusammen brauchen Sie nur ein paar grundlegende Werkzeuge: Seitenschneider, einen Lötkolben und etwas Klebstoff (Heißkleber und Sekundenkleber beide gut funktionieren).
    My 3D-Print-Design kann an dieser gefunden werden Link . Von dieser Seite aus können Sie ein Exemplar von einem der Unternehmen, die ich oben erwähnt bestellen. Oder, wenn Sie selbst werden ihn zu drucken, können Sie die Datei auch hier herunterladen. Tinkercad erlaubt es Ihnen auch, um eine Kopie der Datei zu machen, so dass Sie Ihre eigenen Änderungen vornehmen können. Sie können Änderungen am Entwurf vornehmen, um eine andere Größe von LEDs oder eine andere Taste zu verwenden. Sie können es größer und sogar Text oder Logos hinzufügen!

    Jetzt auf die Gestaltung. I wird durch Erläuterung der Schaltung in der nächsten Stufe zu beginnen. Danach werde ich über die Programmierung des Mikrocontrollers zu sprechen. Und last but not least, setzen sie alle zusammen!

    Hinweis: Wenn Sie vorhaben, das Gehäuse wird das Drucken, würde ich jetzt damit beginnen, dass, wie Sie durch die verbleibenden Schritte weiter. Dann wird der Druck wird geschehen, wenn Sie bereit sind, alles zusammengefügt sind.

Schritt 2: Der Stromkreis

  1. 3D Printed Mikrocontroller Dice Roller

    Die Schaltung für dieses Projekt ist sehr einfach. Wir brauchen nur ein Leistungs- und Masseverbindung zu den LEDs und ein paar Drähte, die auf die Taste. Hinweis: Die "Power" zu den LEDs kommt von Digital-I / O-Pins des Mikrocontrollers.
    I enthalten eine schematische Darstellung des UC32 damit Sie sehen können, wie alles wird schließlich in den Vorstand angeschlossen werden.

Schritt 3: Die Programmierung der Mikrocontroller


  1. Ich meinen Code geschrieben in MPIDE. MPIDE ist völlig kostenlos und kann heruntergeladen werden hier . Hinweis: MPIDE können fast jede Mikrocontroller, einschließlich aller chipKIT und Arduino-Boards programmieren. Wenn Sie mit einem Arduino Board und schon Arduino IDE, die genauso gut zu funktionieren.
    Wenn Sie in einer IDE ganz neu in Mikrocontroller und Programmierung sind, hier ist eine kurze Anleitung, wie man MPIDE installieren und zu verwenden, um mit Ihrem Board zu kommunizieren, erklärt: Intro to MPIDE .
    Der Code, den ich für den Microcontroller schreibt kann unten gesehen werden. Es gibt drei Hauptbereiche, um dieses "skizzieren":
    Die Funktion Walze (), die es, als ob das Werkzeug tatsächlich Walz aussehen lässt. Dies ist eine Funktion, die ich mir selbst erstellt und es wird in dem folgenden Code enthalten. Erzeugen einer Zufallszahl zwischen 1 und 6 mit der rand () Funktion. (Diese Funktion ist in der Header-Datei stdlib.h vordefiniert.) Und eine Reihe von if-Anweisungen zu leuchten die richtigen LEDs auf der Basis der Zufallswert, der erzeugt wird.
    Dieser Code kann direkt aus dem Kasten unten kopieren und in Ihre IDE eingefügt werden. Dann können Sie es direkt auf Ihrem Bord von dort laden. Wenn Sie unsicher sind, wie Sie die Skizze hochzuladen, klicke auf "Intro zu MPIDE" oben verlinkten Tutorial.
    Hinweis: Es tut uns sehr platzraubende Formatierung für den Code. Es dient zur Anzeige in eine nette kleine Box, die man durch zu blättern, aber Instructables einige Änderungen vorgenommen, um ihre Bearbeitungsoberfläche und ich bin nicht in der Lage, mehr tun.
    #include // um die rand () -Funktion
    // Initialisierung der Taste für Eingabestift verwendet
    const int btnPin = 26;
    // Initialisierung Stifte zu steuern, jede LED-
    const int led_left_top = 33; // LED in der linken oberen Ecke des Druck
    const int led_left_center = 32; // in auf der linken Seite des Chips in der Mitte der Reihe LED
    const int led_left_bottom = 31; // LED in der unteren linken Ecke des Chips
    const int led_right_top = 30; // LED in der oberen rechten Ecke des Chips
    const int led_right_center = 29; // LED auf der rechten Seite des Chips in der mittleren Reihe
    const int led_right_bottom = 28 // LED in der rechten unteren Ecke der Düsen
    const int led_center = 27; // LED in der Mitte der Düse
    // Erstellen einer Funktion, um die Wirkung eines Druckwalzen zu simulieren
    // Funktion macht LEDs flackern durch Nummern 1-6
    Leere Rolle ()
    {

    int i = 0; // Zählvariable for-Schleife

    for (i = 0; i <5; i ++) // Zyklus 5 Mal

    {

    // Display 1

    digital (led_left_top, LOW);

    digital (led_left_center, LOW);

    digital (led_left_bottom, LOW);

    digital (led_right_top, LOW);

    digital (led_right_center, LOW);

    digital (led_right_bottom, LOW);

    digital (led_center, HIGH);

    Verzögerung (50); // 50 ms warten, bevor die Anzeige nächste Wert

    // Display 2

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, LOW);

    digital (led_right_top, LOW);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, LOW);

    Verzögerung (50);

    // Display 3

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, LOW);

    digital (led_right_top, LOW);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, HIGH);

    Verzögerung (50);

    // Display 4

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, HIGH);

    digital (led_right_top, HIGH);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, LOW);

    Verzögerung (50);

    // Anzeige 5

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, HIGH);

    digital (led_right_top, HIGH);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, HIGH);

    Verzögerung (50);

    // Display 6

    digital (led_left_top, HIGH);

    digital (led_left_center, HIGH);

    digital (led_left_bottom, HIGH);

    digital (led_right_top, HIGH);

    digital (led_right_center, HIGH);

    digital (led_right_bottom, HIGH);

    digital (led_center, LOW);

    Verzögerung (50);

    }
    } // Ende der Rollfunktion
    // Initiliazing variable zu sterben Wert darstellen
    int die_value = 0;
    Leere setup () // Microcontroller-Pins konfigurieren
    {

    // Setze Schaltfläche Stift für die Eingabe

    pinMode (btnPin, INPUT);

    // Set LED-Pins ausgegeben

    pinMode (led_left_top, OUTPUT);

    pinMode (led_left_center, OUTPUT);

    pinMode (led_left_bottom, OUTPUT);

    pinMode (led_right_top, OUTPUT);

    pinMode (led_right_center, OUTPUT);

    pinMode (led_right_bottom, OUTPUT);

    pinMode (led_center, OUTPUT);
    }
    Leere Schleife ()
    {

    // Check für Tastendruck

    if (digitalRead (btnPin) == HIGH) // wenn Taste gedrückt wurde,

    {

    Rolle (); // Simulieren Würfelwurf

    die_value = (rand ()% 6) + 1; // wählen Sie Druckwert Zufällig wird dieser Code eine Zahl zwischen 1 und 6 zu erzeugen

    if (die_value == 1) // nur Zentrum LED leuchtet

    {

    digital (led_left_top, LOW);

    digital (led_left_center, LOW);

    digital (led_left_bottom, LOW);

    digital (led_right_top, LOW);

    digital (led_right_center, LOW);

    digital (led_right_bottom, LOW);

    digital (led_center, HIGH);

    }

    else if (die_value == 2) // nur die oben links und unten rechts LEDs leuchten

    {

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, LOW);

    digital (led_right_top, LOW);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, LOW);

    }

    else if (die_value == 3) // links oben, rechts unten, und in der Mitte LEDs leuchten

    {

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, LOW);

    digital (led_right_top, LOW);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, HIGH);

    }

    else if (die_value == 4) // die vier LEDs an den Ecken leuchten

    {

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, HIGH);

    digital (led_right_top, HIGH);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, LOW);

    }

    else if (die_value == 5) // die Ecke 4 LEDs und das Zentrum LED leuchten

    {

    digital (led_left_top, HIGH);

    digital (led_left_center, LOW);

    digital (led_left_bottom, HIGH);

    digital (led_right_top, HIGH);

    digital (led_right_center, LOW);

    digital (led_right_bottom, HIGH);

    digital (led_center, HIGH);

    }

    else // die_value == 6 und alle LEDs außer der Mitte einer beleuchteten

    {

    digital (led_left_top, HIGH);

    digital (led_left_center, HIGH);

    digital (led_left_bottom, HIGH);

    digital (led_right_top, HIGH);

    digital (led_right_center, HIGH);

    digital (led_right_bottom, HIGH);

    digital (led_center, LOW);

    }

    Verzögerung (4000); // Displays sterben Wert für 4000ms oder 4 Sekunden

    }

    else // LEDs bleiben aus, wenn keine Taste gedrückt wurde,

    {

    digital (led_left_top, LOW);

    digital (led_left_center, LOW);

    digital (led_left_bottom, LOW);

    digital (led_right_top, LOW);

    digital (led_right_center, LOW);

    digital (led_right_bottom, LOW);

    digital (led_center, LOW);

    }
    }

Schritt 4: Alles zusammen


  1. Dies ist der Teil, den ich denke, ist der Spaß! Zum einen, ich liebe Löten. Und es ist wirklich genial bekommen, um zu sehen das Design zusammen kommen.
    Hier ist eine kurze Zusammenfassung dessen, was wir tun müssen:
    Legen Sie die LEDs im oberen Teil des Gehäuses. Verlöten Sie alle Verbindungen zu den LEDs. Setzen Sie den Button in der quadratischen Öffnung der Frontblende des Gehäuses. Löten Sie die Schaltfläche Verbindungen. Bringen Sie die zuno Clips an der Basis des Gehäuses. Montieren Sie den Würfel und befestigen Sie es an der Basis.
    3D Printed Mikrocontroller Dice Roller

    Ich begann, indem alle LEDs und Verlöten ihrer Anschlüsse. Für das Gehäuse I gedruckt, passen die LEDs perfekt in die Löcher, so dass sie fest an seinem Platz blieb ohne Klebstoff. Je nach Drucker Sie ein wenig Klebstoff benötigen, um ihnen helfen, an ihrem Platz bleiben.
    Zum Löten der LED, ist es sehr wichtig, dass die LEDs in der richtigen Ausrichtung verbunden ist. Die Anoden der LEDs an den digitalen I / O-Pins des Mikrocontrollers verbunden ist, und die Kathoden der LEDs mit der Erde verbunden werden.
    3D Printed Mikrocontroller Dice Roller

    Wie Sie in meinem Bild sehen kann, verbunden ich all der Kathoden zusammen mit blauen Adern. Masseverbindungen müssen nicht um genau zu sein, so können wir alle Kathoden miteinander zu verbinden und dann eine Verbindung dieser Gruppe mit einem einzelnen Draht (das schwarze im Bild) zu erden. Dies macht es viel einfacher, dann mit sieben separaten Erdungskabel. Nach dem Anschließen aller Kathoden miteinander und mit einem einzelnen Erdleiter verbunden I ein separates Kabel mit jedem der Anoden der einzelnen LEDs. Dies sind die roten Drähte in das Bild. Wie Sie sehen können, habe ich eine Markierung, um einige Zählstriche auf jeden einzelnen gestellt. Dies macht es einfacher, den Überblick über die der Draht um jeden Stift des Mikrocontrollers verbunden werden zu halten.

    3D Printed Mikrocontroller Dice Roller

    Als nächstes habe ich den Knopf in die rechteckige Öffnung der Frontplatte. Dies erforderte ein wenig Heißkleber auf der Rückseite, um es in Position zu halten. Das Bild oben ist meine schönste nicht zeigen, suchen Arbeit, aber wenn wir den Würfel zusammen diese Seite nicht zu sehen.
    Erinnern Sie sich aus der schematischen, die nur 3 der 4 Stiften auf dem Knopf verbunden sind. Einer ist mit dem durch einen 220Ω Widerstand an Masse. Eine andere Pin wird an den Mikrocontroller der 5V Stromquelle angeschlossen. Der andere Stift ist mit dem Stift 26 des Mikrocontrollers. Pin 26 liest, ob die Taste gedrückt wurde oder nicht. Sie können sehen, wie ich die Drähte angelötet im Bild oben. Beachten Sie, dass ich mit einem Punkt, zwei Punkte, und einer Prise beschriftet die Drähte. Dies ist zu verfolgen, was Draht geht an die auf dem Mikrocontroller Pin halten. Ein Punkt ist für den Draht, die auf 26. Zwei Punkte für den Draht, die 5V-Versorgung des Mikrocontrollers verbindet Pin geht. Das Armaturenbrett ist für den Draht, die des Mikrocontrollers GND verbindet.
    3D Printed Mikrocontroller Dice Roller

    Für den 220Ω Widerstand an der Masseverbindung, Ich habe nur das eine Ende eines Widerstandes in das Ende meiner Anschluss. Die freiliegende Zapfen des 220Ω Widerstand direkt an die GND-Pin des Mikrocontrollers angeschlossen werden. Wenn Sie sich nicht mit MTE Kabel, wie ich bin, können Sie einfach löten einen Widerstand an das andere Ende des Drahtes.


    Der nächste Schritt besteht darin, die zuno Clips an der Basis zu befestigen. Die Löcher an den zuno Clips waren ein wenig zu groß für die Stifte auf der Basis, aber ein wenig Heißkleber über der Verbindung macht es gut passen und bleiben in Kraft. 3D Printed Mikrocontroller Dice Roller



    Jetzt lassen wir den ganzen Würfel zusammen. Benutzen Sie Klebstoff wie nötig, um die Seiten des Würfels zusammen zu halten. Versuchen Sie auch, um die auf den Punkt gezeichnet, so dass sie alle werden von der Frontplatte kommenden Drähte zu halten, wenn wir setzen Sie den Würfel auf der Basis.
    3D Printed Mikrocontroller Dice Roller



    Alles, was jetzt bleibt, ist, den Würfel an der Basis zu setzen! Ich brauchte keine Kleber, um den Würfel in Position zu halten, weil die Würfel in die Löcher des Basis passen perfekt. Aber verwenden Leim wie notwendig, um den Würfel angebracht halten. Das Endergebnis wird unten! Fahren Sie mit dem nächsten Schritt, um es in Aktion zu sehen.
    3D Printed Mikrocontroller Dice Roller

Schritt 5: Das Endergebnis!


  1. Schließlich, montieren Sie den Mikrocontroller auf die zuno Clips und stecken Sie alle Leitungen.
    Die Pin-Nummern, die jeder Draht muss an in dem Code in Schritt 3 gezeigt zu verbinden, aber zu überprüfen:
    Die LEDs sind mit den Pins 27 bis 33 verbunden sind. Die Masseleitung der LEDs ist mit der Mikrosteuer GND verbunden. Der Draht, der Zustand der Schaltfläche trägt (ob es gedrückt wurde oder nicht), ist mit dem Stift 26. Ein weiterer Draht der Taste ist mit 5V-Versorgung des Mikrocontrollers verbunden und letzten Draht der Schaltfläche wird der Mikrosteuer GND durch einen 220Ω Widerstand. .
    Dann einfach die Skizze von der IDE laden, um Ihre Mikrocontroller und es ist bereit zu gehen! Check it out in dem Video oben!
    Bitte zögern Sie nicht, Fragen zu stellen, wenn Sie welche haben!
    Auch, wie ich bereits erwähnt, trat ich in dieses Projekt in mehreren Wettbewerben auf Instructables. Also, wenn Sie diese gefällt, bitte die Stimmabgabe für sie, indem Sie auf den "Vote!" Farbband in der oberen rechten Ecke.