Съдържание:

Ръководител на кубика на Рубик със затворени очи в реално време, използващ Raspberry Pi и OpenCV: 4 стъпки
Ръководител на кубика на Рубик със затворени очи в реално време, използващ Raspberry Pi и OpenCV: 4 стъпки

Видео: Ръководител на кубика на Рубик със затворени очи в реално време, използващ Raspberry Pi и OpenCV: 4 стъпки

Видео: Ръководител на кубика на Рубик със затворени очи в реално време, използващ Raspberry Pi и OpenCV: 4 стъпки
Видео: чисто я собираю кубик рубик 2024, Ноември
Anonim

Това е втората версия на кубическия инструмент на Рубик, направен за решаване на завързани очи. Първата версия е разработена от javascript, можете да видите проекта RubiksCubeBlindfolded1

За разлика от предишната, тази версия използва OpenCV библиотека за откриване на цветовете и въвеждане на входовете и осигурява по -добра техника за визуализация.

Най -големият проблем в тази най -нова версия е визуализацията на изходите, елементите от последователността се показват на изтегления куб 1 наведнъж. Тъй като кубът е 3D форма, е трудно да се покажат всички страни едновременно. Вижте резултатите на видеоклипа ми в YouTube в YouTube

Използвам куб без стикери, това се нуждае от персонализирано разпознаване и повечето кодове с отворен код не се поддържат. Използвах този отворен код, разработен от Ким Кумен, който определя фиксирани области на рамката на камерата, за да открие правилните цветове на кубните лица qbr проект

Стъпка 1: Необходими компоненти

  • Малина Пи
  • уебкамера

или можете да използвате вашия лаптоп

Стъпка 2: Зависимости

  • Python 3
  • numpy библиотека
  • Библиотека на OpenCV

$ sudo apt-get инсталирайте python3-opencv

Рубикс Пакет със завързани очи

$ pip3 инсталирайте RubiksBlindfolded

Стъпка 3: Подготовка

Трябва да калибрирате разпознаването на цветовете като предварителна стъпка. Цветовите кодове на HSV варират поради осветлението, качеството на камерата и разделителната способност и самите цветове на куба. В моя случай комбинирам бели и жълти светлини, за да получа правилни резултати.

Актуализирайте функцията get_color_name (hsv) на colordetection.py

Оригиналният изходен код използва пакета kociemba за решаване на куба, той решава чрез намиране на обратните стъпки на всяко кодиране. В тази версия използвах собствен пакет за решаване на име RubiksBlindfolded, публикуван на PyPI. Вижте описанието, за да знаете как да го използвате Rubiks със завързани очи

Стъпка 4: Използване

Употреба
Употреба
Употреба
Употреба

След като инсталирате всички зависимости и настроите камерата си, това е моментът да стартирате скрипта blindfolded.py

Първо, трябва да сканирате куба си в правилната ориентация. Това е структурата на куба, редът на сканиране на лицата не е важен. Забележете, че това са цветовете по подразбиране на кубчетата, можете да ги промените, като актуализирате речника на нотациите в скрипта blindfolded.py

За да направите сканирането, натиснете клавиша за интервал, за да запазите изгледа и клавиша ESC след приключване

Второ, можете да видите последователностите от решения на конзолата и проверката на паритета, за да ви каже дали трябва да приложите алгоритъма за паритет или не

Трето, ще бъде генериран нов кадър, който показва 2 начертани куба за последователността на ръбовете и ъгловата последователност. Можете да използвате клавишите със стрелки наляво и надясно за превключване между елементите от последователността и клавишите със стрелки нагоре и надолу за превключване между ръба и ъгъла. светлосивият цвят представлява текущата последователност.

Можете да видите цветовете на текущия буфер, които се променят динамично чрез клавишите със стрелки. Сивите цветове представляват целевата куба, а розовият цвят представлява лицето за смяна

Програмен код

github.com/mn-banjar/blindfolded2

Препоръчано: