Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Detta är den andra versionen av Rubiks kubverktyg för lösningar i ögonbindel. Den första versionen utvecklades av javascript, du kan se projektet RubiksCubeBlindfolded1
Till skillnad från den föregående använder denna version OpenCV -biblioteket för att upptäcka färgerna och mata in ingångarna och ger bättre visualiseringsteknik.
Det största problemet i den här senaste versionen är visualisering av utdata, sekvensobjekten visas på den ritade kuben 1 åt gången. Eftersom kuben är en 3D -form är det svårt att visa alla sidor samtidigt. Se resultaten på min YouTube -kanal YouTube -video
Jag använder en kub utan klistermärke, detta kräver ett anpassat erkännande och de flesta öppen källkoder stöds inte. Jag använde denna öppen källkod som utvecklats av Kim Koomen som specificerar fasta områden på kameraramen för att upptäcka de korrekta färgerna på kubytans qbr -projekt
Steg 1: Komponenter som behövs
- Raspberry Pi
- webbkamera
eller så kan du använda din bärbara dator
Steg 2: Beroenden
- Python 3
- numpy bibliotek
- OpenCV -bibliotek
$ sudo apt-get install python3-opencv
RubiksBlindfolded package
$ pip3 installera RubiksBlindfolded
Steg 3: Förberedelser
Du måste kalibrera färgdetekteringen som ett försteg. HSV -färgkoderna varierar på grund av belysningen, kamerans kvalitet och upplösning och själva kubfärgerna. I mitt fall kombinerar jag vita och gula lampor för att få korrekta resultat.
Uppdatera funktionen get_color_name (hsv) på colordetection.py
Den ursprungliga källkoden använder kociemba -paketet för att lösa kuben, det löser sig genom att hitta de omvända stegen i alla krypteringar. I den här versionen använde jag mitt eget lösningspaket som heter RubiksBlindfolded som publicerades på PyPI. Se beskrivningen för att veta hur du använder den RubiksBlindfolded
Steg 4: Användning
Efter att du har installerat alla beroenden och ställt in din kamera är det här dags att köra blindfolded.py -skript
Först måste du skanna din kub i rätt riktning. Detta är kubstrukturen, ordningen för att skanna ansikten är inte viktig. Lägg märke till att dessa är standardfärgerna på kubytorna, du kan ändra dem genom att uppdatera notationsordlistan för skyltar med blindfolded.py
För att göra skanningen, tryck på mellanslagstangenten för att spara vyn och ESC -tangenten efter avslutad
För det andra kan du se lösningssekvenserna på konsolen och paritetskontrollen för att berätta om du behöver använda paritetsalgoritmen eller inte
För det tredje genereras en ny ram som visar 2 ritade kuber för kantsekvens och hörnsekvens. Du kan använda vänster- och högerpiltangenterna för att växla mellan sekvensobjekten och upp- och nedpiltangenterna för att växla mellan kant och hörn. den ljusgrå färgen representerar den aktuella sekvensen.
Du kan se färgerna på den aktuella bufferten som förändras dynamiskt med piltangenterna. Gråa färger representerar målet cubie, och rosa färg representerar byta ansikte
Källkod
github.com/mn-banjar/blindfolded2