Mundarija:
Video: Raspberry Pi va OpenCV-dan foydalangan holda, Rubik kubikining ko'zlari yopiq hal qiluvchi: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
Bu Rubik kubik asbobining ko'r -ko'rona hal qilish uchun qilingan 2 -chi versiyasi. Birinchi versiya javascript tomonidan ishlab chiqilgan, siz RubiksCubeBlindfolded1 loyihasini ko'rishingiz mumkin
Oldindan farqli o'laroq, bu versiya ranglarni aniqlash va kirishni kiritish uchun OpenCV kutubxonasidan foydalanadi va vizualizatsiya texnikasini yaxshilaydi.
Bu yangi versiyadagi eng katta muammo - bu chiqishlarni vizualizatsiya qilish, ketma -ketlik elementlari chizilgan kub 1da ko'rsatiladi. Kub 3D shakli bo'lgani uchun, bir vaqtning o'zida barcha qirralarini ko'rsatish qiyin. Natijalarni mening YouTube kanalimdagi YouTube videosida ko'ring
Men yopishqoq bo'lmagan kubdan foydalanayapman, bu maxsus tan olinishi kerak va ko'pchilik ochiq kodlar qo'llab -quvvatlanmaydi. Men Kim Koomen tomonidan ishlab chiqilgan, qbr loyihasining kubiklarining to'g'ri ranglarini aniqlash uchun kamera ramkasida sobit joylarni ko'rsatadigan ochiq manbadan foydalanganman.
1 -qadam: kerakli komponentlar
- Raspberry Pi
- vebkamera
yoki noutbukdan foydalanishingiz mumkin
2 -qadam: qaramlik
- Python 3
- noaniq kutubxona
- OpenCV kutubxonasi
$ sudo apt-get install python3-opencv
Ko'zlari bog'langan Rubiks to'plami
$ pip3 RubiksBlindfolded -ni o'rnating
3 -qadam: tayyorgarlik
Rangni aniqlashni dastlabki qadam sifatida sozlashingiz kerak. HSV rang kodlari yorug'lik, kamera sifati va piksellar soniga va kub ranglarining o'ziga qarab o'zgaradi. Mening vaziyatimda to'g'ri natijalarga erishish uchun oq va sariq chiroqlarni birlashtiraman.
Colordetection.py -da get_color_name (hsv) funktsiyasini yangilang
Asl manba kodi kubni echish uchun kociemba paketidan foydalanadi, u har qanday chalkashliklarning teskari qadamlarini topib hal qiladi. Ushbu versiyada men PyPI -da chop etilgan RubiksBlindfolded deb nomlangan o'zim hal qilish paketidan foydalandim. Rubiksni ko'r -ko'rona qanday ishlatishni bilish uchun tavsifga qarang
4 -qadam: Foydalanish
Barcha bog'liqliklar o'rnatilgandan va kamerangiz o'rnatilgandan so'ng, ko'r -ko'rona.py skriptini ishga tushirish vaqti keldi
Birinchidan, siz kubni to'g'ri yo'nalishda skanerlashingiz kerak. Bu kub tuzilishi, yuzlarni skanerlash tartibi muhim emas. E'tibor bering, bu kub yuzlarining standart ranglari, ularni ko'r -ko'rona.py skriptidagi yozuv lug'atini yangilash orqali o'zgartirish mumkin.
Skanerlash uchun bo'sh joy tugmachasini bosib, ko'rinishni saqlang va tugatgandan so'ng ESC tugmasini bosing
Ikkinchidan, siz konsolda echimlar ketma -ketligini ko'rishingiz mumkin va paritet algoritmini qo'llashingiz kerakmi yoki yo'qligini aytib beradi.
Uchinchidan, chekka ketma -ketligi va burchak ketma -ketligi uchun 2 chizilgan kubni ko'rsatadigan yangi ramka yaratiladi. Siz ketma -ketlik elementlarini almashtirish uchun chap va o'ng o'q tugmalaridan, chekka va burchak o'rtasida o'tish uchun esa yuqoriga va pastga o'q tugmalaridan foydalanishingiz mumkin. ochiq kul rang joriy ketma -ketlikni ifodalaydi.
Siz o'q tugmalari yordamida dinamik o'zgarayotgan joriy bufer ranglarini ko'rishingiz mumkin. Kulrang ranglar maqsadli kubikni, pushti rang esa almashinadigan yuzni ifodalaydi
Manba kodi
github.com/mn-banjar/blindfolded2
Tavsiya:
Q -Bot - ochiq manbali Rubik kublarini hal qiluvchi: 7 qadam (rasmlar bilan)
Q -Bot - ochiq manbali Rubik kubiklarini hal qiluvchi: Tasavvur qiling -a, sizda Rubik kubigi bor, siz 80 -yillardan beri hamma biladigan, lekin hech kim qanday hal qilishni bilmaydigan jumboqni bilasiz va siz uni asl namunasiga qaytarishni xohlaysiz. Yaxshiyamki, bugungi kunda hal qilish bo'yicha ko'rsatmalarni topish juda oson
Kubik hal qiluvchi Rubiks uchun Arduino Mega Step qalqoni: 4 qadam
Rubiks kublarini hal qilish uchun Arduino Mega Stepper Shield: Bir muncha vaqt oldin men 3x3 Rubik kubiklarini avtomatik ravishda echadigan mashinada ishlaganman. Bu erda mening ko'rsatmalarni ko'rishingiz mumkin. Loyihada polulu stepperlari oltita dvigatelni haydash uchun ishlatilgan. Ikkalasini bir -biriga ulash uchun
Trafikni hal qiluvchi: 7 qadam
Traffic Solver: Traffic Solver qurilish zonasida bitta bo'lakda harakatni boshqarishni avtomatlashtiradi. Bu tizim hech qanday baxtsiz hodisalarsiz ishlashi uchun har tomondan ikkita birlik bo'lishi kerak. Ikkala blokda ham dvigatel va aylanadigan ushlab turuvchi qurilma bo'ladi
ARS - Rubik hal qiluvchi Arduino: 13 qadam (rasmlar bilan)
ARS - Arduino Rubik Solver: ARS - bu Rubik kubini yechish uchun to'liq tizim: ha, kubni hal qiladigan boshqa robot! ARS - bu uch yillik bosma qismlar va lazerli kesilgan tuzilmalar bilan yaratilgan maktab loyihasi: Arduino to'g'ri yaratilgan ketma -ketlikni oladi uy qurgan divan tomonidan
Miniaturizatsiya/ RC transmitterining kuchaytirilishi & Oltoidlardan foydalangan holda qabul qiluvchi !!!: 10 qadam
Miniaturizatsiya/ RC transmitterining kuchaytirilishi & Oltoidlardan foydalangan holda qabul qiluvchi !!!: OK, bu mening birinchi ko'rsatma bo'ladi: D, shuning uchun menga osonlikcha yuring. Men yaqinda Vashingtonga bordim va men bir nechta eski o'yinchoq samolyotlardan 3 ta uzatuvchi va bitta qabul qilgichni o'z ichiga olgan RC bilan bog'liq bir nechta komponentni oldim. Qanday bo'lmasin, men olishga qaror qildim