Turinys:

Realaus laiko Rubiko kubo sprendimas užrištomis akimis naudojant „Raspberry Pi“ir „OpenCV“: 4 žingsniai
Realaus laiko Rubiko kubo sprendimas užrištomis akimis naudojant „Raspberry Pi“ir „OpenCV“: 4 žingsniai

Video: Realaus laiko Rubiko kubo sprendimas užrištomis akimis naudojant „Raspberry Pi“ir „OpenCV“: 4 žingsniai

Video: Realaus laiko Rubiko kubo sprendimas užrištomis akimis naudojant „Raspberry Pi“ir „OpenCV“: 4 žingsniai
Video: Greitesnis Rubiko kubo rinkimas [LT] [II dalis] 2024, Lapkritis
Anonim

Tai yra antroji Rubiko kubo įrankio versija, skirta spręsti užrištomis akimis. Pirmąją versiją sukūrė „javascript“, galite pamatyti projektą „RubiksCubeBlindfolded1“

Skirtingai nuo ankstesnės, ši versija naudoja „OpenCV“biblioteką, kad aptiktų spalvas ir įvestų įvestis, ir suteikia geresnę vizualizacijos techniką.

Didžiausia šios naujausios versijos problema yra išėjimų vizualizacija, sekos elementai vienu metu rodomi ant nupiešto kubo. Kadangi kubas yra 3D formos, sunku rodyti visas puses vienu metu. Žiūrėkite rezultatus mano „YouTube“kanalo „YouTube“vaizdo įraše

Aš naudoju kubelį be lipdukų, tam reikia pasirinktinio atpažinimo ir dauguma atvirojo kodo kodų nepalaikomi. Aš naudojau šį atvirą kodą, kurį sukūrė Kim Koomen, kuris nurodo fiksuotas kameros rėmo sritis, kad aptiktų teisingas kubo veidų spalvas qbr projektas

1 žingsnis: reikalingi komponentai

  • Raspberry Pi
  • internetinė kamera

arba galite naudoti nešiojamąjį kompiuterį

2 žingsnis: Priklausomybės

  • Python 3
  • numpy biblioteka
  • „OpenCV“biblioteka

$ sudo apt-get install python3-opencv

„Rubiks“pakuotė užrištomis akimis

$ pip3 įdiegti „RubiksBlindfolded“

3 žingsnis: Paruošimas

Kaip išankstinį veiksmą turite sukalibruoti spalvų aptikimą. HSV spalvų kodai skiriasi dėl apšvietimo, fotoaparato kokybės ir skiriamosios gebos bei pačios kubo spalvos. Mano atveju derinu baltas ir geltonas lemputes, kad gaučiau teisingus rezultatus.

Atnaujinkite funkciją get_color_name (hsv) svetainėje colordetection.py

Pirminis šaltinio kodas naudoja „kociemba“paketą, kad išspręstų kubą. Šioje versijoje naudojau savo sprendimo paketą „RubiksBlindfolded“, paskelbtą „PyPI“. Žiūrėkite aprašymą, kad sužinotumėte, kaip jį naudoti „RubiksBlindfolded“

4 žingsnis: naudojimas

Naudojimas
Naudojimas
Naudojimas
Naudojimas

Įdiegę visas priklausomybes ir nustatę fotoaparatą, atėjo laikas paleisti scenarijų „blinddolded.py“

Pirmiausia turite nuskaityti kubą teisinga kryptimi. Tai yra kubo struktūra, veidų nuskaitymo tvarka nėra svarbi. Atminkite, kad tai yra numatytosios kubo veidų spalvos, jas galite pakeisti atnaujindami užrašų žodyną užrištomis akimis.py

Norėdami nuskaityti, paspauskite tarpo klavišą, kad išsaugotumėte rodinį, ir ESC klavišą, kai baigsite

Antra, konsolėje galite pamatyti sprendimų sekas ir pariteto patikrinimą, kad sužinotumėte, ar reikia taikyti pariteto algoritmą, ar ne

Trečia, bus sukurtas naujas rėmelis, kuriame bus parodyti 2 nubrėžti kubai kraštinei ir kampinei sekoms. Norėdami perjungti sekos elementus, galite naudoti rodyklių kairėn ir dešinėn klavišus, o rodyklių aukštyn ir žemyn klavišus - perjungti iš krašto į kampą. šviesiai pilka spalva rodo esamą seką.

Rodyklių klavišais galite pamatyti dinamiškai besikeičiančio buferio spalvas. Pilkos spalvos žymi tikslinį kubą, o rožinė spalva - keičiantį veidą

Pirminis kodas

github.com/mn-banjar/blindfolded2

Rekomenduojamas: