Inhaltsverzeichnis:

Real-time Rubik's Cube Blindfolded Solver mit Raspberry Pi und OpenCV - Gunook
Real-time Rubik's Cube Blindfolded Solver mit Raspberry Pi und OpenCV - Gunook

Video: Real-time Rubik's Cube Blindfolded Solver mit Raspberry Pi und OpenCV - Gunook

Video: Real-time Rubik's Cube Blindfolded Solver mit Raspberry Pi und OpenCV - Gunook
Video: Working of a stepper motor using Raspberry-pi 2024, November
Anonim

Dies ist die zweite Version von Rubiks Würfelwerkzeug, das zum Lösen mit verbundenen Augen entwickelt wurde. Die 1. Version wurde von Javascript entwickelt, Sie können das Projekt RubiksCubeBlindfolded1 sehen

Im Gegensatz zur vorherigen Version verwendet diese Version die OpenCV-Bibliothek, um die Farben zu erkennen und die Eingaben einzugeben, und bietet eine bessere Visualisierungstechnik.

Das größte Problem in dieser neuesten Version ist die Visualisierung der Ausgaben, die Sequenzelemente werden jeweils 1 auf dem gezeichneten Würfel angezeigt. Da der Würfel eine 3D-Form ist, ist es schwierig, alle Seiten gleichzeitig anzuzeigen. Sehen Sie die Ergebnisse auf meinem YouTube-Kanal YouTube-Video

Ich verwende einen aufkleberlosen Würfel, dies erfordert eine benutzerdefinierte Erkennung und die meisten Open-Source-Codes werden nicht unterstützt. Ich habe diese von Kim Koomen entwickelte Open Source verwendet, die feste Bereiche auf dem Kamerarahmen festlegt, um die richtigen Farben der Würfelflächen zu erkennen qbr project

Schritt 1: Benötigte Komponenten

  • Himbeer-Pi
  • Webcam

oder du kannst deinen Laptop benutzen

Schritt 2: Abhängigkeiten

  • Python 3
  • numpy Bibliothek
  • OpenCV-Bibliothek

$ sudo apt-get install python3-opencv

RubiksPaket mit verbundenen Augen

$ pip3 installieren RubiksBlindfolded

Schritt 3: Vorbereitungen

Vorab müssen Sie die Farberkennung kalibrieren. Die HSV-Farbcodes variieren aufgrund der Beleuchtung, der Kameraqualität und -auflösung sowie der Würfelfarben selbst. In meinem Fall kombiniere ich weißes und gelbes Licht, um korrekte Ergebnisse zu erzielen.

Aktualisieren Sie die Funktion get_color_name(hsv) auf colordetection.py

Der ursprüngliche Quellcode verwendet das kociemba-Paket, um den Cube zu lösen. Er löst die umgekehrten Schritte jedes Scrambles. In dieser Version habe ich mein eigenes Lösungspaket namens RubiksBlindfolded verwendet, das auf PyPI veröffentlicht wurde. Sehen Sie sich die Beschreibung an, um zu erfahren, wie Sie es verwenden RubiksBlindfolded

Schritt 4: Verwendung

Verwendungszweck
Verwendungszweck
Verwendungszweck
Verwendungszweck

Nachdem Sie alle Abhängigkeiten installiert und Ihre Kamera eingestellt haben, ist dies die Zeit, das blindfolded.py-Skript auszuführen

Zuerst müssen Sie Ihren Würfel in der richtigen Ausrichtung scannen. Dies ist die Würfelstruktur, die Reihenfolge des Scannens der Gesichter ist nicht wichtig. Beachten Sie, dass dies die Standardfarben der Würfelflächen sind. Sie können sie ändern, indem Sie das Notationswörterbuch im blindfolded.py-Skript aktualisieren

Um den Scan durchzuführen, drücken Sie die Leertaste, um die Ansicht zu speichern, und die ESC-Taste, wenn Sie fertig sind

Zweitens sehen Sie die Lösungssequenzen auf der Konsole und die Paritätsprüfung, um Ihnen mitzuteilen, ob Sie den Paritätsalgorithmus anwenden müssen oder nicht

Drittens wird ein neuer Rahmen generiert, der 2 gezeichnete Würfel für Kantenfolge und Eckenfolge anzeigt. Sie können die Pfeiltasten nach links und nach rechts verwenden, um zwischen den Sequenzelementen zu wechseln, und die Pfeiltasten nach oben und unten zum Wechseln zwischen Kante und Ecke. die hellgraue Farbe repräsentiert die aktuelle Sequenz.

Sie können die Farben des aktuellen Puffers sehen, die sich dynamisch mit den Pfeiltasten ändern. Graue Farben stellen den Zielwürfel dar und rosafarbene Farben stehen für das wechselnde Gesicht

Quellcode

github.com/mn-banjar/blindfolded2

Empfohlen: