Inhaltsverzeichnis:

Magic Answers Ball mit Arduino Pro Mini und TFT-Display - Gunook
Magic Answers Ball mit Arduino Pro Mini und TFT-Display - Gunook

Video: Magic Answers Ball mit Arduino Pro Mini und TFT-Display - Gunook

Video: Magic Answers Ball mit Arduino Pro Mini und TFT-Display - Gunook
Video: Amazing arduino project 2024, Juli
Anonim
Magic Answers Ball mit Arduino Pro Mini und TFT-Display
Magic Answers Ball mit Arduino Pro Mini und TFT-Display
Magic Answers Ball mit Arduino Pro Mini und TFT-Display
Magic Answers Ball mit Arduino Pro Mini und TFT-Display
Magic Answers Ball mit Arduino Pro Mini und TFT-Display
Magic Answers Ball mit Arduino Pro Mini und TFT-Display

Vor einiger Zeit haben meine Tochter und ich einen Magic-8-Ball auseinandergenommen, damit sie die zwanzig Antworten durch eine ihrer Wahl ersetzen konnte. Dies war ein Geschenk für eine Freundin von ihr. Das hat mich dazu gebracht, darüber nachzudenken, wie man das in größerem Maßstab machen kann. Könnten wir viel mehr als 20 Antworten haben? Mit einer elektronischen Version können wir das!

Hier wird also beschrieben, wie ich einen Mattel Magic 8 Ball (sorry, Mattel) zerlegt und ein rundes TFT-Display verwendet habe, um unglaublich viele zusätzliche Antworten anzuzeigen (die kleinste Micro-SD-Karte, die ich finden konnte, war 8 GB, also ist es wirklich übertrieben für wofür es verwendet wird). Der Ball verwendet ein Sparkfun Wake-on-Shake-Board, um die Reaktion auszulösen und den Ball danach auszuschalten, um die Batterie zu schonen. Eine Aufladeplatine wird verwendet, um das Aufladen des Akkus über eine USB-Verbindung zu ermöglichen.

Lieferungen

Teile:

Arduino Pro Mini 328 - 3.3V/8MHz

SparkFun Wake on Shake

Lithium-Ionen-Akku - 400mAh

Organizer 12pcs TP4056 Lademodul 5V Micro USB 1A 18650 Lithium-Batterie-Ladeplatine mit Schutzlademodul (Sie benötigen nur eines davon, aber die 12er-Packung kostete weniger als 9 US-Dollar)

DAOKI 5Pcs Micro SD Storage Board (auch hier brauchen Sie nur eines, aber das 5er-Pack kostete immer noch weniger als 9 US-Dollar)

DFRobot 2,2-Zoll-TFT-LCD-Anzeigemodul

Kingston 8 GB microSD (möglicherweise haben Sie eine alte davon in Ihrem Haus herumliegen)

Perma-Proto Quarter-Size Breadboard PCB (Sie können auch einfach jede beliebige PCB verwenden)

Magie 8 Ball

FTDI Basic Breakout 3.3V (Sie haben möglicherweise bereits einen davon, wenn Sie ein ähnliches Projekt mit dem Arduino Pro Mini oder einem ähnlichen Board durchgeführt haben)

4-poliges Gehäuse mit 2,54 mm JST XH Stecker/Buchse Stiftleiste Dupont-Kabelstecker-Kit (optional, aber zum Anschließen der Batterie empfohlen)

Sonstige Grundversorgung:

Sugru Formbarer Kleber (könnte Klebeband und Heißkleber verwenden, aber das gefällt mir besser)

Klebeband

Doppelseitiges Schaumstoffband

Kabel

Werkzeuge:

Lötkolben

Drehwerkzeug Ihrer Wahl (z. B. Dremel)

Möbelklemme

Schritt 1: Schneiden Sie den Magic 8 Ball in zwei Hälften

Schneiden Sie den Magic 8 Ball in zwei Hälften
Schneiden Sie den Magic 8 Ball in zwei Hälften
Schneiden Sie den Magic 8 Ball in zwei Hälften
Schneiden Sie den Magic 8 Ball in zwei Hälften

Zuerst müssen Sie den Magic 8 Ball in zwei Hälften teilen. Ich habe meine mit der flachen Seite nach unten mit einer Möbelklemme an einem Arbeitstisch befestigt. Schneiden Sie mit einem Dremel mit einer daran befestigten einfachen Schneidscheibe entlang der Naht der Kugel. Sie müssen tief schneiden, so weit es die Trennscheibe zulässt. Lass es langsam angehen. Auch nachdem Sie ganz herum geschnitten haben, müssen Sie möglicherweise einen Schlitzschraubendreher oder Meißel verwenden, um die endgültige Trennung vorzunehmen. Es gibt einen Zylinder, der die "magische" Flüssigkeit und das Ikosaeder (zwanzigseitige Form - ja, das musste ich nachschlagen) im Inneren hält. Werfen Sie das einfach weg oder verwenden Sie es in einem anderen Projekt. Wenn Sie es in einem anderen Projekt verwenden, lassen Sie es mich wissen, was Sie getan haben, damit ich weiß, was mit meinem zu tun ist.

Sie werden mit zwei Hälften verlassen, wie in den Bildern gezeigt. Ich habe dies jetzt dreimal gemacht und das letzte Mal war die weiße Lippe glatt und hatte keine Grate, sodass Ihr Ball möglicherweise etwas anders aussieht als der auf dem Bild.

Am äußeren Rand befindet sich noch etwas Plastikschlacke (der geschmolzene und wieder ausgehärtete Kunststoff). Bremse das mit deinen Händen ab, wenn du kannst; Bei der Verwendung eines Werkzeugs besteht die Gefahr, dass die Oberfläche der Kugel abgerieben wird und sich die Schlacke ziemlich leicht ablöst.

Schritt 2: Bereiten Sie den Ball vor

Bereite den Ball vor
Bereite den Ball vor
Bereite den Ball vor
Bereite den Ball vor
Bereite den Ball vor
Bereite den Ball vor

Es gibt zwei Modifikationen, die wir an den Plastikhälften des Balls vornehmen müssen.

Zuerst müssen wir in der offenen Hälfte, auf der die "8" gemalt ist, einen Bereich rasieren, der groß genug ist, damit unser USB-Ladebrett mit dem herausstehenden USB-Anschluss sitzen kann. Ich habe meinen Dremel mit einer daran befestigten Grobschleiftrommel verwendet. Sie wollen dies so dünn wie möglich, ohne sauber durchzugehen. Schneiden Sie dann eine kleine Öffnung, die gerade groß genug ist, damit der USB-Anschluss nach außen stecken kann. Ich habe einen Messschieber verwendet, um den USB-Anschluss zu messen, aber Sie könnten dies wahrscheinlich im Auge behalten, wenn Sie es brauchen. Auch hier habe ich den Dremel mit einem kleinen Schneidaufsatz verwendet, um die Öffnung zu machen. Die ersten beiden Bilder zeigen die Öffnung und wie das mit dem USB-Board dahinter aussieht.

Zweitens bereiten Sie in der anderen Hälfte, der mit Loch auf BEIDEN Seiten und der weißen Plastiklippe, einen Platz für das Display vor. Direkt in der Öffnung, in der das Display sitzt, befinden sich Kunststoffstege und ein Gummiflansch (?) an der Innenseite der Öffnung. Nehmen Sie den Flansch heraus und legen Sie ihn beiseite. Wir werden das später zurücksetzen, aber wir wollen das für diesen Schritt aus dem Weg räumen. Das Display hat an einer Seite eine rechteckige Extrusion, die es nicht erlaubt, flach in der Öffnung zu sitzen, wenn einige dieser Rippen nicht entfernt werden. Verwenden Sie die Grobschleiftrommel des Dremel erneut, um diese so weit wie möglich zu rasieren. Kommen Sie aus dem Loch, wo das Display für den besten Winkel ist. Es sollte wie auf den Bildern aussehen, wenn es fertig ist. Beachten Sie, dass die Bilder das Display an Ort und Stelle zeigen, aber noch NICHT BEFESTIGEN.

Schritt 3: Bereiten Sie die Antworten auf der Micro-SD-Karte vor

Dieser Schritt ist etwas komplizierter als Sie vielleicht denken. Wenn Sie keine eigene Antwortliste erstellen möchten, fahren Sie mit dem letzten Absatz dieses Schritts fort.

Die Absicht ist, dass wir dem Ball eine beliebige Liste von Zeichenfolgen geben können, die als mögliche Antworten verwendet werden sollen und sie ohne Unterbrechungen in der Mitte auf dem Bildschirm zentriert werden. Wir möchten diese Verarbeitung nicht auf dem Mikrocontroller durchführen und möchten eine Datei mit statischer Datensatzgröße, um eine bestimmte Zeile schnell finden zu können.

Obwohl das Display rund ist, handelt es sich funktional um ein virtuelles rechteckiges Display, bei dem nur Pixel innerhalb des Kreises sichtbar sind. Das Display kann mehrere Textgrößen anzeigen, wir verwenden jedoch nur die kleinste Version mit 6 x 8 Pixeln. Bei dieser Größe gibt es 315 Zeichen, die das Display auf einem Bildschirm darstellen kann (21 Zeichen pro Zeile mal 15 Zeilen), aber nur 221 sind sichtbar und jede Zeile hat eine andere Anzahl von sichtbaren Zeichen. Sehen Sie das Problem?

Ich schrieb ein Java-Programm, um eine Datei mit unformatierten Antworten aufzunehmen und sie in vollständig zentrierte Datensätze zu konvertieren, die leicht auf dem runden TFT angezeigt werden konnten. (Link zum Herunterladen der Datei "FormatToPicksFileFullyCentered.java").

Ohne auf eine Erklärung des gesamten Codes einzugehen, ist die allgemeine Idee, dass wir uns von der Mitte (ish) aus rückwärts arbeiten und Leerzeichen einfügen, um sicherzustellen, dass wir keine Wörter über sichtbare Zeilen unterbrechen, und dann dasselbe von der Mittelstürmer. Schließlich durchlaufen wir alle Zeilen und zentrieren jede Zeile innerhalb der vollen 21 Zeichenzeilen, um einen Datensatz von genau 316 Bytes (315 alphanumerische Zeichen plus ein Zeilenumbruchzeichen) zu erstellen. Der Code arbeitet tatsächlich durch drei Schriftarten, x 3, x 2 und x 1, um zu sehen, welche die größte Schriftart ist, die verwendet werden kann und noch in den Text passt. Die Zentrierung ist bei den x 2 und x 3 Schriftarten etwas falsch, sorry. Seien Sie vorsichtig bei Zeichen, die mehr als ein Byte belegen, diese können die ausgegebene Datei verwirren.

Kopieren Sie die Datei "picks.txt" auf die Micro-SD-Karte.

Wenn Sie sich nicht die Mühe machen möchten, Ihre eigene Auswahlliste zu erstellen, habe ich meine Auswahlliste beigefügt, die Sie einfach auf die SD-Karte kopieren und verwenden können. Ich konnte zu diesem Zeitpunkt keine.txt-Datei auf instructables hochladen, also ist hier ein Link, wo Sie die picks.txt-Datei herunterladen können.

Schritt 4: Code auf den Arduino Mini hochladen

Code auf den Arduino Mini hochladen
Code auf den Arduino Mini hochladen
Code auf den Arduino Mini hochladen
Code auf den Arduino Mini hochladen
Code auf den Arduino Mini hochladen
Code auf den Arduino Mini hochladen

Wenn Sie den Arduino Pro Mini noch nie zuvor verwendet haben, können Sie nicht einfach ein USB-Kabel anschließen und herunterladen. Sie müssen eine FTDI-Platine verwenden und die Drähte an die entsprechenden Pins am Mini anschließen. Ich werde hier kein Tutorial dazu geben, es gibt viele im Internet. Für mich wollte ich keinen permanenten Stecker auf die Mikrocontrollerplatine löten, der nur einmal zum Herunterladen des Codes verwendet wird, also habe ich einen kleinen Clip erstellt, mit dem man den Mini ohne Löten programmieren kann (siehe Bilder). Dies wurde von Produkten wie Fiddy inspiriert, aber ich habe keinen einfachen Zugang zu einem 3D-Drucker, also habe ich meinen eigenen aus einem Kartoffelchip-Clip gemacht. Wenn Leute interessiert sind, werde ich nur dafür ein instructable machen.

Weiter zum Code. Dieser Code hat ein paar interessante Teile, aber er ist meistens einfach.

In der Setup-Funktion gibt es eine anständige Menge an Code, die sich damit befasst, einen guten zufälligen Seed zu erhalten. Die typische Methode der Verwendung des analogen Lesens von einem nicht angeschlossenen Pin gibt meiner Erfahrung nach keine ausreichend unterschiedliche Reaktion. Ich bekomme eine Zahl zwischen 477 und 482. Da die Arduino-Zufallsfunktion eine und nur eine Sequenz hat und der Seed bestimmt, wo in dieser Sequenz begonnen wird, wird ein so enger Bereich am Ende nicht genügend mögliche Antworten produzieren. Denken Sie daran, dass dieser Code im Wesentlichen jedes Mal von vorne beginnt, wenn das Wake-on-Shake-Board den Strom aus- und wieder einschaltet. Daher ist die vom Seed bestimmte anfängliche Sequenzposition entscheidend. Um dabei zu helfen, schreibe ich eine sehr kleine Datei auf die SD-Karte, um den letzten Seed zu verfolgen und diesen zu einem neuen Wert hinzuzufügen, der vom nicht verbundenen Pin kommt.

Sobald ein Pick in der Schleifenfunktion ausgewählt und in ein Zeichenarray eingelesen wurde, können wir nicht einfach den gesamten String ausgeben. Die Anzeige hat eine Begrenzung der Länge einer Zeichenfolge, die gleichzeitig verarbeitet werden kann. Aus diesem Grund müssen wir jede der fünfzehn Zeilen durchschleifen und nacheinander an das Display senden.

Erforderliche externe Bibliotheken:

ST7687S Bibliothek

DFRobot-Display-Bibliothek

Schritt 5: Verdrahten Sie die Komponenten

Verdrahten Sie die Komponenten
Verdrahten Sie die Komponenten
Verdrahten Sie die Komponenten
Verdrahten Sie die Komponenten

Zeit, das Löten von Drähten zu erledigen. Ich neigte dazu, mich mit etwas längeren Drähten zu irren, als ich wirklich brauchte, aber das hat am Ende gut geklappt.

Im beigefügten Schaltplan wird das TFT-Display durch einen Stecker und nicht durch ein Bild des gesamten Displays dargestellt (für das ich kein Fritzing-Teil finden konnte). Ich habe die Drähte / Stifte entsprechend ihrer Beschriftung auf dem Teil beschriftet. Ebenso ist die SD-Karte nicht genau die, die ich verwendet habe, aber ich habe die Drähte / Stifte für den aufgeführten Teil beschriftet.

Es gibt eine Komponente, die ich in diesem Schritt nicht zusammenlöte: die Batterie. Stattdessen habe ich einen vierpoligen Stecker verwendet, bei dem die beiden mittleren Stifte entfernt wurden (zweites Bild). Dadurch konnte ich alle miteinander verkabelten Komponenten testen und dann die Batterie abklemmen, während ich alles an der Kugel befestigte.

Schließlich habe ich eine viertelgroße permanente Steckbrettplatine verwendet, um die Stromversorgung und die gemeinsamen Verbindungen zu vereinfachen. Das sieht man auf den Montagebildern.

Testen Sie, ob alles funktioniert

Schritt 6: Befestigen Sie die Komponenten am Ball

Befestigen Sie Komponenten am Ball
Befestigen Sie Komponenten am Ball
Befestigen Sie Komponenten am Ball
Befestigen Sie Komponenten am Ball
Befestigen Sie Komponenten am Ball
Befestigen Sie Komponenten am Ball
Befestigen Sie Komponenten am Ball
Befestigen Sie Komponenten am Ball

Setzen Sie zuerst das Display ein und verwenden Sie etwas Sugru, um es zu sichern (erste zwei Bilder). Vergessen Sie nicht den Flansch, den Sie zuvor entfernt haben. Sie sollten ihn wieder anbringen, bevor Sie das Display befestigen.

Als nächstes klebte ich das Proto-Board in die Unterseite der leeren Hälfte des Balls. Ich hielt alle meine Lötmittel auf einer Seite der Platine, so dass ich noch die Hälfte der Platine hatte, die ich überkleben konnte. Ich habe dann die Batterie auf dieselbe Hälfte des Proto-Boards geklebt (drittes Bild).

Beide Hälften sind nun durch Drähte verbunden. Finden Sie heraus, wo das USB-Loch endet, wenn Sie die beiden Hälften zusammenfügen. Wenn die weiße Lippe die Stacheln nach oben ragt, denken Sie daran, dass sie zentriert in einen der Keile der weißen Lippe fallen muss, da wir die USB-Ladeplatine zwischen zwei der Kunststoffrippen an der Lippe befestigen werden.

Befestigen Sie die USB-Ladeplatine mit einem kleinen Stück doppelseitigem Schaumstoffband. Das doppelseitige Klebeband sollte nicht die gesamte Unterseite der Ladeplatine bedecken, da das Ende mit den daran befestigten Drähten über die Mittelkante der weißen Lippe hängt. Das Klebeband sollte also etwa drei Viertel der Unterseite des Bretts bedecken. Legen Sie das Klebeband zuerst auf die Unterseite des Bretts und drücken Sie es dann an die Stelle, für die Sie sich entschieden haben. Der USB-Stecker sollte sich am Rand des Balls befinden und in den schwarzen Bereich des Kunststoffs stecken, ohne den Ball zu verlassen. Schließlich verwenden Sie etwas mehr Sugru über die Oberseite des Brettes und sichern Sie auf beiden Seiten. Dies fügt nur zusätzliche Festigkeit hinzu, wenn ein Kabel in den USB-Anschluss geschoben wird.

Legen Sie jetzt die Micro-SD-Karte in das SD-Kartenmodul ein

Wenn Sie möchten, können Sie die anderen Komponenten an der weißen Lippe befestigen. Die restlichen Komponenten habe ich einfach hinter das Display gesteckt.

Schritt 7: Setzen Sie die beiden Hälften wieder zusammen

Setzen Sie die beiden Hälften wieder zusammen
Setzen Sie die beiden Hälften wieder zusammen
Setzen Sie die beiden Hälften wieder zusammen
Setzen Sie die beiden Hälften wieder zusammen

Vergewissern Sie sich, dass Sie die SD-Karte eingelegt und alle Komponenten zusammen getestet haben.

Ok, wenn Sie bereit sind, machen Sie eine lange Schlange aus etwas Sugru-Kleber und führen Sie sie mit der weißen Lippe um den Rand der Hälfte der Kugel herum (erstes Bild). Der Kleber sollte direkt an der Verbindungsstelle aufgetragen werden, an der die schwarzen und weißen Abschnitte des Kunststoffs zusammenkommen. Wenn Sie den Kleber hier platzieren, stellen Sie sicher, dass Sie eine starke Verbindung haben, während die Menge an Kleber minimiert wird, die nach dem Zusammenfügen der beiden Hälften aus dem Riss herausgedrückt wird.

Drücken Sie die beiden Hälften zusammen und achten Sie darauf, dass der USB-Anschluss durch das zuvor dafür geschnittene Loch ragt. Klemmen Sie die beiden Hälften mit der Möbelklemme fest genug zusammen, um die Hälften zusammenzuhalten, ohne sie fest zu klemmen. Der Sugru-Kleber härtet in etwa 24 Stunden aus.

Wenn Sie etwas Kleber aus der Fuge herausgedrückt haben, können Sie ihn mit dem Finger oder einem glatten Tuch/Papiertuch abkratzen.

Empfohlen: