INHOUDSOPGAWE:

Real-time Rubik's Cube Geblinddoekoplosser met behulp van Raspberry Pi en OpenCV: 4 stappe
Real-time Rubik's Cube Geblinddoekoplosser met behulp van Raspberry Pi en OpenCV: 4 stappe

Video: Real-time Rubik's Cube Geblinddoekoplosser met behulp van Raspberry Pi en OpenCV: 4 stappe

Video: Real-time Rubik's Cube Geblinddoekoplosser met behulp van Raspberry Pi en OpenCV: 4 stappe
Video: real time CUBE WITH ME (2 hour cubing WITH MUSIC) 2024, November
Anonim

Dit is die 2de weergawe van Rubik se kubusgereedskap wat gemaak is vir die oplossing van geblinddoek. Die eerste weergawe is ontwikkel deur javascript, u kan die projek RubiksCubeBlindfolded1 sien

Anders as die vorige, gebruik hierdie weergawe OpenCV -biblioteek om die kleure op te spoor en die insette in te voer, en bied 'n beter visualiseringstegniek.

Die grootste probleem in hierdie nuutste weergawe is die visualisering van uitsette, die volgordeitems word op 'n slag op die getekende kubus 1 vertoon. Aangesien die kubus 'n 3D -vorm het, is dit moeilik om alle kante op dieselfde tyd te vertoon. Sien die resultate op my YouTube -kanaal YouTube -video

Ek gebruik 'n plakkerlose kubus, dit benodig 'n persoonlike herkenning en die meeste open source kodes word nie ondersteun nie. Ek het hierdie open source gebruik, ontwikkel deur Kim Koomen, wat vaste gebiede op die kameraram spesifiseer om die korrekte kleure van die kubusgesigte qbr -projek op te spoor

Stap 1: Komponente benodig

  • Framboos Pi
  • webkamera

of u kan u skootrekenaar gebruik

Stap 2: Afhanklikheid

  • Python 3
  • lomp biblioteek
  • OpenCV -biblioteek

$ sudo apt-get install python3-opencv

Rubiks -geblinddode pakket

$ pip3 installeer RubiksBlindfolded

Stap 3: Voorbereidings

U moet die kleuropsporing as 'n voorstap kalibreer. Die HSV -kleurkodes wissel vanweë die beligting, die kwaliteit en resolusie van die kamera en die kleure self. In my geval kombineer ek wit en geel ligte om die regte resultate te kry.

Dateer die funksie get_color_name (hsv) op colordetection.py op

Die oorspronklike bronkode gebruik 'n kociemba -pakket om die kubus op te los; dit word opgelos deur die omgekeerde stappe van enige skommel te vind. In hierdie weergawe gebruik ek my eie oplossingspakket met die naam RubiksBlindfolded wat op PyPI gepubliseer is. Sien die beskrywing om te weet hoe u dit kan gebruik RubiksBlindfolded

Stap 4: Gebruik

Gebruik
Gebruik
Gebruik
Gebruik

Nadat u al die afhanklikhede geïnstalleer het en u kamera ingestel het, is dit tyd om 'n blindfolded.py -script uit te voer

Eerstens moet u u kubus in die regte rigtings skandeer. Dit is die kubusstruktuur, die volgorde van skandering van die gesigte is nie belangrik nie. Let op dat dit die standaardkleure van die kubusvlakke is; u kan dit verander deur die notasiewoordeboek op die blindfolded.py -skript op te dateer

Om die skandering te maak, druk die spasie -sleutel om die vertoning en ESC -sleutel na die voltooiing te stoor

Tweedens kan u die oplossingsvolgorde op die konsole sien, en die pariteitkontrole om u te vertel of u die pariteitsalgoritme moet toepas of nie

Derdens sal 'n nuwe raam gegenereer word wat 2 getekende blokkies vir randvolgorde en hoekvolgorde vertoon. U kan die pyltjie links en regs gebruik om tussen die volgorde -items te skakel, en die pyltjie -op -en -af -pyltjies om tussen die rand en hoek te wissel. die liggrys kleur verteenwoordig die huidige volgorde.

U kan die kleure van die huidige buffer sien wat dinamies verander deur pyltjie sleutels. Grys kleure verteenwoordig die teikenkubie, en pienk kleur verteenwoordig die omruilende gesig

Bronkode

github.com/mn-banjar/blindfolded2

Aanbeveel: