Table des matières:

Robot éducatif DIY Micro:bit : 8 étapes (avec photos)
Robot éducatif DIY Micro:bit : 8 étapes (avec photos)

Vidéo: Robot éducatif DIY Micro:bit : 8 étapes (avec photos)

Vidéo: Robot éducatif DIY Micro:bit : 8 étapes (avec photos)
Vidéo: How to Make a Mini Robot bug 2024, Juillet
Anonim
Micro-robot éducatif bricolage: bit
Micro-robot éducatif bricolage: bit
Bricolage éducatif Micro: bit Robot
Bricolage éducatif Micro: bit Robot

Cette instructable vous montrera comment construire un robot relativement accessible, capable et bon marché. Mon objectif en concevant ce robot était de proposer quelque chose que la plupart des gens pouvaient se permettre, pour qu'ils enseignent l'informatique de manière engageante ou pour en apprendre davantage à son sujet.

Une fois que vous avez construit ce robot, vous pouvez profiter de sa variété de capteurs et d'actionneurs pour faire des choses basiques mais aussi assez avancées selon la version que vous construisez (je fournirai deux versions). Avec ce robot, vous donnez des yeux (vue à 180° !) et des jambes (avec un mouvement précis possible !) au micro:bit tandis que le micro:bit vous offre de superbes fonctionnalités telles que la matrice LED, la communication radio, la communication bluetooth, l'accéléromètre, compas, mais aussi l'accès à tout ça avec MicroPython ou avec un langage de programmation visuel similaire à scratch (en fait aussi en C++ et javascript mais je trouve ceux-ci moins adaptés à l'éducation).

Je vais également travailler sur cette instructable afin que je puisse mettre les lecteurs et les fabricants sur la bonne voie pour en savoir plus sur la robotique mobile, l'électronique, la conception et la coupe du bois. Pour ce faire, j'ai tout conçu pour qu'il soit le plus modulable possible. Par exemple, je n'utiliserai aucune colle pour permettre l'assemblage et le démontage librement, facilitant ainsi les mises à niveau et le débogage. Je vais également rendre les étapes aussi incrémentales que possible, afin que vous puissiez progressivement comprendre ce qui se passe, vérifier que les choses fonctionnent comme il se doit et arriver au bout avec un robot qui fonctionne.

Étape 1: Rassembler les pièces

Rassembler les morceaux
Rassembler les morceaux

Pour ce projet, le minimum d'ours dont vous aurez besoin est:

  • Bois MDF de 5 mm d'épaisseur et un cutter laser pour le squelette
  • 1x18650 batterie au lithium, 1x bouclier de batterie pour l'énergie et un interrupteur
  • 1xMicro:Bit card et 1xMicro:bit extension board pour le cerveau (bien que les deux puissent être facilement remplacés par un Arduino)
  • 2 moteurs pas à pas 28BYJ-5V, 2 pilotes de moteur pas à pas A4988 et 2 cartes de développement pour monter les pilotes pour les jambes
  • 1x TOF10120 et 1x Mini Servomoteur 9g pour les yeuxQuelques câbles et vis
  • 1x roue universelle, hauteur = 15mm

Parmi celles-ci, seules trois parties ne sont pas des standards, voici donc des liens pour les trouver: retrouvez la carte d'extension que j'ai utilisée ici (mais je vous conseillerais plutôt d'utiliser celle-ci pour la version soignée du robot. Il faudra ne changez presque rien à la conception et cela rendra le câblage beaucoup plus simple avec des en-têtes femelle-femelle pliés), le blindage de la batterie ici et la roue universelle ici.

Idéalement, vous aurez également à votre disposition:

  • Un multimètre
  • Une planche à pain
  • Un fer à souder

Pour ceux-là ainsi que la découpeuse laser, vérifiez si vous avez un fablab autour de chez vous ! Ce sont d'excellents endroits pour rencontrer des créateurs inspirants !

Étape 2: Préparer les jambes

Préparer les jambes
Préparer les jambes
Préparer les jambes
Préparer les jambes
Préparer les jambes
Préparer les jambes
Préparer les jambes
Préparer les jambes

Votre première mission, si vous l'acceptez, sera de faire tourner notre moteur pas à pas en utilisant le micro:bit comme contrôleur ! Pourquoi un moteur pas à pas ? J'aurais pu opter pour un moteur à courant continu avec des réducteurs, mais je les ai essayés et j'ai du mal à obtenir des moteurs bon marché pour fonctionner à basse vitesse. J'ai aussi pensé que ce serait bien de savoir précisément à quelle vitesse tournent mes roues. Pour ces raisons, les moteurs pas à pas étaient la meilleure option.

Alors maintenant, comment piloter un moteur 28BYJ à l'aide d'un driver 4988 ? La réponse est… un peu longue. Je n'ai pas réussi à le faire rentrer parfaitement dans ce instructable, alors j'en ai fait un autre juste à cet effet que vous trouverez ici. Je vous invite à suivre ces étapes jusqu'au bout avec la création d'une petite planche de prototypage de 26x22mm de large avec des trous de 2x2mm à 17 mm de distance pour la monter sur les côtés comme indiqué sur la photo ci-dessus (Notez que comme indiqué dans l'article référencé le fil jaune sur la gauche qui dépasse est juste là pour vous rappeler de souder SLP et RST ensemble).

Après avoir fait fonctionner cela avec un moteur avec la carte de prototypage, j'ai également conçu mon propre PCB pour rendre les choses un peu plus ordonnées. J'ai joint le fichier easyEDA correspondant. C'est un fichier txt mais vous pouvez toujours l'ouvrir avec la plateforme d'édition en ligne gratuite easyEDA.

Étape 3: Je vois la lumière !! (Optionnel)

Je vois la Lumière !! (Optionnel)
Je vois la Lumière !! (Optionnel)
Je vois la Lumière !! (Optionnel)
Je vois la Lumière !! (Optionnel)
Je vois la Lumière !! (Optionnel)
Je vois la Lumière !! (Optionnel)

Si vous voulez juste construire et rien de plus, passez à l'avant-dernier paragraphe de cette étape pour voir comment connecter un TOF10120 au micro:bit. Si ce n'est pas le cas.

Comme notre micro:bit n'est pas livré avec une caméra ou un capteur de proximité, cela le rend en quelque sorte aveugle pour toute application de robotique mobile. Il est cependant livré avec un émetteur et un récepteur radio qui nous permettraient de construire le squelette sur ce que nous avons déjà et d'obtenir un robot télécommandé. Mais ne serait-il pas formidable de rendre notre robot autonome ? Oui ça le serait ! Voyons donc comment y arriver.

Ce qui nous intéresse maintenant, c'est d'équiper notre robot de capteurs, pour que notre robot acquière quelques informations sur son environnement. Il existe de nombreux types de capteurs disponibles, mais ici, nous nous concentrerons sur les capteurs de proximité. Lorsque j'ai conçu ce robot, mon objectif était principalement que le robot ne s'écrase sur rien, donc je voulais qu'il détecte les obstacles. Pour cela, il existe également quelques options. Une première, très simple, pourrait être d'utiliser des pare-chocs, mais je trouve les informations sur l'environnement un peu limitées. A l'autre extrême, vous pourriez penser à ajouter une caméra (ou un Lidar ou un kinect !). J'adore les caméras, la vision par ordinateur et toutes ces choses, mais malheureusement, Micro:bit ne les prend pas en charge (nous devrions utiliser un Raspberry Pi pour prendre en charge de tels appareils, pas un micro:bit ou Arduino).

Alors, qu'est-ce que le micro:bit prend en charge entre une caméra et des pare-chocs ? Il existe de petits capteurs actifs qui envoient de la lumière dans l'environnement et vérifient ce qui est reçu pour obtenir des informations sur le monde. Celui que je connaissais déjà était le GP2Y0A41SK0F qui utilise une méthode de triangulation pour estimer la distance aux obstacles. Cependant je me demandais si je pouvais trouver mieux, alors j'ai fait quelques recherches et j'ai fini par découvrir le TOF10120 (et le GY-VL53L0XV2 mais je ne l'ai pas encore reçu:(). Voici un bel article pour vous le faire découvrir. Fondamentalement ce capteur émet un signal infrarouge qui se réfléchit sur les obstacles et il reçoit ensuite la lumière réfléchie. En fonction du temps mis par la lumière pour aller et venir, le capteur peut estimer la distance de l'obstacle (d'où le nom TOF=temps de vol Pour sa petite taille, sa portée et sa puissance, j'ai décidé d'utiliser le TOF10120.

Alors que ma première idée était d'en mettre trois sur le robot (un devant et deux sur les côtés), le nouvel an chinois et la pandémie de COVID-19 ne l'ont pas voulu ainsi car cela semblait poser des problèmes d'expédition. Alors comme j'étais limité à un TOF10120, que je voulais voir sur les côtés aussi et que j'avais des servomoteurs qui traînaient, j'ai décidé de monter mon capteur sur un servo. Il me manque donc deux choses maintenant: comment utiliser le TOF10120 avec le micro:bit ? Et même question avec le servo.

Heureusement, le micro:bit est équipé du protocole de communication I2C et cela nous simplifie la vie: branchez le fil rouge à 3,3V, noir à masse, vert à SCL et bleu à SDA et c'est tout pour la partie matérielle. Pour le logiciel, je vous encourage à lire un peu sur la communication I2C et à essayer le code python que j'ai joint sur le micro:bit. Ce programme devrait vous imprimer la distance mesurée par le capteur sur le REPL (Read Evaluate Print Loop). C'est ça. Nous venons de donner la vue à notre micro:bit.

Faisons-lui maintenant tourner le cou si vous me permettez de continuer mes analogies avec l'anatomie animale. La seule chose dont nous aurons besoin est de piloter un servomoteur avec le micro:bit. Cette partie devient longue donc je vais juste vous donner ce lien qui contient toutes les informations dont vous aurez besoin et le code que j'ai utilisé pour le tester. Si vous le souhaitez, j'ai également ajouté un code simple pour contrôler le servo à l'aide de pin0. N'oubliez pas d'alimenter votre servo en 5V et non en 3,3V.

Étape 4: Piratage du bouclier de batterie

Piratage du bouclier de batterie
Piratage du bouclier de batterie
Piratage du bouclier de batterie
Piratage du bouclier de batterie
Piratage du bouclier de batterie
Piratage du bouclier de batterie

Maintenant que nos actionneurs et capteurs sont prêts, il est temps de jeter un œil au système de gestion de la batterie. Pour que vous en appreniez plus sur le bouclier de batterie que j'ai choisi, je vous conseille de lire cet article. Je le trouve très clair et accessible. De cet article, nous pouvons voir de nombreux avantages de ce bouclier de batterie, mais il y a un inconvénient important que je ne voulais pas accepter: l'interrupteur ON/OFF n'affecte que la sortie USB. Cela signifie que si vous éteignez l'interrupteur, toutes les autres broches 3,3 V et 5 V seront alimentées. En conséquence, comme nous utilisons ces broches pour notre robot, le commutateur ne fera rien du tout…

Mais je veux pouvoir éteindre mon robot pour ne pas vider ma batterie pour rien, j'ai donc dû pirater le bouclier de batterie. Ce ne sera pas joli, mais ça marche et ça ne coûte rien. Par conséquent, je veux qu'un interrupteur ouvre ou ferme le circuit afin qu'il isole ma cellule de batterie du blindage de la batterie. Je n'ai pas le matériel pour toucher le PCB, mais j'ai des morceaux de plastique tout autour. Alors maintenant, imaginez que je coupe un morceau de plastique pour qu'il puisse s'adapter à une extrémité de ma cellule de batterie dans le bouclier comme dans la première image ci-dessus. Le circuit est maintenant ouvert et ma batterie est stockée en toute sécurité.

Oui mais je ne veux pas avoir à ouvrir le robot pour accéder au cache batterie pour mettre et retirer ce morceau de plastique ! Facile: munissez-vous d'un interrupteur et collez deux petits carrés d'aluminium sur chacun des fils connectés à l'interrupteur. Collez maintenant ces deux morceaux d'aluminium sur le morceau de plastique afin d'isoler les deux morceaux d'aluminium l'un de l'autre et d'exposer l'aluminium à l'extérieur de votre système. Normalement ça devrait le faire. Insérez votre nouvelle création dans le blindage de la batterie à côté de la cellule, et l'interrupteur devrait vous permettre d'ouvrir ou de fermer le circuit connecté à la cellule.

Une dernière chose: pour faciliter le montage et le démontage du robot, je vous conseille de souder des connecteurs femelles sur le blindage de la batterie. De cette façon, vous pouvez facilement brancher et débrancher ce que vous construisez avec les moteurs et leurs pilotes.

Étape 5: Conception et découpe 3D

Conception et découpe 3D
Conception et découpe 3D
Conception et découpe 3D
Conception et découpe 3D

La seule chose qui manque maintenant est de construire la structure qui maintiendra tous nos composants ensemble. Pour ce faire j'ai utilisé la plateforme en ligne tinkercad. C'est un environnement vraiment agréable pour faire de la CAO de base, ce qui est souvent suffisant pour concevoir des éléments pour la découpeuse laser.

Après un certain temps de réflexion, il était temps de bricoler. Pour ce faire, j'ai commencé à assembler des modèles 3D des différentes pièces que j'avais (d'abord en gardant le servo et le TOF hors de l'équation). Cela inclut la batterie et le blindage, les moteurs pas à pas et les pilotes de moteur, et bien sûr le micro:bit avec sa carte d'extension. J'ai joint tous les modèles 3D correspondants sous forme de fichiers stl. Pour faciliter le processus, j'ai décidé de rendre mon robot symétrique. En conséquence, j'ai bricolé avec seulement la moitié du robot et j'ai atteint le design montré dans l'image ci-dessus.

De là, quelques versions sont nées, parmi lesquelles j'en ai sélectionné deux:

  • Un tout bien rangé, sans le capteur de proximité, ce qui permet de ne pas avoir de fils apparaissant. Bien qu'elle ne soit pas autonome, cette version peut toujours être programmée via Bluetooth via un iPad par exemple, ou peut être programmée pour être contrôlée à l'aide de signaux radio pouvant par exemple être envoyés par un autre micro:bit comme indiqué dans la vidéo ci-dessus.
  • Un bien moins rangé qui permet d'aller beaucoup plus loin dans la robotique mobile puisqu'il permet de capter la distance d'obstacle avec une vue à 180° grâce au capteur de proximité intégré à un servomoteur.

Pour le monter, rendez-vous dans votre Fablab préféré et utilisez le cutter laser que vous trouverez pour découper le modèle de votre choix: le premier correspondant aux fichiers design1_5mmMDF.svg et design1_3mmMDF qui correspondent respectivement aux pièces à découper dans le MDF 5mm le bois et ceux à couper dans celui de 3 mm; le second correspond au fichier design2_5mmMDF.svg. Définissez les contours noirs à découper et les rouges à graver.

Note latérale: j'ai ajouté le motif rouge juste pour le rehausser. Il s'agit d'une fonction de remplissage Hilbert que j'ai générée à l'aide du code python joint.

Étape 6: Monter la bête

Monter la bête
Monter la bête
Monter la bête
Monter la bête
Monter la bête
Monter la bête

Les étapes que j'ai suivies pour monter la première version du robot sont les suivantes (les images doivent normalement être dans le bon ordre):

  1. Retirez le capuchon bleu des moteurs et coupez-le un peu pour que le câble dépasse de l'arrière du moteur.
  2. Montez les moteurs de chaque côté à l'aide de vis et de boulons M2.
  3. Montez la carte de prototypage sur les côtés à l'aide des trous de 2x2 mm et de quelques vis et boulons.
  4. Mettez les pilotes A4988 et scotchez les câbles du moteur pour le garder bien rangé.
  5. Montez la roue universelle sous la partie inférieure et ajoutez les côtés.
  6. Montez la carte d'extension du micro:bit sur la partie supérieure.
  7. Montez le bas du capot avant flexible.
  8. Mettez le blindage de la batterie et branchez le tout (pour ce faire, comme j'attendais toujours la livraison de la carte d'extension que je voulais et que je n'en avais qu'une avec des embases femelles qui dépassaient, j'ai recyclé un câble IDE d'un vieil ordinateur pour arriver à ne pas avoir mes câbles qui collent à la carte afin de couvrir tout cela par le capot avant pliable). Bien que le code que j'ai fourni soit très facile à adapter, pour l'utiliser directement, vous devrez connecter le STEP gauche à la broche 2, le STEP droit à la broche 8, le DIR gauche à la broche 12, le DIR droit à la broche 1.
  9. Mettez le micro:bit dans l'extension.
  10. Testez que tout fonctionne avec MoveTest.py avant d'aller plus loin.
  11. Montez l'interrupteur sur la partie supérieure et placez l'embout en plastique à côté de la pile au lithium.
  12. Vissez la partie supérieure du capot avant.
  13. Montez le dos, et le tour est joué ! Phew ! Je ne m'attendais pas à autant d'étapes ! C'est tellement plus facile d'y penser et de le faire que de l'expliquer avec des mots ! (Et je suis sûr qu'il va encore manquer des informations !)

Si vous construisez la deuxième version avec le capteur de proximité, alors:

  1. Suivez les instructions ci-dessus. La seule différence sera que vous devrez ajouter des entretoises M2 à l'étape 7 (bien que c'est ce que j'ai fait mais ce n'est pas obligatoire), ignorez l'étape 8 et l'étape 13 (car il n'y a pas de capot avant)
  2. Montez le servomoteur avec des vis M2 et connectez le VCC et GND du servo directement sur le 5V du blindage de la batterie, et connectez l'entrée de contrôle à la broche 0 du micro:bit.
  3. Montez les deux morceaux de bois qui iront sur le servo avec une vis, vissez le capteur TOF dessus ainsi que la pièce en plastique blanc qui vient avec le servo.
  4. Montez cette dernière unité sur le servo et connectez le capteur en utilisant I2C de micro:bit comme décrit à l'étape 3.

Étape 7: programmer

C'est ça ! Vous avez un robot que vous pouvez programmer en micro:python ou en makecode. J'ai joint ici un exemple de code que j'ai utilisé pour faire les vidéos ci-dessus:

  • Exemple 1: Mettez radioControl.py sur le micro:bit du robot et ReadAccelero.py sur un autre micro:bit pour contrôler le robot en utilisant l'inclinaison du deuxième micro:bit.
  • Exemple 2: Mettez Autonomous.py sur la version 2 du robot il va explorer l'environnement.

Ce ne sont que des exemples de base que vous pouvez utiliser pour aller beaucoup plus loin. Par exemple j'aime bien la localisation et la cartographie simultanées, et normalement il y a tout ce qu'il faut dans la version 2 de ce robot pour faire ça ! Bien qu'un gros inconvénient pour moi de faire un tel projet est que le pilote micro:bit PWM est un pilote logiciel qui utilise la même minuterie pour tous les canaux, ce qui signifie que tous les PWM que nous définissons doivent avoir la même fréquence (ce que j'ai fait Je ne sais pas quand j'ai écrit les exemples de codes bien que j'ai détecté quelque chose d'étrange lorsque j'ai écrit Autonomous.py).

Étape 8: Aller plus loin

N'hésitez pas à améliorer le design, à résoudre certains problèmes que je n'ai pas vus. Par exemple, j'aimerais éventuellement:

  • Ajouter un capteur IR au bas du robot pour qu'il détecte si le sol est noir ou blanc ou s'il atteint le bout de mon bureau.
  • Changer le système de gestion de batterie car je n'en suis pas encore satisfait. En effet, pour le moment, pour recharger la batterie, il faut démonter le robot pour retirer la cellule ou le blindage de la batterie… J'envisage donc de: 1. rajouter un connecteur mini-USB au dos du robot que j'ai je vais me connecter au blindage de la batterie pour que je puisse la recharger; 2. Découpez un trou en bas pour voir les LED de la protection de la batterie pour voir quand la charge est terminée.
  • Vérifiez s'il existe un moyen acceptable de produire des PWM avec des fréquences différentes.
  • Essayez le VL53L0XV2 pour remplacer le TOF10120 car cela pourrait être une option moins chère qui le rendrait accessible à encore plus de personnes. Bien que j'en ai lu plus sur ce capteur et il semble que la société qui l'a fabriqué à bas prix l'ait volontairement très difficile à gérer…
  • Testez différentes conceptions de roues pour les rendre plus durables (pour le moment, je m'attendrais à ce que si je rentre et retire les roues plusieurs fois, le bois sera progressivement endommagé. Si je rends le bois plus élastique en modifiant la conception, je pourrais pouvoir le faire durer plus longtemps)

Un grand merci aux personnes de l'équipe Robotique mobile (maintenant intégrée au laboratoire Biorobotique) de l'EPFL qui m'ont beaucoup aidé à approfondir mes connaissances en électronique et mécanique !

Conseillé: