Talaan ng mga Nilalaman:
Video: Ang Cube ng Rubik na real-time na Blindfolded Solver Gamit ang Raspberry Pi at OpenCV: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
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
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:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Q-Bot - ang Open Source Rubik's Cube Solver: 7 Mga Hakbang (na may Mga Larawan)
Q-Bot - ang Open Source Rubik's Cube Solver: Isipin na mayroon kang isang scrambled Rubik's Cube, alam mo na ang puzzle ay bumubuo ng 80s na mayroon ang lahat ngunit wala talagang nakakaalam kung paano malutas, at nais mong ibalik ito sa orihinal na pattern. Sa kabutihang palad sa mga araw na ito napakadali upang makahanap ng paglutas ng tagubilin
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Basahin at Isulat Mula sa Serial Port Gamit ang Raspberry Pi Gamit ang Wemos: 5 Hakbang
Basahin at Isulat Mula sa Serial Port Gamit ang Raspberry Pi Gamit ang Wemos: Pakikipag-usap sa isang Raspberry Pi gamit ang isang Wemos D1 mini R2
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c