Oubliez le Sudoku, construisez-vous un robot Rubik’s Solver minimaliste

Certaines personnes aiment les mots croisés, d’autres sont de sérieux ninjas du sudoku, mais [Andrea Favero] aime rester vif, en apprenant à coder et en résolvant des problèmes de contrôle, et c’est quelque chose auquel nous pouvons certainement nous identifier. Lors de l’apprentissage d’une nouvelle plate-forme, c’est une très bonne idée d’avoir un projet ou un objectif substantiel à l’esprit, et d’apprendre ce qui est nécessaire sur le chemin. [Andrea] a choisi de construire un solveur autonome de Rubik’s cube, et a eu la gentillesse de documenter exactement comment le faire, et nous en sommes ravis !

Le résultat de la chaîne de traitement openCV

Travailler en python avec OpenCV, [Andrea] utilise la méthodologie par [Oussama Barkouki] pour traiter chaque image de visage et la convertir en un tableau des couleurs des facettes individuelles. Les bases de cela consistent d’abord à convertir l’image en niveaux de gris, puis à utiliser un flou gaussien pour débruiter l’image. Les bords sont identifiés à l’aide de l’algorithme astucieux, dont le résultat est ensuite dilaté et transmis à un détecteur de contour. Les contours sont envoyés dans un filtre astucieux qui identifie les contours carrés, et ceux dont la taille est incorrecte sont filtrés. Il ne vous reste que les contours des facettes colorées réelles. Une fois que vous avez une liste de carrés, ceux-ci peuvent être utilisés pour former des masques d’image, puis sélectionner la couleur moyenne de chaque carré. La couleur est ensuite quantifiée et stockée en tant que couleur étiquetée à partir du schéma de couleurs standard du cube Western Rubik. Enfin, une fois toutes les images de visage capturées et les couleurs des facettes identifiées, les données sont transmises à un algorithme de résolution de Rubik’s cube développé par [Hegbert Kociemba,] un guide pour lequel est disponible sur le site de résolution de vitesse. Le résultat de l’étape de résolution est une séquence de mouvements de désembrouillage, dans la notation de mouvement développée par [David Singmaster]. Des trucs fascinants, si vous nous demandez!

Approche matérielle modulaire – pas de PCB personnalisés

Tout ce qui précède peut être prototypé sur un PC, mais [Andrea] voulait en savoir plus sur Raspberry Pis. Une partie du plaisir consistait à installer et à configurer un Pi4, avec toutes les dépendances nécessaires. Le matériel a été construit à partir de contreplaqué et d’une charge d’impression 3D. (Tous les STL sont disponibles dans le premier lien) Suivre le guide de construction (incroyablement détaillé) devrait être assez simple. Un modèle Pi4/2Gb avec PiCamera a été jugé suffisant (bonne chance pour en trouver un ! Peut-être essayer rpilocator ?) avec un moteur pas à pas pour la rotation du cube et une paire de servos, un pour faire fonctionner le couvercle/support de caméra, et un second pour donner un coup le cube autour d’un deuxième axe. La beauté de cette approche simple et élégante est qu’elle peut gérer un cube standard non modifié (ok, un peu sablé) – contrairement à certaines des constructions folles de résolution de vitesse que nous avons vues – ce n’est pas le solutionneur de cube le plus rapide que nous ‘ ai vu, mais c’est l’un des plus cool.

Vous voulez voir un cube se résoudre tout seul ? (en quelque sorte) voilà. Et terminons sur un sujet d’actualité, avec un hack de cube inspiré du coronavirus, juste parce qu’ils le pouvaient.