Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Dit is de 2e versie van Rubik's kubustool gemaakt om geblinddoekt op te lossen. De 1e versie is ontwikkeld door javascript, u kunt het project RubiksCubeBlindfolded zien1
In tegenstelling tot de vorige, gebruikt deze versie de OpenCV-bibliotheek om de kleuren te detecteren en de invoer in te voeren, en biedt een betere visualisatietechniek.
Het grootste probleem in deze nieuwste versie is de visualisatie van outputs, de sequentie-items worden op de getekende kubus 1 per keer weergegeven. Omdat de kubus een 3D-vorm is, is het moeilijk om alle zijden tegelijk weer te geven. Bekijk de resultaten op mijn YouTube-kanaal YouTube-video
Ik gebruik een stickerloze kubus, dit heeft een aangepaste herkenning nodig en de meeste open source-codes worden niet ondersteund. Ik gebruikte deze open source, ontwikkeld door Kim Koomen, die vaste gebieden op het cameraframe specificeert om de juiste kleuren van de kubusvlakken qbr-project te detecteren
Stap 1: Benodigde onderdelen
- Raspberry Pi
- webcam
of u kunt uw laptop gebruiken
Stap 2: Afhankelijkheden
- Python 3
- numpy bibliotheek
- OpenCV-bibliotheek
$ sudo apt-get install python3-opencv
RubiksGeblinddoekt pakket
$ pip3 installeer RubiksBlindfolded
Stap 3: Voorbereidingen
U moet de kleurdetectie vooraf kalibreren. De HSV-kleurcodes variëren vanwege de belichting, de camerakwaliteit en resolutie en de kubuskleuren zelf. In mijn geval combineer ik witte en gele lichten om correcte resultaten te krijgen.
Update get_color_name(hsv) functie op colordetection.py
De originele broncode gebruikt het kociemba-pakket om de kubus op te lossen, het wordt opgelost door de omgekeerde stappen van elke scramble te vinden. In deze versie gebruikte ik mijn eigen oplossingspakket genaamd RubiksBlindfolded dat op PyPI werd gepubliceerd. Zie de beschrijving om te weten hoe je het moet gebruiken RubiksBlindfolded
Stap 4: Gebruik:
Nadat je alle afhankelijkheden hebt geïnstalleerd en je camera hebt ingesteld, is dit het moment om het blindfolded.py-script uit te voeren
Eerst moet je je kubus in de juiste richting scannen. Dit is de kubusstructuur, de volgorde van het scannen van de vlakken is niet belangrijk. Merk op dat dit de standaardkleuren zijn van de kubusvlakken, u kunt ze wijzigen door het notatiewoordenboek bij te werken in het blindfolded.py-script
Om de scan te maken, drukt u op de spatiebalk om de weergave en de ESC-toets op te slaan nadat u klaar bent
Ten tweede kunt u de oplossingsreeksen op de console zien en de pariteitscontrole om u te vertellen of u het pariteitsalgoritme moet toepassen of niet
Ten derde wordt een nieuw frame gegenereerd dat 2 getekende kubussen weergeeft voor de volgorde van de randen en de volgorde van de hoeken. U kunt de linker- en rechterpijltoetsen gebruiken om tussen de volgorde-items te schakelen, en de pijltoetsen omhoog en omlaag om te schakelen tussen de rand en de hoek. de lichtgrijze kleur vertegenwoordigt de huidige reeks.
U kunt de kleuren van de huidige buffer zien die dynamisch veranderen met de pijltjestoetsen. Grijze kleuren vertegenwoordigen het doelkubusje en roze kleur staat voor het wisselende gezicht
Broncode
github.com/mn-banjar/blindfolded2