Table des matières:
- Étape 1: Conception du matériel
- Étape 2: Choisir les bons moteurs
- Étape 3: Construire la base
- Étape 4: Assemblage du matériel
- Étape 5: Électronique
- Étape 6: Logiciel et interface série
- Étape 7: Conclusion
Vidéo: Q-Bot - le solveur Rubik's Cube Open Source : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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.
É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:
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.
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.
L'accélération, dans ce cas, est l'accélération gravitationnelle. Le couple requis est donc donné par
Le branchement de toutes les valeurs, y compris la moitié de la diagonale du Rubik's cube, révèle enfin le couple requis.
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.
É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.
É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é.
É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.
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.
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é:
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 : 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 RubiksCubeBlindfolded1Contrairement à la précédente, cette version utilise la bibliothèque OpenCV pour détecter les couleurs et e
Kit d'apprentissage Arduino (Open Source): 7 étapes (avec photos)
Kit d'apprentissage Arduino (Open Source): Si vous êtes un débutant dans le monde Arduino et que vous allez apprendre Arduino en ayant une expérience pratique, ce Instructables et ce kit est fait pour vous. Ce kit est également un bon choix pour les enseignants qui aiment enseigner Arduino à leurs élèves de manière simple
Arduino Mega Stepper Shield pour un solveur Rubiks Cube: 4 étapes
Arduino Mega Stepper Shield pour un solveur Rubiks Cube: Il y a quelque temps, je travaillais sur une machine qui résout automatiquement tout Rubiks Cube 3x3 brouillé. Vous pouvez voir mes instructables à ce sujet ici. Dans le projet, des pilotes pas à pas de polulu ont été utilisés pour entraîner six moteurs. Afin que deux fassent la connexion de ces d
PyonAir - un moniteur de pollution atmosphérique Open Source : 10 étapes (avec photos)
PyonAir - un moniteur de pollution atmosphérique à source ouverte : le PyonAir est un système peu coûteux pour surveiller les niveaux de pollution atmosphérique locaux - en particulier, les particules. Basé sur la carte Pycom LoPy4 et le matériel compatible Grove, le système peut transmettre des données via LoRa et WiFi. J'ai entrepris ce p
The 'Sup - une souris pour les personnes atteintes de quadriplégie - Low Cost et Open Source : 12 étapes (avec photos)
Le 'Sup - une souris pour les personnes atteintes de quadriplégie - Low Cost et Open Source : Au printemps 2017, la famille de mon meilleur ami m'a demandé si je voulais prendre l'avion pour Denver et les aider dans un projet. Ils ont un ami, Allen, qui souffre de tétraplégie à la suite d'un accident de vélo de montagne. Felix (mon ami) et moi avons fait quelques recherches rapides