Inhaltsverzeichnis:

BricKuber-Projekt - ein Raspberry Pi Rubiks Cube Lösungsroboter - Gunook
BricKuber-Projekt - ein Raspberry Pi Rubiks Cube Lösungsroboter - Gunook

Video: BricKuber-Projekt - ein Raspberry Pi Rubiks Cube Lösungsroboter - Gunook

Video: BricKuber-Projekt - ein Raspberry Pi Rubiks Cube Lösungsroboter - Gunook
Video: How To Build a Raspberry Pi Rubiks Cube Solving Robot 2024, Juni
Anonim
Image
Image

Der BricKuber kann einen Zauberwürfel in weniger als 2 Minuten lösen.

Der BricKuber ist ein Open-Source-Roboter zum Lösen von Rubik-Würfeln, den Sie selbst bauen können

Wir wollten einen Rubiks-Würfellösungsroboter mit dem Raspberry Pi bauen. Anstatt auf Geschwindigkeit zu setzen, haben wir uns für Einfachheit entschieden: Wenn Sie einen Raspberry Pi, ein BrickPi-Kit und ein standardmäßiges LEGO Mindstorms EV3- oder NXT-Kit besitzen, sollten Sie in unsere Fußstapfen treten können. Die Software ist in der Programmiersprache Python geschrieben. Sie können den gesamten Quellcode auf Github hier sehen.

Hintergrund Der Zauberwürfel feiert seit kurzem ein Comeback. Es wurde 1974 erfunden und ist das meistverkaufte Spielzeug der Welt. Aber sie zu lösen erfordert Überlegung, Anstrengung und Geschick… Warum also nicht einen Roboter machen lassen? In diesem Projekt nehmen wir einen Raspberry Pi, einen BrickPi und ein Set von LEGO Mindstorms und bauen einen Zauberwürfel-Lösungsroboter. Legen Sie einfach einen ungelösten Zauberwürfel in den Solver, führen Sie das Python-Programm aus und Ihr Zauberwürfel ist gelöst! Das Projekt verwendet den Pi, um den Zauberwürfel direkt zu lösen. Der BrickPi3 nimmt den ungelösten Zauberwürfel auf und der Raspberry Pi macht mit der Raspberry Pi Kamera ein Bild von jeder Seite des Zauberwürfels. Der Pi erstellt eine Textkarte der Farbquadrate, die anzeigt, wo sie sich auf dem Würfel befinden. Wenn der Würfel vollständig abgebildet ist, verwendet der Pi die Python-Bibliothek „kociemba“, um die Bewegungen abzubilden, die zum Lösen des Zauberwürfels erforderlich sind. Diese Informationen werden von Pi und BrickPi3 verwendet, um den Zauberwürfel mit den LEGO-Motoren zu lösen. Das Ergebnis: ein gelöster Zauberwürfel.

Schritt 1: Werkzeuge und Materialien

Baue es
Baue es
  • BrickPi3 – Wir verwenden den BrickPi, um die LEGO-Motoren zu steuern, die den Zauberwürfellöser lösen.
  • Raspberry Pi – Der Pi übernimmt die Verarbeitung, macht Bilder und steuert den BrickPi.
  • Raspberry Pi-Kamera – Die Pi-Kamera macht ein Bild des ungelösten Rubiks-Würfels.
  • Ethernet-Kabel – Ihr Gerät muss mit dem Internet verbunden sein. Wenn Sie dies über WLAN tun möchten, ist das auch in Ordnung!
  • Raspbian for Robots SD-Karte – Die Software, die den Raspberry Pi ausführt. Dies wird mit dem größten Teil der Software geliefert, die für dieses Tutorial benötigt wird. Sie können die Software auch kostenlos herunterladen.
  • LEGO Mindstorms EV3-Kit (31313) – Sie benötigen einen Haufen LEGO und zwei große Motoren sowie einen Servomotor und den Ultraschallsensor.
  • Ein Zauberwürfel – Wir haben einen gefunden, der sich hier ziemlich frei dreht. Sie können jedoch fast jeden 9x9x9-Zauberwürfel verwenden.

Schritt 2: Erstellen Sie es

Baue es
Baue es
Baue es
Baue es

Aufbau des Solvers

Dieses Design wurde vom MindCub3r-Design für LEGO EV3 inspiriert. Um den BricKuber zu bauen, bauen Sie zunächst MindCub3r auf. Eine vollständige LEGO Bauanleitung finden Sie hier.

Das Rubiks-Cube-Solver-Design besteht aus drei beweglichen Hauptteilen. Die erste ist eine Wiege für den Zauberwürfel. Der zweite ist der Shuffler, ein Arm, mit dem der Zauberwürfel umgedreht wird.

Schließlich fügen wir einen Kameraarm hinzu. Im Originaldesign von MindCubr hielt dieser den EV3-Farbsensor über dem Zauberwürfel. In unserem modifizierten Design hält es eine Raspberry Pi Kamera über dem Zauberwürfel. Wir verwenden zwei LEGO Mindstorms-Motoren, um den Würfel zu manipulieren: Der erste sitzt unter der Wiege, um den Würfel zu drehen, und der zweite bewegt den Mischarm, um den Würfel um eine entgegengesetzte Achse zu drehen.

Baue den BrickPi3 zusammen

Eine Montageanleitung für den BrickPi3 findest du hier. Wir müssen das Gehäuse zusammenbauen, den BrickPi3, den Raspberry Pi, die Raspberry Pi-Kamera anbringen, eine SD-Karte hinzufügen und Batterien hinzufügen. Um die Installation der Software zu vereinfachen, wird Raspbian for Robots mit dem größten Teil der Software geliefert, die Sie bereits einrichten müssen. Sie benötigen mindestens eine 8-GB-SD-Karte, und Sie möchten die Festplatte erweitern, damit sie auf die volle Größe der SD-Karte passt.

Befestigen Sie den BrickPi3

Wir fügen den BrickPi3 der LEGO-Baugruppe hinzu. Wir haben die LEGO EV3-„Flügel“verwendet, um den BrickPi3 zu unterstützen und ihn mit dem BricKuber-Körper auf gleicher Höhe zu halten. Dies ist ein guter Schritt, um dem Netzteil 8XAA-Batterien hinzuzufügen und das BrickPi3-Netzteil an der LEGO-Baugruppe zu befestigen. Zum Programmieren können Sie den BrickPi3 über USB mit dem Raspberry Pi versorgen, zum Bewegen der Motoren müssen Sie jedoch das Power Pack mit Strom versorgen.

Verbinden Sie die Motoren mit dem BrickPi3

Schließen Sie den Shuffler-Motor an den Motoranschluss „MD“an. Schließen Sie den Cradle-Motor an den „MA“-Port des BrickPi3 an. Schließen Sie den Kamerasensormotor an den „MC“-Anschluss an (dies ist der kleinere servoähnliche Motor). Auch wenn wir die Kamera nicht bewegen, möchten Sie vielleicht die Position der Kamera mit den Motoren anpassen.

Befestigen Sie die Raspberry Pi-Kamera

Befestigen Sie die Kamera mithilfe der LEGO Kamerahalterung. Die kleine schwarze Linse der Kamera sollte zwischen die beiden LEGO Balkenstützen passen. Befestigen Sie die Kamera mit etwas Isolierband an den LEGO-Stützen. Dies ist ein guter Zeitpunkt, um sicherzustellen, dass die Kamera so positioniert ist, dass sie den gesamten Zauberwürfel erfassen kann. Sie können ein Testbild mit dem Raspistill-Befehl machen

raspistill -o cam.jpg

Überprüfen Sie, ob der Würfel in der Mitte des Bildes gut zentriert ist.

Schritt 3: Bereiten Sie die Software vor

Sie können jede Version von Raspbian oder Raspbian for Robots verwenden, unserem benutzerdefinierten Image, das mit dem bereits installierten BrickPi3 geliefert wird. Wenn Sie eine Standardversion von Raspbian verwenden, können Sie die BrickPi3-Bibliotheken mit dem Befehl installieren

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

In diesem Schritt werden alle Bibliotheken installiert, die zum Ausführen des BrickPi3 auf Ihrem Raspbian-Image erforderlich sind. Überspringe diesen Schritt, wenn du Raspbian for Robots verwendest: Der BrickPi3 ist bereits installiert.

Installieren Sie abschließend alle Projektabhängigkeiten mit dem Befehl:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | bash

Für diesen Schritt muss dein BrickPi3 mit dem Internet verbunden sein. Es gibt eine Reihe von Bibliotheken, von denen das Projekt abhängt, darunter einige wichtige von Daniel Walton (@dwalton76) auf Github, die verwendet werden, um den Zauberwürfel zu lösen.

Schritt 4: Lösen Sie einen Zauberwürfel

Löse einen Zauberwürfel
Löse einen Zauberwürfel
Löse einen Zauberwürfel
Löse einen Zauberwürfel
Löse einen Zauberwürfel
Löse einen Zauberwürfel

Lege einen ungelösten Zauberwürfel in die Wiege. Führen Sie den Befehl aus

sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py

Der Roboter dreht den Würfel zu jeder Seite und die Kamera nimmt 6 Bilder auf, eines von jeder Seite des Würfels. Der Raspberry Pi ermittelt aus den sechs Bildern die Cube-Konfiguration. Die Cube-Konfiguration wird an die kociemba Python-Bibliothek übergeben, um eine effiziente Lösung zu finden. Schließlich führt der Roboter die Bewegungen aus, um den Zauberwürfel zu lösen!

Schritt 5: Der Quellcode

Den gesamten Quellcode für den BricKuber finden Sie in unserem Open-Source-Github-Repo hier.

Dieses Projekt verwendet die folgenden Softwarepakete, die durch den Befehl installiert werden

Empfohlen: