Innehållsförteckning:

Realtids Rubiks kub med ögonbindellösare med Raspberry Pi och OpenCV: 4 steg
Realtids Rubiks kub med ögonbindellösare med Raspberry Pi och OpenCV: 4 steg

Video: Realtids Rubiks kub med ögonbindellösare med Raspberry Pi och OpenCV: 4 steg

Video: Realtids Rubiks kub med ögonbindellösare med Raspberry Pi och OpenCV: 4 steg
Video: Проверь свою зубную пасту #Shorts 2024, Juli
Anonim

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

Användande
Användande
Användande
Användande

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

Rekommenderad: