Skip to content

Latest commit

 

History

History
117 lines (82 loc) · 6.76 KB

README.md

File metadata and controls

117 lines (82 loc) · 6.76 KB

Dokument Header Dokument Header

Programmiersprache Scratch Schulprojekt Note Mitwirkende Letzter Commit Lizens Veröffentlichung

📄 Inhaltsverzeichnis

📖 Einleitung

Das EV3 Rubik's Cube Solver Programm berechnet den Lösungsweg eines Zauberwürfels mithilfe eines Algorythmus. Dazu muss der Nutzer den Würfel manuell einscannen. Gelöst wird der Würfel mit zwei Motoren, die ihn aus Sicht des Roboters, um die x-Achse und die y-Achse rotierem, woraus sich alle weiteren Bewegungsmuster ergeben.

Das EV3 Rubik's Cube Randomizer arbeitet mit den gleichen Motor Funktionen, verwendet diese jedoch in einer zufälligen Reihenfolge, um den Würfel zu verdrehen.

💻 Hard-/Softwarevorraussetzungen

  • EV3 Clasroom als Entwicklungsumgebung

Download for Windows oder im Microsoft Store
Download für MacOS oder im App Store

  • LEGO Mindstorms EV3 Stein
    • Zwei Motoren
    • Einen Farbsensor
    • Zwei Tastsensoren
Die Belegung der Anschlüsse erflgt folgendermaßen:
Port Belegung
A Motor zum Drehen des Würfels
B Motor zum Kippen des Würfels
C -
D -
-
1 Farbsensor
2 -
3 Tastsensor zum Wiederrufen der eingabe
4 Tastsensor zum Bestätigen der Eingsbe
  • Motor-A so konfigurriert sein, dass durch eine Drehung um 90°, der Würfel um eine Seite entlang der y-Achse rotiert wird.
  • Motor-B muss so konfigurriert sein, dass durch eine Drehung um 180° im Uhrzeigersinn aus der Ausgangsposition der Würfel antlang der x-Achse gekippt wird.

Important

Wenn ihr Roboter eine andere Übersetzung verwendet, kann es erforderlich sein, die Orginalwerte anzupassen. Was sie anpassen müssen, erfahren sie hier.

🛠️ Installation

Es gibt mehrere Optionen, um das Programm zu erhalten und auszuführen.

  • Dierekter Download des Repositories

  • Klonen des Repositories (setzt die Installation von git vorraus)

    cd{gewünschter-Pfad}
    git clone https://github.com/RedLion8399/EV3_rubiks_cube-solver.git
  • Herrunterladen des Programms auf den EV3 Stein

    • Ablegen der Projekt-Datei über den Datei Explorer - setzt Verbindung per Kabel vorraus
    • Download über die EV3 Clasroom App

▶️ Anwendung

  1. Starten des Programms
  2. Einscannen des Zauberwürfels gemäß der Anweisungen auf dem Display
    1. Ausrichten des Würfels
    2. positionieren des Farbsensors über der Kachel
    3. Betätigen des Tastsensors zum Bestätigen
    4. Bwginnend in der hinteren linken Ecke, nach rechts fortfahren. Danach die jewails daruntergelegene reihe einscannen.
    5. Die einzelnen Seiten in der vorgegebenen Reiehnfolge einscannen
  3. Stellen des Zauberwürfels auf den Drehteller. Aus der Perspektive des Steins befindet sich der rote Mittelpunkt vorne und der weiße Mittelpunkt oben. Betätigen des Tastsensors zum Bestätigen
  4. Auf den Abschluss des Programms warten

Important

Wenn sie das Rubik's Cube Randomizer Programm verwenden, fällt der 2. Schritt weg. Außerdem ist es beim 3. Schritt nicht erforderlich, den Würfel speziell auszurichten.

📚 Weiterführende Dokumenation

Falls sie weitergehende Informationen zu diesem Projekt haben möchten, empfielt es sich, das Wiki dieses Repositories aufzusuchen.

Aufgrund der Komplexität des Programms ist es nicht möglich, den gesamten Funktionsumfang hier abzubilden. Dazu existiert ein Eintrag im Wiki.

Bei der Ausführung des Programms können Fehler auftreten. Einige davon sind auf irritierende Scratch Mechaniken zurückzuführen. diese sind hier dokumentiert.

Der Algorythmus zur Lösung dieses Projekts ist nicht optimal und sehr zeitaufwendig, jedoch nicht möglich, anders umzusetzen (siehe Bugs- und Probleme) dokumentiert.
Dieser und weitere Algorythmen sind ebenfalls im Wiki zu finden.

Der Hintergrund und die gesamte Historie dieses Projekts sind hier genauer erläutert.

👏 Danksagung

Wir möchten uns außerdem bei unserer Informatik Lehrerin Frau Sina bedanken, die uns bei der Umsetzung sehr unterstützt hat und für die zahllosen Prbleme stets versucht hat eine Lösung zu finden.


Einige Teile der Hardware stammen nicht initial von uns, sondern sind von einem fertigen Projekt inspirriert oder daraus übernommen. Der MindCub3r ist eine großartige Vorlage, die zudem besser funktioniert, als usere Version, was teils darauf zurückuführen ist, dass uns weiniger Bauteile zur Verfügung stehen und wir eine andere Programmiersprache verwendet haben.

Die Programmierung ist jedoch vollkommen eigenständig.