Inhoudsopgave:
Video: Realtime Rubik's Cube geblinddoekte oplosser met Raspberry Pi en OpenCV - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
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
Aanbevolen:
Realtime apparaatherkenning met behulp van EM Footprints: 6 stappen
Realtime apparaatherkenning met behulp van EM-voetafdrukken: dit apparaat is bedoeld om verschillende elektronische apparaten te classificeren op basis van hun EM-signalen. Voor verschillende apparaten hebben ze verschillende EM-signalen die erdoor worden uitgezonden. We hebben een IoT-oplossing ontwikkeld om de elektronische apparaten te identificeren met behulp van Particle
MicroPython-programma: gegevens over coronavirusziekte (COVID-19) in realtime bijwerken: 10 stappen (met afbeeldingen)
MicroPython-programma: gegevens over coronavirusziekte (COVID-19) in realtime bijwerken: in de afgelopen weken heeft het aantal bevestigde gevallen van coronavirusziekte (COVID 19) wereldwijd de 100.000 overschreden, en de wereldgezondheidsorganisatie (WHO) heeft de nieuwe uitbraak van coronavirus-pneumonie om een wereldwijde pandemie te zijn. Ik was heel
Live Covid19-tracker met ESP8266 en OLED - Realtime Covid19-dashboard: 4 stappen
Live Covid19-tracker met ESP8266 en OLED | Realtime Covid19-dashboard: bezoek de Techtronic Harsh-website: http://techtronicharsh.com Overal is er een enorme uitbraak van het nieuwe corona-virus (COVID19). Het werd noodzakelijk om het huidige scenario van COVID-19 in de wereld in de gaten te houden. Dus, thuis zijn, was dit de p
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime-interface maakt in ARDUINO met PROCESSING !!!!): 5 stappen (met afbeeldingen)
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime interface maakt in ARDUINO met PROCESSING !!!!): Een SCARA-robot is een zeer populaire machine in de industriewereld. De naam staat voor zowel Selective Compliant Assembly Robot Arm als Selective Compliant Articulated Robot Arm. Het is in feite een robot met drie vrijheidsgraden, de eerste twee displ
Realtime gebeurtenismeldingen met NodeMCU (Arduino), Google Firebase en Laravel: 4 stappen (met afbeeldingen)
Realtime gebeurtenismeldingen met NodeMCU (Arduino), Google Firebase en Laravel: heb je ooit een melding willen ontvangen wanneer er een actie op je website wordt uitgevoerd, maar e-mail is niet de juiste keuze? Wil je bij elke verkoop een geluid of een belletje horen? Of er is direct uw aandacht nodig vanwege een calamiteit