Inhaltsverzeichnis:

Q-Bot - der Open Source Rubik's Cube Solver - Gunook
Q-Bot - der Open Source Rubik's Cube Solver - Gunook

Video: Q-Bot - der Open Source Rubik's Cube Solver - Gunook

Video: Q-Bot - der Open Source Rubik's Cube Solver - Gunook
Video: Cube Robot Can’t Solve This Scramble! 🤯 2024, Juli
Anonim
Image
Image
Bild
Bild

Stellen Sie sich vor, Sie haben einen verwürfelten Zauberwürfel, Sie kennen das Puzzle aus den 80er Jahren, das jeder hat, aber niemand weiß wirklich, wie es zu lösen ist, und Sie möchten es wieder in sein ursprüngliches Muster zurückbringen. Glücklicherweise ist es heutzutage sehr einfach, Lösungsanweisungen zu finden. Gehen Sie also online und sehen Sie sich ein Video an, in dem Sie erfahren, wie Sie die Seiten drehen, um Ihnen Freude zu bereiten. Nachdem Sie es ein paar Mal getan haben, werden Sie jedoch feststellen, dass etwas fehlt. Ein Loch im Inneren, das nicht gefüllt werden kann. Die Ingenieure/Macher/Hacker in Ihnen können sich einfach nicht damit zufrieden geben, etwas so Erstaunliches auf so einfache Weise zu lösen. Wäre es nicht viel poetischer, wenn Sie eine Maschine hätten, die alle Lösungen für Sie erledigt? Wenn du etwas gebaut hättest, von dem alle deine Freunde begeistert wären? Ich kann Ihnen garantieren, dass es nicht viel besser wird, als zuzusehen, wie Ihre Kreation Wunder tut und einen Zauberwürfel löst. Also, komm und begleite mich auf die wundervolle Reise beim Aufbau von Q-Bot, dem Open Source Rubik's Cube Solver, der sicherlich keine Weltrekorde brechen wird, aber dir stundenlange Freude bereiten wird (nachdem du natürlich all die Frustrationen durchgemacht hast.) während des Bauprozesses).

Schritt 1: Entwerfen der Hardware

Der komplette Solver wurde mit CAD in Catia entworfen. Auf diese Weise konnten die meisten Konstruktionsfehler gefunden und korrigiert werden, bevor physische Komponenten hergestellt wurden. Der größte Teil des Solvers wurde in PLA mit einem Prusa MK3-Drucker in 3D gedruckt. Außerdem wurde folgende Hardware verwendet:

  • 8 Stück 8 mm Aluminiumstange (10cm Länge)
  • 8 Linearkugellager (LM8UU)
  • etwas weniger als 2 m GT2 6mm Zahnriemen + einige Riemenscheiben
  • 6 bipolare NEMA 17-Schrittmotoren
  • 6 Polulu 4988 Schrittmotortreiber
  • ein Arudino Mega als Controller für das Projekt
  • ein 12 V 3A Netzteil
  • ein Abwärtswandler zur sicheren Stromversorgung des Arduino
  • einige Schrauben und Anschlüsse
  • etwas Sperrholz für die Basis

Hardwarebeschreibung

In diesem Abschnitt wird kurz erläutert, wie der Q-Bot überhaupt funktioniert und wo die oben genannten Komponenten zum Einsatz kommen. Unten sehen Sie ein Rendering des fertig montierten CAD-Modells.

Der Q-Bot funktioniert, indem er vier Motoren mit 3D-gedruckten Greifern direkt am Rubik's Cube befestigt. Das bedeutet, dass links, rechts, vorne und hinten direkt gedreht werden kann. Soll die Ober- oder Unterseite gedreht werden, muss der gesamte Würfel gedreht werden und somit zwei der Motoren wegbewegt werden. Dies geschieht, indem jeder der Greifmotoren auf Schlitten befestigt wird, die von einem anderen Schrittmotor und einem Zahnriemen entlang eines linearen Schienensystems angetrieben werden. Das Schienensystem besteht aus zwei 8-Kugellagern, die in Hohlräumen im Schlitten montiert sind und der gesamte Schlitten fährt auf zwei 8mm Aluminiumwellen. Unten sehen Sie die Unterbaugruppe einer Achse des Solvers.

Die x- und die y-Achse sind grundsätzlich identisch, sie unterscheiden sich nur in der Höhe des Befestigungspunktes des Gurtes, damit es im fertig montierten Zustand nicht zu Kollisionen zwischen den beiden Gurten kommt.

Bild
Bild

Schritt 2: Auswahl der richtigen Motoren

Hier ist natürlich die Auswahl der richtigen Motoren sehr wichtig. Der Hauptteil ist, dass sie stark genug sein müssen, um einen Zauberwürfel drehen zu können. Das einzige Problem hierbei ist, dass kein Hersteller von Zauberwürfeln eine Drehmomentangabe angibt. Also musste ich improvisieren und meine eigenen Messungen durchführen.

Im Allgemeinen wird das Drehmoment durch die Kraft definiert, die senkrecht zur Position des Drehpunktes im Abstand r gerichtet ist:

Bild
Bild
Bild
Bild

Wenn ich also die auf den Würfel ausgeübte Kraft irgendwie messen könnte, könnte ich das Drehmoment berechnen. Genau das habe ich getan. Ich habe meinen Würfel so an ein Regal geklemmt, dass sich nur eine Seite bewegen konnte. Dass eine Schnur um den Würfel gebunden wurde und eine Tasche am Boden befestigt wurde. Jetzt musste nur noch das Gewicht im Beutel langsam erhöht werden, bis sich der Würfel drehte. Mangels genauer Gewichte habe ich Kartoffeln verwendet und sie anschließend gemessen. Nicht die wissenschaftlichste Methode, aber da ich nicht versuche, das minimale Drehmoment zu finden, ist es völlig ausreichend.

Bild
Bild

Ich habe die Messungen dreimal gemacht und den höchsten Wert genommen, nur um sicher zu gehen. Das resultierende Gewicht betrug 0,52 kg. Dank Sir Isaac Newton wissen wir nun, dass Kraft gleich Masse mal Beschleunigung ist.

Bild
Bild

Die Beschleunigung ist in diesem Fall die Erdbeschleunigung. Das erforderliche Drehmoment ist also gegeben durch

Bild
Bild

Das Einstecken aller Werte, inklusive der halben Diagonalen des Zauberwürfels, zeigt schließlich das erforderliche Drehmoment.

Bild
Bild

Ich habe Schrittmotoren verwendet, die bis zu 0,4 Nm aufbringen können, was wahrscheinlich ein Overkill ist, aber ich wollte auf Nummer sicher gehen.

Schritt 3: Konstruieren der Basis

Der Sockel besteht aus einer sehr einfachen Holzkiste und beherbergt die gesamte benötigte Elektronik. Es verfügt über einen Stecker zum Ein- und Ausschalten der Maschine, eine LED, die anzeigt, ob sie eingeschaltet ist, einen USB-B-Anschluss und eine Buchse zum Anschließen des Netzteils. Es wurde aus 15 mm Sperrholz, einigen Schrauben und etwas Leim gebaut.

Bild
Bild
Bild
Bild
Bild
Bild
Bild
Bild

Schritt 4: Zusammenbau der Hardware

Jetzt war der Q-bot mit allen erforderlichen Teilen, einschließlich der Basis, fertig zum Zusammenbauen. Die benutzerdefinierten Teile wurden 3D-gedruckt und bei Bedarf angepasst. Am Ende dieser Anleitung können Sie alle CAD-Dateien herunterladen. Die Montage umfasste das Anbringen aller 3D-gedruckten Teile mit den Zukaufteilen, das Verlängern der Motorkabel und das Verschrauben aller Teile mit dem Sockel. Darüber hinaus habe ich die Motorkabel mit Tüllen versehen, um das Aussehen etwas ordentlicher zu machen, und an ihren Enden JST-Stecker angebracht.

Um die Bedeutung der von mir gebauten Basis hervorzuheben, hier eine Vorher-Nachher-Aufnahme, wie die Montage aussah. Alles etwas aufzuräumen kann einen großen Unterschied machen.

Bild
Bild
Bild
Bild

Schritt 5: Elektronik

Was die Elektronik angeht, ist das Projekt ziemlich einfach. Es gibt ein 12-V-Hauptnetzteil, das bis zu 3 A Strom liefern kann, das die Motoren antreibt. Ein Step-Down-Modul wird verwendet, um das Arduino sicher mit Strom zu versorgen, und es wurde ein benutzerdefiniertes Shield für das Arduino entwickelt, das alle Schrittmotortreiber beherbergt. Die Treiber erleichtern die Steuerung der Motoren erheblich. Das Antreiben eines Schrittmotors erfordert eine bestimmte Steuersequenz, aber durch die Verwendung von Motortreibern müssen wir nur für jeden Schritt, den der Motor drehen soll, einen hohen Impuls erzeugen. Darüber hinaus wurden dem Schirm einige jst-Steckverbinder hinzugefügt, um das Anschließen der Motoren zu erleichtern. Das Schild für den Arduino wurde zuerst auf einem Stück Perfboard gebaut und nachdem sichergestellt wurde, dass alles so funktioniert, wie es sollte, wurde es von jlc pcb hergestellt.

Hier ist das Vorher und Nachher des Prototyps und der hergestellten Leiterplatte.

Bild
Bild
Bild
Bild

Schritt 6: Software & serielle Schnittstelle

Der Q-Bot ist in zwei Teile gegliedert. Zum einen gibt es die Hardware, die vom Arduino gesteuert wird, zum anderen gibt es eine Software, die den Lösungsweg für den Würfel basierend auf dem aktuellen Scramble berechnet. Die auf dem Arduino laufende Firmware wurde von mir selbst geschrieben, aber um diese Anleitung kurz zu halten, werde ich hier nicht auf Details eingehen. Wenn Sie es sich ansehen und damit herumspielen möchten, finden Sie den Link zu meinem Git-Repository am Ende dieses Dokuments. Die Software, die die Lösung berechnet, läuft auf einem Windows-Rechner und wurde von einem Kollegen von mir geschrieben, auch Links zu seinem Quellcode finden Sie am Ende dieser ible. Die beiden Teile kommunizieren über eine einfache serielle Schnittstelle. Es berechnet die Lösung basierend auf dem zweiphasigen Algorithmus von Kociemba. Die Lösungssoftware sendet einen aus zwei Bytes bestehenden Befehl an den Solver und wartet darauf, dass dieser ein „ACK“zurückgibt. Auf diese Weise kann der Solver mit einem einfachen seriellen Monitor getestet und debuggt werden. Den vollständigen Befehlssatz finden Sie unten.

Bild
Bild

Die Befehle zum Drehen jedes Motors für einen Schritt sind eine Problemumgehung für ein Problem, bei dem einige der Schrittmotoren beim Einschalten zufällig kleine Sprünge ausführen würden. Um dies auszugleichen, können die Motoren vor dem Lösevorgang in ihre Ausgangsposition gebracht werden.

Schritt 7: Fazit

Nach acht Monaten des Entwickelns, Fluchens, Tastens und Tanzens war der Q-Bot endlich an einem Punkt angelangt, an dem sein erster Zauberwürfel erfolgreich gelöst wurde. Das Scramble des Würfels musste manuell in die Steuerungssoftware eingefügt werden, aber alles funktionierte gut.

Ein paar Wochen später fügte ich eine Halterung für eine Webcam hinzu und mein College passte die Software so an, dass der Würfel automatisch aus den aufgenommenen Bildern gelesen wurde. Dies ist jedoch noch nicht gut getestet und bedarf noch einiger Verbesserungen.

Bild
Bild

Wenn dieses instructable Ihr Interesse geweckt hat, zögern Sie nicht und beginnen Sie mit dem Bau Ihrer eigenen Version des Q-Bot. Es mag auf den ersten Blick entmutigend erscheinen, aber es ist die Mühe wert und wenn ich es könnte, kannst du es auch.

Ressourcen:

Quellcode der Firmware:

github.com/Axodarap/QBot_firmware

Quellcode der Steuerungssoftware

github.com/waldhube16/Qbot_SW

Empfohlen: