Мазмұны:
Бейне: Raspberry Pi мен OpenCV көмегімен нақты уақыттағы Рубик кубының көзін байлаған шешуші: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Бұл көзді байлап шешуге арналған кубик Рубик құралының 2 -ші нұсқасы. Бірінші нұсқа javascript арқылы жасалған, сіз RubiksCubeBlindfolded1 жобасын көре аласыз
Бұрынғысынан айырмашылығы, бұл нұсқа түстерді анықтау және кірістерді енгізу үшін OpenCV кітапханасын пайдаланады және визуалды жақсарту техникасын ұсынады.
Бұл жаңа нұсқадағы ең үлкен мәселе - бұл шығуды визуализациялау, реттілік элементтері сызылған текшеде бір уақытта көрсетіледі. Текше 3D пішінді болғандықтан, барлық жағын бір уақытта көрсету қиын. Нәтижелерді YouTube -тегі YouTube каналымдағы бейнені қараңыз
Мен жапсырмасыз текшені қолданамын, бұл арнайы тануды қажет етеді және көптеген ашық бастапқы кодтарға қолдау көрсетілмейді. Мен Kim Koomen әзірлеген ашық көзді қолдандым, ол qbr жобасының текшесінің дұрыс түстерін анықтау үшін камера жақтауында бекітілген аймақтарды көрсетеді.
1 -қадам: Қажетті компоненттер
- Raspberry Pi
- веб-камера
немесе ноутбукты пайдалануға болады
2 -қадам: тәуелділіктер
- Python 3
- numpy кітапханасы
- OpenCV кітапханасы
$ sudo apt-get install python3-opencv
RubiksBlindfolded пакеті
$ pip3 RubiksBlindfolded орнатыңыз
3 -қадам: дайындық
Түсті анықтауды бастапқы қадам ретінде калибрлеу қажет. HSV түс кодтары жарықтандыруға, камераның сапасы мен ажыратымдылығына және текше түстеріне байланысты өзгереді. Менің жағдайда дұрыс нәтиже алу үшін ақ және сары шамдарды біріктіремін.
Colordetection.py сайтындағы get_color_name (hsv) функциясын жаңартыңыз
Бастапқы бастапқы код текшені шешу үшін kociemba пакетін қолданады, ол кез келген скрамлдың кері қадамдарын табу арқылы шешіледі. Бұл нұсқада мен PyPI -де жарияланған RubiksBlindfolded деп аталатын жеке шешім пакетін қолдандым. Оны қалай пайдалану керектігін білу үшін сипаттаманы қараңыз
4 -қадам: Қолдану
Барлық тәуелділіктерді орнатып, камераны орнатқаннан кейін, бұл blindfolded.py сценарийін іске қосатын уақыт
Алдымен текшені дұрыс бағытта сканерлеу қажет. Бұл текше құрылымы, беттерді сканерлеу тәртібі маңызды емес. Бұл текше беттерінің әдепкі түстері екеніне назар аударыңыз, оларды blindfolded.py сценарийіндегі белгілер сөздігін жаңарту арқылы өзгертуге болады.
Сканерлеу үшін бос орын пернесін басып, көріністі сақтаңыз және аяқтағаннан кейін ESC пернесін басыңыз
Екіншіден, сіз консольдегі шешімдер тізбегін көре аласыз және паритет алгоритмін қолдану қажет пе, жоқ па, соны тексереді.
Үшіншіден, жиектілік пен бұрыштық реттілік үшін 2 сызылған текшені көрсететін жаңа кадр жасалады. Кезек элементтері арасында ауысу үшін сол және оң жақ көрсеткі пернелерін, ал жиек пен бұрыш арасында ауысу үшін жоғары және төмен көрсеткі пернелерін пайдалануға болады. ақшыл сұр түс ағымдағы ретті білдіреді.
Көрсеткі пернелер көмегімен динамикалық түрде өзгеретін ағымдағы буфердің түстерін көруге болады. Сұр түстер мақсатты текшені, ал қызғылт түс - ауыстырылатын бетті білдіреді
Бастапқы код
github.com/mn-banjar/blindfolded2
Ұсынылған:
Нақты уақыттағы судың температурасы, өткізгіштігі мен су деңгейін өлшеуіш: 6 қадам (суреттермен)
Нақты уақыттағы ұңғымадағы судың температурасы, өткізгіштігі мен су деңгейін өлшеуіш: Бұл нұсқаулықта температураны, электр өткізгіштігін (ЕС) және қазылған ұңғымалардағы су деңгейін бақылауға арналған арзан, нақты уақыттағы су есептегішін құру әдісі сипатталған. Есептегіш қазылған ұңғыманың ішіне ілінуге, судың температурасын өлшеуге арналған, EC және
ESP8266 мен OLED қолданатын Live Covid19 Tracker - Нақты уақыттағы Covid19 бақылау тақтасы: 4 қадам
ESP8266 мен OLED қолданатын Live Covid19 Tracker | Нақты уақыттағы Covid19 бақылау тақтасы: Techtronic Harsh веб -сайтына кіріңіз: http: //techtronicharsh.com Барлық жерде жаңа Корона вирусының (COVID19) өршуі байқалады. Әлемдегі COVID-19 сценарийін қадағалап отыру қажет болды, сондықтан үйде отырып, бұл
DS1307 және DS3231 нақты уақыттағы модульдерді Arduino көмегімен пайдалану: 3 қадам
DS1307 және DS3231 нақты уақыттағы модульдерді Arduino көмегімен пайдалану: Біз әр түрлі көздерден Arduino көмегімен DS1307 және DS3231 нақты уақыт модульдерін пайдалану туралы сұраныстарды алуды жалғастырамыз-сондықтан бұл оларды пайдалану туралы екі бөліктен тұратын оқулықтың біріншісі. Бұл Arduino оқулығында бізде нақты уақыттағы екі модуль бар
DS1307 нақты уақыттағы RTC сағаты Arduino көмегімен: 4 қадам
DS1307 Arduino бар нақты уақыт сағаты: Бұл оқулықта біз нақты уақыт сағаты (RTC) туралы және Arduino & IC DS1307 нақты уақыт сағаты уақыт құралы ретінде біріктірілген. Нақты уақыт сағаты (RTC) уақытты бақылауға және күнтізбені жүргізуге арналған. RTC пайдалану үшін
NodeMCU (Arduino), Google Firebase және Laravel көмегімен нақты уақыттағы оқиғалар туралы хабарландырулар: 4 қадам (суреттермен)
NodeMCU (Arduino), Google Firebase және Laravel көмегімен оқиғалар туралы нақты уақыттағы хабарландырулар: Сіздің веб -сайтыңызда әрекет жасалған кезде, бірақ электрондық пошта сәйкес келмеген кезде сізге хабарландыру алғыңыз келді ме? Сіз сатылым жасаған сайын дыбысты немесе қоңырауды естігіңіз келе ме? Немесе пайда болу себебінен сізге дереу назар аудару қажет