Table des matières:

Solveur Rubik's Cube en temps réel avec les yeux bandés utilisant Raspberry Pi et OpenCV : 4 étapes
Solveur Rubik's Cube en temps réel avec les yeux bandés utilisant Raspberry Pi et OpenCV : 4 étapes

Vidéo: Solveur Rubik's Cube en temps réel avec les yeux bandés utilisant Raspberry Pi et OpenCV : 4 étapes

Vidéo: Solveur Rubik's Cube en temps réel avec les yeux bandés utilisant Raspberry Pi et OpenCV : 4 étapes
Vidéo: Des faits intrigants qui te feront penser différemment 2024, Juillet
Anonim

Il s'agit de la 2ème version de l'outil Rubik's cube conçu pour résoudre les yeux bandés. La 1ère version a été développée par javascript, vous pouvez voir le projet RubiksCubeBlindfolded1

Contrairement à la précédente, cette version utilise la bibliothèque OpenCV pour détecter les couleurs et saisir les entrées, et offre une meilleure technique de visualisation.

Le plus gros problème dans cette nouvelle version est la visualisation des sorties, les éléments de séquence sont affichés sur le cube dessiné 1 à la fois. Le cube étant une forme 3D, il est difficile d'afficher tous les côtés en même temps. Voir les résultats sur ma chaîne YouTube vidéo YouTube

J'utilise un cube sans autocollant, cela nécessite une reconnaissance personnalisée et la plupart des codes open source ne sont pas pris en charge. J'ai utilisé cet open source développé par Kim Koomen qui spécifie des zones fixes sur le cadre de la caméra pour détecter les couleurs correctes du projet qbr de faces de cube

Étape 1: Composants nécessaires

  • Tarte aux framboises
  • webcam

ou vous pouvez utiliser votre ordinateur portable

Étape 2: Dépendances

  • Python 3
  • bibliothèque numpy
  • Bibliothèque OpenCV

$ sudo apt-get install python3-opencv

Paquet Rubiks les yeux bandés

$ pip3 installer RubiksBlindfolded

Étape 3: Préparatifs

Vous devez calibrer la détection des couleurs en tant qu'étape préalable. Les codes de couleur HSV varient en raison de l'éclairage, de la qualité et de la résolution de la caméra et des couleurs du cube lui-même. Dans mon cas, je combine des lumières blanches et jaunes pour obtenir des résultats corrects.

Mettre à jour la fonction get_color_name(hsv) sur colordetection.py

Le code source d'origine utilise le package kociemba pour résoudre le cube, il résout en trouvant les étapes inverses de tout brouillage. Dans cette version, j'ai utilisé mon propre package de résolution nommé RubiksBlindfolded publié sur PyPI. Voir la description pour savoir comment l'utiliser RubiksBlindfolded

Étape 4: Utilisation

Usage
Usage
Usage
Usage

Après avoir installé toutes les dépendances et réglé votre caméra, c'est le moment d'exécuter le script blindfolded.py

Tout d'abord, vous devez numériser votre cube dans les bonnes orientations. C'est la structure du cube, l'ordre de balayage des faces n'a pas d'importance. Notez que ce sont les couleurs par défaut des faces du cube, vous pouvez les modifier en mettant à jour le dictionnaire de notation sur le script blindfolded.py

Pour effectuer le scan, appuyez sur la touche espace pour enregistrer la vue et la touche ESC après avoir terminé

Deuxièmement, vous pouvez voir les séquences de solutions sur la console et le contrôle de parité pour vous dire si vous devez appliquer l'algorithme de parité ou non

Troisièmement, un nouveau cadre sera généré qui affiche 2 cubes dessinés pour la séquence des bords et la séquence des coins. Vous pouvez utiliser les touches fléchées gauche et droite pour basculer entre les éléments de séquence, et les touches fléchées haut et bas pour basculer entre le bord et le coin. la couleur gris clair représente la séquence en cours.

Vous pouvez voir les couleurs du tampon actuel qui changent dynamiquement par les touches fléchées. Les couleurs grises représentent le cube cible et la couleur rose représente le visage d'échange

Code source

github.com/mn-banjar/blindfolded2

Conseillé: