Table des matières:

Projet BricKuber - un robot de résolution de cubes Rubiks Raspberry Pi : 5 étapes (avec photos)
Projet BricKuber - un robot de résolution de cubes Rubiks Raspberry Pi : 5 étapes (avec photos)

Vidéo: Projet BricKuber - un robot de résolution de cubes Rubiks Raspberry Pi : 5 étapes (avec photos)

Vidéo: Projet BricKuber - un robot de résolution de cubes Rubiks Raspberry Pi : 5 étapes (avec photos)
Vidéo: Cette Fille a 200 de QI 2024, Juin
Anonim
Image
Image

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

Construit le
Construit le
  • 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

Construit le
Construit le
Construit le
Construit 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

Résoudre un Rubik's Cube
Résoudre un Rubik's Cube
Résoudre un Rubik's Cube
Résoudre un Rubik's Cube
Résoudre un Rubik's Cube
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é: