Оглавление:
Видео: Решающая программа для куба Рубика вслепую в реальном времени с использованием Raspberry Pi и OpenCV: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Это вторая версия кубика Рубика, предназначенная для решения задач с завязанными глазами. 1-я версия была разработана javascript, вы можете увидеть проект RubiksCubeBlindfolded1
В отличие от предыдущей, эта версия использует библиотеку OpenCV для определения цветов и ввода входных данных, а также обеспечивает лучшую технику визуализации.
Самая большая проблема в этой новейшей версии - визуализация выходных данных, элементы последовательности отображаются на нарисованном кубе по 1 разу. Поскольку куб представляет собой трехмерную фигуру, трудно отобразить все стороны одновременно. Смотрите результаты на моем канале YouTube Видео на YouTube
Я использую куб без наклеек, для этого требуется пользовательское распознавание, и большинство открытых исходных кодов не поддерживаются. Я использовал этот открытый исходный код, разработанный Кимом Куменом, который определяет фиксированные области на кадре камеры для определения правильных цветов кубических граней проекта qbr.
Шаг 1. Необходимые компоненты
- Raspberry Pi
- вебкамера
или вы можете использовать свой ноутбук
Шаг 2: зависимости
- Python 3
- библиотека numpy
- Библиотека OpenCV
$ sudo apt-get install python3-opencv
РубиксПакет с завязанными глазами
$ pip3 установить RubiksBlindfolded
Шаг 3: Подготовка
Предварительно необходимо откалибровать определение цвета. Цветовые коды HSV различаются в зависимости от освещения, качества и разрешения камеры, а также цвета самого куба. В моем случае я комбинирую белый и желтый свет, чтобы получить правильные результаты.
Обновите функцию get_color_name (hsv) на colordetection.py
Исходный исходный код использует пакет kociemba для решения куба, он решает, находя обратные шаги любого скремблирования. В этой версии я использовал свой собственный пакет решения под названием RubiksBlindfolded, опубликованный на PyPI. Смотрите описание, чтобы узнать, как его использовать RubiksBlindfolded
Шаг 4: Использование
После установки всех зависимостей и настройки камеры самое время запустить скрипт blindfolded.py.
Во-первых, вам нужно отсканировать куб в правильной ориентации. Это структура куба, порядок сканирования граней значения не имеет. Обратите внимание, что это цвета по умолчанию для граней куба, вы можете изменить их, обновив словарь обозначений в скрипте blindfolded.py.
Чтобы выполнить сканирование, нажмите клавишу пробела, чтобы сохранить вид, и клавишу ESC после завершения.
Во-вторых, вы можете видеть последовательности решений на консоли и проверку четности, чтобы узнать, нужно ли вам применять алгоритм четности или нет.
В-третьих, будет сгенерирован новый фрейм, который отображает 2 нарисованных куба для последовательности ребер и последовательности углов. Вы можете использовать клавиши со стрелками влево и вправо для переключения между элементами последовательности и клавиши со стрелками вверх и вниз для переключения между краем и углом. светло-серый цвет представляет текущую последовательность.
Вы можете видеть цвета текущего буфера, которые динамически меняются, с помощью клавиш со стрелками. Серые цвета представляют целевой кубик, а розовый цвет - сменяющуюся грань.
Исходный код
github.com/mn-banjar/blindfolded2
Рекомендуемые:
Построение графика данных датчика температуры в реальном времени (TMP006) с использованием MSP432 LaunchPad и Python: 9 шагов
Построение графика данных датчика температуры в реальном времени (TMP006) с использованием MSP432 LaunchPad и Python: TMP006 - это датчик температуры, который измеряет температуру объекта без необходимости соприкасаться с ним. В этом руководстве мы построим график данных температуры в реальном времени из BoosterPack (TI BOOSTXL-EDUMKII) с использованием Python
Трекер COVID-19 в реальном времени для ESP32: 3 шага
COVID-19 Realtime Tracker для ESP32: этот маленький трекер поможет вам быть в курсе вспышки коронавируса и ситуации в вашей стране. На дисплее попеременно отображаются текущие данные из разных стран по вашему выбору. Данные собираются на веб-сайте www.wo
Live Tracker Covid19 с использованием ESP8266 и OLED - Панель управления Covid19 в реальном времени: 4 шага
Live Tracker Covid19 с использованием ESP8266 и OLED | Панель управления Covid19 в реальном времени: посетите веб-сайт Techtronic Harsh: http: //techtronicharsh.com Везде наблюдается огромная вспышка нового вируса короны (COVID19). Возникла необходимость следить за текущим сценарием COVID-19 в мире. Так что, находясь дома, это было п
IoT Data Science PiNet для визуализации данных смарт-экрана в реальном времени: 4 шага
Наука о данных IoT PiNet для визуализации данных интеллектуального экрана в реальном времени: вы можете легко собрать сеть интеллектуальных дисплеев Интернета вещей для визуализации данных, чтобы усилить ваши исследовательские усилия в области науки о данных или любой другой количественной области. Вы можете вызвать кнопку " push " ваших участков клиентам прямо из вашего
Уведомления о событиях в реальном времени с использованием NodeMCU (Arduino), Google Firebase и Laravel: 4 шага (с изображениями)
Уведомления о событиях в реальном времени с использованием NodeMCU (Arduino), Google Firebase и Laravel: вы когда-нибудь хотели получать уведомления, когда на вашем веб-сайте совершается действие, но электронная почта не подходит? Вы хотите слышать звук или колокольчик каждый раз, когда совершаете продажу? Или есть необходимость в вашем немедленном внимании из-за чрезвычайной ситуации