Мазмуну:

Реалдуу убакытта Рубиктин кубу Raspberry Pi жана OpenCVди колдонуп, көзүн байлаган чечүүчү: 4 кадам
Реалдуу убакытта Рубиктин кубу Raspberry Pi жана OpenCVди колдонуп, көзүн байлаган чечүүчү: 4 кадам

Video: Реалдуу убакытта Рубиктин кубу Raspberry Pi жана OpenCVди колдонуп, көзүн байлаган чечүүчү: 4 кадам

Video: Реалдуу убакытта Рубиктин кубу Raspberry Pi жана OpenCVди колдонуп, көзүн байлаган чечүүчү: 4 кадам
Video: Ойлонордон мурда бул ВИДЕОНУ КӨРҮҢҮЗ! 2024, Ноябрь
Anonim

Бул Рубиктин куб куралынын көзүн байлап чечүү үчүн жасалган 2 -версиясы. 1 -версия javascript тарабынан иштелип чыккан, сиз RubiksCubeBlindfolded1 долбоорун көрө аласыз

Мурункудан айырмаланып, бул версия түстөрдү аныктоо жана киргизүү үчүн OpenCV китепканасын колдонот жана визуалдаштыруу техникасын жакшыртат.

Бул жаңы версиянын эң чоң көйгөйү - бул чыгуулардын визуализациясы, ырааттуулук элементтери тартылган куб 1де бир убакта көрсөтүлөт. Куб 3D форматында болгондуктан, бардык тараптарды бир убакта көрсөтүү кыйын. Жыйынтыгын менин YouTube каналымдагы YouTube видеосунан көрүңүз

Мен чаптамасыз кубду колдонуп жатам, бул ыңгайлаштырылган таанууну талап кылат жана көпчүлүк ачык коддор колдоого алынбайт. Мен Куб Кбр долбоорунун туура түстөрүн аныктоо үчүн камера алкагындагы туруктуу жерлерди көрсөткөн Ким Коомен тарабынан иштелип чыккан бул ачык булакты колдондум

1 -кадам: Компоненттер керек

  • Raspberry Pi
  • веб -камера

же ноутбукту колдонсоңуз болот

2 -кадам: Көз карандылыктар

  • Python 3
  • numpy китепканасы
  • OpenCV китепканасы

$ sudo apt-get install python3-opencv

RubiksBlindfolded pack

$ pip3 RubiksBlindfolded орнотуу

3 -кадам: Даярдыктар

Алдын ала кадам катары түс аныктоону калибрлөөңүз керек. HSV түс коддору жарыкка, камеранын сапатына жана чечилишине, кубдун түсүнө жараша өзгөрүп турат. Менин учурда, мен туура жыйынтыктарды алуу үчүн ак жана сары чырактарды айкалыштырам.

Get_color_name (hsv) функциясын colordetection.pyде жаңыртыңыз

Түпнуска коду кубду чечүү үчүн kociemba пакетин колдонот, ал ар кандай чаташуунун тескери кадамдарын табуу менен чечилет. Бул версияда мен PyPIде жарыяланган RubiksBlindfolded аттуу жеке чечүү пакетимди колдондум. Аны кантип колдонууну билүү үчүн сүрөттөмөнү караңыз RubiksBlindfolded

4 -кадам: Колдонуу

Колдонуу
Колдонуу
Колдонуу
Колдонуу

Бардык көз карандылыкты орнотуп, камераңызды орноткондон кийин, бул blindfolded.py скриптин иштетүү убактысы

Биринчиден, кубуңузду туура багытта сканерлешиңиз керек. Бул кубдун структурасы, беттерди сканерлөө тартиби маанилүү эмес. Бул кубдун беттеринин демейки түстөрү экенин байкаңыз, сиз аларды blindfolded.py скриптиндеги жазуу сөздүгүн жаңыртуу менен өзгөртө аласыз.

Бүтүргөндөн кийин көрүнүштү жана ESC баскычын сактоо үчүн сканерлөө баскычын басыңыз

Экинчиден, сиз консолдогу чечимдердин ырааттуулугун көрө аласыз жана паритет текшерүүсү сизге паритет алгоритмин колдонуу керекпи же жокпу, айтат.

Үчүнчүдөн, четки ырааттуулук жана бурч ырааттуулугу үчүн 2 тартылган кубду көрсөтүүчү жаңы кадр түзүлөт. Сиз сол жана оң жебе баскычтарын ырааттуулук пункттарынын ортосунда, ал эми өйдө жана ылдый жебе четин жана бурчун которуштуруу үчүн колдоно аласыз. ачык боз түс учурдагы ырааттуулукту билдирет.

Сиз жебе баскычтары менен динамикалык түрдө өзгөрүп жаткан азыркы буфердин түстөрүн көрө аласыз. Боз түстөр максаттуу кубикти, ал эми кызгылт түс алмаштыруучу жүздү билдирет

Булак коду

github.com/mn-banjar/blindfolded2

Сунушталууда: