Table des matières:

Q-Bot - le solveur Rubik's Cube Open Source : 7 étapes (avec photos)
Q-Bot - le solveur Rubik's Cube Open Source : 7 étapes (avec photos)

Vidéo: Q-Bot - le solveur Rubik's Cube Open Source : 7 étapes (avec photos)

Vidéo: Q-Bot - le solveur Rubik's Cube Open Source : 7 étapes (avec photos)
Vidéo: I Solved the World’s Smallest Rubiks Cube 2024, Juillet
Anonim
Image
Image
Image
Image

Imaginez que vous ayez un Rubik's Cube brouillé, que vous connaissiez ce puzzle des années 80 que tout le monde possède mais que personne ne sait vraiment comment le résoudre, et que vous voulez le ramener à son modèle d'origine. Heureusement, de nos jours, il est très facile de trouver des instructions de résolution. Alors, allez en ligne, regardez une vidéo pour apprendre à tourner les côtés pour vous apporter de la joie. Après l'avoir fait plusieurs fois, cependant, vous vous rendrez compte qu'il manque quelque chose. Un trou à l'intérieur qui ne peut pas être rempli. Les ingénieurs/fabricants/hackers en vous ne peuvent tout simplement pas se contenter de résoudre quelque chose d'aussi incroyable d'une manière aussi simple. Ne serait-ce pas beaucoup plus poétique si vous aviez une machine qui résolvait tout à votre place ? Si vous aviez construit quelque chose qui émerveillerait tous vos amis ? Je peux vous garantir que cela ne va pas mieux que de regarder votre création faire des merveilles et résoudre un Rubik's Cube. Alors, venez me rejoindre dans le merveilleux voyage de la construction de Q-Bot, le Rubik's Cube Solver open source qui ne battra certainement aucun record du monde, mais vous procurera des heures de joie (après avoir bien sûr traversé toutes les frustrations pendant le processus de construction).

Étape 1: Conception du matériel

Le solveur complet a été conçu avec la CAO dans Catia. De cette façon, la plupart des erreurs de conception ont pu être trouvées et corrigées avant de fabriquer des composants physiques. La majeure partie du solveur a été imprimée en 3D en PLA à l'aide d'une imprimante prusa MK3. De plus, le matériel suivant a été utilisé:

  • 8 morceaux de tige en aluminium de 8 mm (longueur 10 cm)
  • 8 roulements à billes linéaires (LM8UU)
  • un peu moins de 2 m de courroie de distribution GT2 6mm + quelques poulies
  • 6 moteurs pas à pas bipolaires NEMA 17
  • 6 pilotes pas à pas Polulu 4988
  • un Arudino Mega comme contrôleur du projet
  • une alimentation 12 V 3A
  • un convertisseur abaisseur pour alimenter en toute sécurité l'arduino
  • quelques vis et connecteurs
  • du contreplaqué pour la base

Description du matériel

Cette section couvre brièvement le fonctionnement du Q-Bot et l'utilisation des composants mentionnés ci-dessus. Ci-dessous, vous pouvez voir un rendu du modèle CAO entièrement assemblé.

Le Q-bot fonctionne en ayant quatre moteurs attachés directement au Rubik's Cube avec des pinces imprimées en 3D. Cela signifie que la gauche, la droite, l'avant et l'arrière peuvent être tournés directement. Si le dessus ou le dessous doit être tourné, le cube entier doit être tourné et donc deux des moteurs doivent être éloignés. Cela se fait en fixant chacun des moteurs de préhension sur des traîneaux entraînés par un autre moteur pas à pas et une courroie de distribution le long d'un système de rail linéaire. Le système de rail se compose de deux 8 roulements à billes qui sont montés dans des cavités dans le traîneau et l'ensemble du traîneau monte sur deux arbres en aluminium de 8 mm. Ci-dessous, vous pouvez voir le sous-ensemble d'un axe du solveur.

Les axes x et y sont fondamentalement identiques, ils ne diffèrent que par la hauteur du point de montage de la ceinture, c'est pour qu'il n'y ait pas de collisions entre les deux ceintures lorsqu'elles sont complètement assemblées.

Image
Image

Étape 2: Choisir les bons moteurs

Bien sûr, la sélection des bons moteurs est très importante ici. L'essentiel est qu'ils doivent être suffisamment solides pour pouvoir faire tourner un Rubik's cube. Le seul problème ici est qu'aucun fabricant de cubes Rubik ne donne une cote de couple. J'ai donc dû improviser et faire mes propres mesures.

Généralement le couple est défini par la force dirigée perpendiculairement à la position du point de rotation à la distance r:

Image
Image
Image
Image

Donc, si je pouvais en quelque sorte mesurer la force appliquée au cube, je pourrais calculer le couple. C'est exactement ce que j'ai fait. J'ai fixé mon cube sur une étagère de manière à ce qu'un seul côté puisse bouger. Qu'une ficelle s'est attachée autour du cube et un sac attaché au fond. Il ne restait plus qu'à augmenter lentement le poids du sac jusqu'à ce que le cube tourne. Faute de poids précis, j'ai utilisé des pommes de terre et les ai mesurées par la suite. Pas la méthode la plus scientifique mais parce que je n'essaye pas de trouver le couple minimum c'est tout à fait suffisant.

Image
Image

J'ai fait les mesures trois fois et j'ai pris la valeur la plus élevée juste pour être en sécurité. Le poids résultant était de 0,52 kg. Maintenant, grâce à Sir Isaac Newton, nous savons que la Force est égale à la masse multipliée par l'accélération.

Image
Image

L'accélération, dans ce cas, est l'accélération gravitationnelle. Le couple requis est donc donné par

Image
Image

Le branchement de toutes les valeurs, y compris la moitié de la diagonale du Rubik's cube, révèle enfin le couple requis.

Image
Image

J'ai opté pour des moteurs pas à pas capables d'appliquer jusqu'à 0,4 Nm, ce qui est probablement excessif, mais je voulais être en sécurité.

Étape 3: Construire la base

La base se compose d'une boîte en bois très simple et abrite toute l'électronique nécessaire. Il dispose d'une prise pour allumer et éteindre la machine, d'une LED pour indiquer si elle est allumée, d'un port USB B et d'une prise pour l'alimentation à brancher. Il a été construit avec du contreplaqué de 15 mm, des vis et un peu de colle.

Image
Image
Image
Image
Image
Image
Image
Image

Étape 4: Assemblage du matériel

Maintenant, avec toutes les pièces requises, y compris la base, le Q-bot était prêt à être assemblé. Les pièces personnalisées ont été imprimées en 3D et ajustées si nécessaire. Vous pouvez télécharger tous les fichiers CAO à la fin de cette ible. L'assemblage comprenait le montage de toutes les pièces imprimées en 3D avec les pièces achetées, l'extension des câbles du moteur et le vissage de toutes les pièces à la base. De plus, j'ai mis des manchons autour des câbles du moteur, juste pour leur donner un aspect un peu plus net, et j'ai ajouté des connecteurs JST à leurs extrémités.

Pour souligner l'importance de la base que j'ai construite, voici une photo avant et après de ce à quoi ressemblait l'assemblage. Tout ranger un peu peut faire une énorme différence.

Image
Image
Image
Image

Étape 5: Électronique

Quant à l'électronique le projet est assez simple. Il y a une alimentation principale 12V, qui peut fournir jusqu'à 3A de courant, qui alimente les moteurs. Un module abaisseur est utilisé pour alimenter en toute sécurité l'Arduino et un bouclier personnalisé pour l'Arduino a été conçu qui abrite tous les pilotes de moteur pas à pas. Les pilotes facilitent grandement le contrôle des moteurs. La conduite d'un moteur pas à pas nécessite une séquence de contrôle spécifique, mais en utilisant des pilotes de moteur, nous n'avons besoin de générer qu'une impulsion élevée pour chaque étape que le moteur doit tourner. De plus, des connecteurs jst ont été ajoutés au blindage pour faciliter la connexion des moteurs. Le blindage de l'Arduino a d'abord été construit sur un morceau de panneau perforé et après s'être assuré que tout fonctionne comme prévu, il a été fabriqué par jlc pcb.

Voici l'avant et l'après du prototype et du circuit imprimé fabriqué.

Image
Image
Image
Image

Étape 6: Logiciel et interface série

Le Q-Bot est divisé en deux parties. D'une part, il y a le matériel qui est contrôlé par l'Arduino, d'autre part, il y a un logiciel qui calcule le chemin de résolution du cube en fonction du brouillage actuel. Le firmware fonctionnant sur l'Arduino a été écrit par moi-même, mais afin de garder ce guide court, je n'entrerai pas dans les détails à ce sujet ici. Si vous souhaitez y jeter un œil et jouer avec, le lien vers mon dépôt git sera fourni à la fin de ce document. Le logiciel qui calcule la solution fonctionne sur une machine Windows et a été écrit par un de mes collègues, encore une fois des liens vers son code source peuvent être trouvés à la fin de cet ible. Les deux parties communiquent à l'aide d'une simple interface série. Il calcule la solution sur la base de l'algorithme à deux phases de Kociemba. Le logiciel de résolution envoie une commande composée de deux octets au solveur et attend qu'il renvoie un « ACK ». De cette façon, le solveur peut être testé et débogué à l'aide d'un simple moniteur série. Le jeu d'instructions complet se trouve ci-dessous.

Image
Image

Les commandes pour faire tourner chaque moteur d'un pas sont une solution de contournement à un problème où certains moteurs pas à pas effectueraient de petits sauts au hasard lors de la mise sous tension. Pour compenser cela, les moteurs peuvent être ajustés à leur position initiale avant le processus de résolution.

Étape 7: Conclusion

Après huit mois de développement, de jurons, de frappe au clavier et de danse, le Q-bot était enfin arrivé à un point où est résolu avec succès son premier Rubik's Cube. Le brouillage du cube a dû être inséré manuellement dans le logiciel de contrôle, mais tout a bien fonctionné.

J'ai ajouté un support pour une webcam quelques semaines plus tard et mon collège a ajusté le logiciel pour lire le cube automatiquement à partir des images prises. Cependant, ce n'est pas encore bien testé et a encore besoin de quelques améliorations.

Image
Image

Si cette instructable a suscité votre intérêt, n'hésitez pas et commencez à créer votre propre version du Q-bot. Cela peut sembler intimidant au début, mais cela en vaut vraiment la peine et si je pouvais le faire, vous aussi.

Ressources:

Code source du micrologiciel:

github.com/Axodarap/QBot_firmware

Code source du logiciel de contrôle

github.com/waldhube16/Qbot_SW

Conseillé: