Talaan ng mga Nilalaman:

Ang Cube ng Rubik na real-time na Blindfolded Solver Gamit ang Raspberry Pi at OpenCV: 4 na Hakbang
Ang Cube ng Rubik na real-time na Blindfolded Solver Gamit ang Raspberry Pi at OpenCV: 4 na Hakbang

Video: Ang Cube ng Rubik na real-time na Blindfolded Solver Gamit ang Raspberry Pi at OpenCV: 4 na Hakbang

Video: Ang Cube ng Rubik na real-time na Blindfolded Solver Gamit ang Raspberry Pi at OpenCV: 4 na Hakbang
Video: As a fan of Rubik's Cube I loved this part of the movie 🤗 2024, Nobyembre
Anonim

Ito ang ika-2 bersyon ng tool ng cube ng Rubik na ginawa para sa paglutas ng naka-blindfold. Ang ika-1 na bersyon ay binuo ng javascript, makikita mo ang proyekto na RubiksCubeBlindfolded1

Hindi tulad ng nakaraang, ang bersyon na ito ay gumagamit ng OpenCV library upang makita ang mga kulay at ipasok ang mga input, at nagbibigay ng mas mahusay na diskarte sa visualization.

Ang pinakamalaking isyu sa pinakabagong bersyon na ito ay ang pagpapakita ng mga output, ang mga item ng pagkakasunud-sunod ay ipinapakita sa iginuhit na cube 1 nang paisa-isa. Dahil ang kubo ay isang hugis ng 3D, mahirap ipakita ang lahat ng mga panig nang sabay. Tingnan ang mga resulta sa aking video sa YouTube channel sa YouTube

Gumagamit ako ng isang sticker na walang kubo, nangangailangan ito ng isang pasadyang pagkilala at ang pinaka-bukas na mga source code ay hindi suportado. Ginamit ko ang bukas na mapagkukunang ito na binuo ni Kim Koomen na tumutukoy sa mga nakapirming lugar sa frame ng camera upang makita ang tamang mga kulay ng proyekto ng cube mukha qbr

Hakbang 1: Kailangan ng Mga Bahagi

  • Raspberry Pi
  • Webcam

o maaari mong gamitin ang iyong laptop

Hakbang 2: Mga Depende

  • Python 3
  • numpy library
  • OpenCV library

$ sudo apt-get install python3-opencv

Pakete ng RubiksBlffolded

$ pip3 i-install ang RubiksBlindfolded

Hakbang 3: Paghahanda

Kailangan mong i-calibrate ang pagtuklas ng kulay bilang isang paunang hakbang. Ang mga code ng kulay ng HSV ay magkakaiba-iba dahil sa pag-iilaw, kalidad at resolusyon ng camera, at mga kulay ng kubo mismo. Sa aking kaso, pinagsasama ko ang puti at dilaw na ilaw upang makakuha ng tamang mga resulta.

I-update ang pagpapaandar ng get_color_name (hsv) sa colordetection.py

Ang orihinal na source code ay gumagamit ng kociemba package upang malutas ang kubo, nalulutas nito sa pamamagitan ng paghahanap ng mga pabalik na hakbang ng anumang pag-aagawan. Sa bersyon na ito, ginamit ko ang aking sariling package sa paglutas na pinangalanang RubiksBlindfolded na na-publish sa PyPI. Tingnan ang paglalarawan upang malaman kung paano gamitin ito RubiksBlindfolded

Hakbang 4: Paggamit

Paggamit
Paggamit
Paggamit
Paggamit

Matapos mai-install ang lahat ng mga dependency at itakda ang iyong camera, ito ang oras upang magpatakbo ng blindfolded.py script

Una, kailangan mong i-scan ang iyong kubo sa tamang mga orientation. Ito ang istraktura ng kubo, ang pagkakasunud-sunod ng pag-scan ng mga mukha ay hindi mahalaga. Pansinin na ito ang mga default na kulay ng mga mukha ng kubo, maaari mong palitan ang mga ito sa pamamagitan ng pag-update ng diksyunaryo ng notasyon sa blindfolded.py script

Upang magawa ang pindutin ang pindutan ng puwang upang mai-save ang view at ESC key matapos ang pagtatapos

Pangalawa, maaari mong makita ang mga pagkakasunud-sunod ng solusyon sa console, at suriin ang pagkakapareho upang sabihin sa iyo kung kailangan mong ilapat ang parity algorithm o hindi

Pangatlo, mabubuo ang isang bagong frame na nagpapakita ng 2 iginuhit na mga cube para sa pagkakasunud-sunod ng gilid at pagkakasunud-sunod ng sulok. Maaari mong gamitin ang kaliwa at kanang mga arrow key para sa paglipat sa pagitan ng mga item ng pagkakasunud-sunod, at pataas at pababang mga arrow key para sa paglipat sa pagitan ng gilid at sulok. ang kulay-abong kulay-abo na kulay ay kumakatawan sa kasalukuyang pagkakasunud-sunod.

Maaari mong makita ang mga kulay ng kasalukuyang buffer na nagbabago nang pabago-bago ng mga arrow key. Ang mga kulay-abong kulay ay kumakatawan sa target na cubie, at ang kulay rosas na kulay ay kumakatawan sa pagpapalit ng mukha

Source code

github.com/mn-banjar/blindfolded2

Inirerekumendang: