Table des matières:
- Étape 1: Outils et matériaux
- Étape 2: Construisez-le
- Étape 3: préparer le logiciel
- Étape 4: Résoudre un Rubik's Cube
- Étape 5: Le code source
Vidéo: Projet BricKuber - un robot de résolution de cubes Rubiks Raspberry Pi : 5 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Le BricKuber peut résoudre un Rubik's cube en moins de 2 minutes environ.
Le BricKuber est un robot de résolution de Rubik’s cube open source que vous pouvez construire vous-même
Nous voulions construire un robot de résolution de cube Rubiks avec le Raspberry Pi. Plutôt que d'opter pour la vitesse, nous avons opté pour la simplicité: si vous avez un Raspberry Pi, un kit BrickPi et un kit LEGO Mindstorms EV3 ou NXT standard, vous devriez pouvoir facilement suivre nos traces. Le logiciel est écrit dans le langage de programmation Python. Vous pouvez voir tout le code source sur Github ici.
Contexte Le Rubik's cube a récemment commencé à faire son retour. Inventé en 1974, c'est le jouet le plus vendu au monde. Mais les résoudre demande de la réflexion, des efforts et des compétences… alors pourquoi ne pas laisser un robot le faire ? Dans ce projet, nous prenons un Raspberry Pi, un BrickPi et un ensemble de LEGO Mindstorms et construisons un robot de résolution de Rubik's Cube. Placez simplement un Rubik's cube non résolu dans le solveur, lancez le programme python et votre Rubik's cube est résolu ! Le projet utilise le Pi pour résoudre directement le Rubik's cube. Le BrickPi3 prend le Rubik's cube non résolu et le Raspberry Pi prend une photo de chaque côté du Rubik's cube avec la caméra Raspberry Pi. Le Pi crée une carte de texte des carrés de couleur qui montre où ils se trouvent sur le cube. Lorsqu'il a entièrement mappé le cube, le Pi utilise la bibliothèque python "kociemba" pour cartographier les mouvements nécessaires pour résoudre le cube Rubik. Ces informations sont prises par le Pi et le BrickPi3 pour résoudre le Rubik's cube à l'aide des moteurs LEGO. Le résultat: un Rubik's cube résolu.
Étape 1: Outils et matériaux
- BrickPi3 - Nous utiliserons le BrickPi pour contrôler les moteurs LEGO qui résolvent le solveur Rubik's cube.
- Raspberry Pi – Le Pi effectuera le traitement, prendra des photos et commandera le BrickPi.
- Caméra Raspberry Pi – La caméra Pi prendra une photo du cube Rubiks non résolu.
- Câble Ethernet – Vous aurez besoin que votre machine soit connectée à Internet. Si vous voulez le faire en wifi, c'est bien aussi !
- Carte SD Raspbian for Robots – Le logiciel qui exécute le Raspberry Pi. Cela vient avec la plupart des logiciels nécessaires pour ce tutoriel. Vous pouvez également télécharger le logiciel gratuitement.
- Kit LEGO Mindstorms EV3 (31313) – Vous aurez besoin d'une pile de LEGO et de deux gros moteurs, et d'un servomoteur et du capteur à ultrasons.
- Un Rubik's Cube - Nous en avons trouvé un qui tourne assez librement ici. Vous pouvez cependant utiliser à peu près n'importe quel Rubik's cube 9x9x9.
Étape 2: Construisez-le
Construire le solveur
Cette conception a été inspirée par la conception MindCub3r pour LEGO EV3. Pour construire le BricKuber, commencez par construire le MindCub3r. Les instructions de construction LEGO complètes peuvent être trouvées ici.
La conception du solveur Rubiks cube comporte trois parties mobiles principales. Le premier est un berceau pour contenir le Rubik's cube. Le second est le shuffler, un bras qui sert à retourner le Rubik's cube.
Enfin, nous ajoutons un bras de caméra. Dans la conception originale de MindCubr, cela tenait le capteur de couleur EV3 sur le Rubik's cube. Dans notre conception modifiée, il contient une caméra Raspberry Pi sur le Rubik's cube. Nous utilisons deux moteurs LEGO Mindstorms pour manipuler le cube: le premier se trouve sous le berceau pour faire pivoter le cube, et le second déplace le bras mélangeur pour faire tourner le cube sur un axe opposé.
Assembler le BrickPi3
Vous pouvez trouver les instructions de montage pour le BrickPi3 ici. Nous devrons assembler le boîtier, attacher le BrickPi3, le Raspberry Pi, la caméra Raspberry Pi, ajouter une carte SD et ajouter des piles. Pour faciliter la configuration du logiciel, Raspbian for Robots est livré avec la plupart des logiciels dont vous aurez besoin déjà configurés. Vous aurez besoin d'au moins une carte SD de 8 Go et vous voudrez étendre le disque pour qu'il s'adapte à toute la taille de la carte SD.
Fixez le BrickPi3
Nous ajoutons le BrickPi3 à l'assemblage LEGO. Nous avons utilisé les « ailes » LEGO EV3 pour soutenir le BrickPi3 et le mettre au niveau du corps du BricKuber. C'est une bonne étape pour ajouter des piles 8XAA au bloc d'alimentation et attacher le bloc d'alimentation BrickPi3 à l'assemblage LEGO. Pour la programmation, vous pouvez alimenter le BrickPi3 via l'alimentation USB du Raspberry Pi, mais pour déplacer les moteurs, vous devrez fournir de l'alimentation avec le Power Pack.
Connectez les moteurs au BrickPi3
Fixez le moteur du mélangeur au port du moteur « MD ». Fixez le moteur du berceau au port « MA » du BrickPi3. Fixez le moteur du capteur de la caméra au port « MC » (il s'agit du plus petit moteur de type servo). Même si nous ne déplacerons pas la caméra, vous voudrez peut-être ajuster l'emplacement de la caméra à l'aide des moteurs.
Fixez la caméra Raspberry Pi
À l'aide du support de caméra LEGO, fixez la caméra. La petite lentille noire de la caméra doit s'insérer entre les deux supports de poutre LEGO. Fixez la caméra en place aux supports LEGO avec du ruban isolant. C'est le bon moment pour s'assurer que la caméra est en position pour pouvoir capturer l'intégralité du Rubik's cube. Vous pouvez prendre une photo de test avec la commande raspistill
raspistill -o cam.jpg
Vérifiez que le cube est bien centré au milieu de l'image.
Étape 3: préparer le logiciel
Vous pouvez utiliser n'importe quelle version de Raspbian ou Raspbian for Robots, notre image personnalisée fournie avec le BrickPi3 déjà installé. Si vous utilisez une version standard de Raspbian, vous pouvez installer les librairies BrickPi3 à l'aide de la commande
sudo curl -kL dexterindustries.com/update_brickpi3 | frapper
Cette étape installera toutes les bibliothèques nécessaires pour exécuter le BrickPi3 sur votre image Raspbian. Ignorez cette étape si vous utilisez Raspbian for Robots: le BrickPi3 est déjà installé.
Enfin, installez toutes les dépendances du projet à l'aide de la commande:
sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | frapper
Pour cette étape, votre BrickPi3 devra être connecté à Internet. Le projet dépend d'un certain nombre de bibliothèques, dont certaines cruciales de Daniel Walton (@dwalton76) sur Github, qui sont utilisées pour résoudre le Rubik's cube.
Étape 4: Résoudre un Rubik's Cube
Placez un Rubik's cube non résolu dans le berceau. Exécutez la commande
sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py
Le robot tournera le cube sur chaque face et la caméra prendra 6 photos, une de chaque côté du cube. Le Raspberry Pi déterminera la configuration du cube à partir des six images. La configuration du Cube sera transmise à la bibliothèque Python kociemba pour trouver une solution efficace. Enfin, le robot exécutera les mouvements pour résoudre le Rubik's Cube !
Étape 5: Le code source
Tout le code source du BricKuber se trouve dans notre référentiel github open source ici.
Ce projet utilise les packages logiciels suivants installés par la commande
Conseillé:
Arduino - Robot de résolution de labyrinthe (MicroMouse) Robot de suivi de mur : 6 étapes (avec photos)
Arduino | Robot de résolution de labyrinthe (MicroMouse) Robot de suivi de mur : Bienvenue, je suis Isaac et voici mon premier robot "Striker v1.0". Ce robot a été conçu pour résoudre un labyrinthe simple. Dans la compétition, nous avions deux labyrinthes et le robot a été en mesure de les identifier. Tout autre changement dans le labyrinthe peut nécessiter un changement dans le
Compteur de fréquence haute résolution : 5 étapes (avec photos)
Compteur de fréquence haute résolution : cette instructable montre un compteur de fréquence réciproque capable de mesurer les fréquences rapidement et avec une précision raisonnable. Il est fabriqué avec des composants standard et peut être fabriqué en un week-end (cela m'a pris un peu plus de temps :-)) EDIT : Le code est maintenant disponible
Webcam haute résolution : 9 étapes (avec photos)
Webcam haute résolution : Pendant quelques années, j'ai utilisé une webcam basée sur RPi (avec le module PiCam). Les images produites étaient correctes mais ensuite, il y a eu un moment où je n'étais plus satisfait de la qualité. J'ai décidé de faire une webcam haute résolution. Les parties suivantes w
Cubes et formes en carton 1: 4 étapes (avec photos)
Cubes et formes en carton 1 : En expérimentant avec des brochettes en bois et du carton, j'ai trouvé quelques façons de fabriquer des cubes et d'autres formes à partir de matériaux simples. En les publiant sous forme d'Instructables, j'espère promouvoir un jeu et un apprentissage constructifs. Variations sur cette instruction
Robot de résolution de labyrinthe : 5 étapes (avec photos)
Robot Maze Solver : - ce robot conçu pour résoudre un labyrinthe simple sans aucune IA en utilisant les techniques suivantes dans le code : 1) PID2) équations de rotation 3) étalonnage lien de code gitHub : https://github.com/marwaMosafa/Maze-solver -algorithme