Table des matières:
Vidéo: Solveur Rubik's Cube en temps réel avec les yeux bandés utilisant Raspberry Pi et OpenCV : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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
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é:
Q-Bot - le solveur Rubik's Cube Open Source : 7 étapes (avec photos)
Q-Bot - le Rubik's Cube Solver Open Source : Imaginez que vous ayez un Rubik's Cube brouillé, vous connaissez ce puzzle des années 80 que tout le monde a mais personne ne sait vraiment comment le résoudre, et vous voulez le ramener dans son modèle d'origine. Heureusement, de nos jours, il est très facile de trouver des instructions de résolution
Programme MicroPython : Mettre à jour les données sur la maladie à coronavirus (COVID-19) en temps réel : 10 étapes (avec photos)
Programme MicroPython : Mettre à jour les données sur la maladie à coronavirus (COVID-19) en temps réel : au cours des dernières semaines, le nombre de cas confirmés de maladie à coronavirus (COVID 19) dans le monde a dépassé 100 000, et l'Organisation mondiale de la santé (OMS) a déclaré le la nouvelle épidémie de pneumonie à coronavirus est une pandémie mondiale. Je ai été très
Robot SCARA : apprentissage de la cinématique directe et inverse !!! (Plot Twist Apprenez à créer une interface en temps réel dans ARDUINO en utilisant PROCESSING !!!!): 5 étapes (avec images)
Robot SCARA : apprentissage de la cinématique directe et inverse !!! (Plot Twist Apprenez à créer une interface en temps réel dans ARDUINO en utilisant PROCESSING !!!!): Un robot SCARA est une machine très populaire dans le monde de l'industrie. Le nom signifie à la fois le bras de robot d'assemblage conforme sélectif ou le bras de robot articulé conforme à la sélection. Il s'agit essentiellement d'un robot à trois degrés de liberté, étant les deux premiers displ
Faire une horloge avec M5stick C en utilisant Arduino IDE - Horloge temps réel RTC avec M5stack M5stick-C : 4 étapes
Faire une horloge avec M5stick C en utilisant Arduino IDE | Horloge en temps réel RTC avec M5stack M5stick-C : Salut les gars dans ce instructables, nous allons apprendre à faire une horloge avec la carte de développement m5stick-C de m5stack à l'aide d'Arduino IDE. semaine du mois sur l'écran
Utilisez Cortana et un Arduino pour contrôler les LED RVB ou les bandes LED avec votre voix ! : 4 étapes (avec photos)
Utilisez Cortana et un Arduino pour contrôler les LED RVB ou les bandes LED avec votre voix ! : Dans cette instructable, je vais vous montrer comment vous pouvez contrôler votre LED ou bande LED RVB avec votre voix. Ceci est fait par l'application CoRGB qui est disponible gratuitement dans la boutique d'applications Windows. Cette application fait partie de mon projet CortanaRoom. Quand vous en avez fini avec