Table des matières:

Serpent robotique bio-inspiré : 16 étapes (avec photos)
Serpent robotique bio-inspiré : 16 étapes (avec photos)

Vidéo: Serpent robotique bio-inspiré : 16 étapes (avec photos)

Vidéo: Serpent robotique bio-inspiré : 16 étapes (avec photos)
Vidéo: [Obs/IN 2017 ] Capteurs optiques bio-inspirés pour la robotique - Stéphane Viollet 2024, Juillet
Anonim
Image
Image

J'ai été inspiré pour commencer ce projet après avoir vu des vidéos de recherche sur les serpents robotiques grimpants dans les arbres et les anguilles robotiques. C'est ma première tentative de construction de robots utilisant la locomotion serpentine, mais ce ne sera pas la dernière ! Abonnez-vous sur YouTube si vous souhaitez voir les développements futurs.

Ci-dessous, je décris la construction de 2 serpents différents ainsi que les fichiers pour l'impression 3D et une discussion sur le code et les algorithmes permettant d'obtenir un mouvement semblable à celui d'un serpent. Si vous souhaitez continuer à en apprendre davantage, après avoir lu cette instructable, je vous suggère de lire les liens dans la section références au bas de la page.

Cette instructable est techniquement un 2-en-1, en ce sens que j'explique comment faire 2 versions différentes d'un serpent robotique. Si vous n'êtes intéressé que par la construction d'un des serpents, ignorez les instructions pour l'autre serpent. Ces 2 serpents différents seront désormais désignés en utilisant les expressions suivantes de manière interchangeable:

  1. Serpent à axe unique, serpent 1D ou serpent jaune et noir
  2. Serpent à double axe, serpent 2D ou serpent blanc

Bien sûr, vous pouvez imprimer les serpents dans n'importe quel filament de couleur que vous voulez. La seule différence entre les deux serpents est que dans le serpent 2D, chaque moteur est tourné de 90 degrés par rapport au précédent, alors que dans le serpent 1D, tous les moteurs sont alignés sur un seul axe.

Un dernier avant-propos est que bien que chacun de mes serpents n'ait que 10 servos, il est possible de fabriquer les serpents avec plus ou moins de servos. Une chose à considérer est qu'avec moins de servos, vous obtiendrez un mouvement moins réussi, et avec plus de servos, vous aurez probablement plus de succès avec le mouvement en serpentin, mais vous devrez tenir compte du coût, de la consommation de courant (voir les remarques ultérieures) et du nombre de broches. disponible sur Arduino. N'hésitez pas à modifier la longueur du serpent, mais gardez à l'esprit que vous devrez également modifier le code pour tenir compte de ce changement.

Étape 1: Composants

Ceci est une liste de pièces pour un seul serpent, si vous voulez faire les deux serpents, vous devrez doubler le volume des composants.

  • 10 servos MG996R*
  • Filament d'impression 3D de 1,75 mm
  • 10 roulements à billes, numéro de pièce 608 (j'ai récupéré le mien du bord extérieur des spinners Jitterspin)
  • 20 petits roulements à billes, numéro de pièce r188, pour les roues** (j'ai récupéré le mien de la partie interne des spinners Jitterspin)
  • 40 vis cruciformes 6-32 x 1/2" (ou similaire)
  • 8 vis plus longues (je n'ai pas de référence mais elles ont le même diamètre que les vis ci-dessus)
  • Au moins 20 pièces de zipties de 4 pouces (c'est à vous de décider combien vous voulez utiliser)
  • 5 m chacun de fil rouge et noir de calibre 20 ou plus épais***
  • Fil standard de calibre 22
  • 30 broches d'en-tête mâles (divisées en 10 lots de 3)
  • Arduino Nano
  • Pièces imprimées en 3D (voir section suivante)
  • Une certaine forme d'alimentation (voir la section: "Powering the snake" pour plus d'infos), j'ai personnellement utilisé une alimentation ATX modifiée
  • Condensateur électrolytique 1000uF 25V
  • Tube thermorétractable de différentes tailles, soudure, colle et autres outils divers

*vous pouvez utiliser d'autres types mais vous devrez reconcevoir les fichiers 3D pour les adapter à vos servos. De plus, si vous essayez d'utiliser des servos plus petits comme le sg90, vous constaterez peut-être qu'ils ne sont pas assez puissants (je n'ai pas testé cela et ce sera à vous d'expérimenter).

** vous n'avez pas besoin d'utiliser de petits roulements à billes pour les roues, j'en avais juste beaucoup à traîner. Alternativement, vous pouvez utiliser des roues LEGO ou d'autres roues de jouets.

***Ce fil peut avoir jusqu'à 10 ampères qui le traverse, trop fin et le courant le fera fondre. Consultez cette page pour plus d'informations.

Étape 2: Composants d'impression 3D

Assemblage des serpents
Assemblage des serpents

Si vous faites le serpent 1D, imprimez ces pièces.

Si vous faites le serpent 2D, imprimez ces pièces.

Remarque importante: l'échelle peut être erronée ! Je conçois mes composants dans Fusion 360 (en unités mm), j'ai exporté la conception sous forme de fichier.stl dans le logiciel MakerBot, puis je l'ai imprimée sur une imprimante Qidi Tech (une version clonée de la MakerBot Replicator 2X). Quelque part le long de ce flux de travail, il y a un bug et toutes mes impressions sont trop petites. Je n'ai pas pu identifier l'emplacement du bogue mais j'ai une solution temporaire de mise à l'échelle de chaque impression à une taille de 106% dans le logiciel MakerBot, cela résout le problème.

Compte tenu de cela, sachez que si vous imprimez les fichiers ci-dessus, ils peuvent être incorrectement mis à l'échelle. Je suggère d'imprimer une seule pièce et de vérifier si elle correspond à votre servo MG996R avant de toutes les imprimer.

Si vous imprimez l'un des fichiers, veuillez me faire savoir quel est le résultat: si l'impression est trop petite, juste, trop grande et de quel pourcentage. En travaillant ensemble en tant que communauté, nous pouvons résoudre l'emplacement du bogue à l'aide de différentes imprimantes 3D et trancheuses.stl. Une fois le problème résolu, je mettrai à jour cette section et les liens ci-dessus.

Étape 3: Assemblage des serpents

Assemblage des serpents
Assemblage des serpents
Assemblage des serpents
Assemblage des serpents
Assemblage des serpents
Assemblage des serpents

Le processus d'assemblage est pratiquement le même pour les deux versions du serpent. La seule différence est que dans le serpent 2D, chaque moteur est tourné de 90 degrés par rapport au précédent, alors que dans le serpent 1D, tous les moteurs sont alignés sur un seul axe.

Commencez par dévisser le servo, conservez les vis et retirez les pièces supérieure et inférieure du cadre en plastique noir, et faites attention à ne perdre aucun des engrenages ! Faites glisser le servo dans le cadre imprimé en 3D, orienté comme sur les images ci-dessus. Remplacez le haut du boîtier du servo et vissez-le en place avec quatre vis 6-32 1/2 . Conservez le bas du cadre du servo (au cas où vous voudriez l'utiliser à nouveau dans des projets ultérieurs) et remplacez-le par le 3D boîtier imprimé, la seule différence étant le bouton supplémentaire pour un roulement à billes à glisser. Vissez le servo ensemble, répétez 10 fois.

IMPORTANT: avant de continuer, vous devez télécharger le code sur l'Arduino et déplacer chaque servo à 90 degrés. Si vous ne le faites pas, vous risquez de casser un ou plusieurs servos et/ou les cadres imprimés en 3D. Si vous ne savez pas comment déplacer un servo à 90 degrés, consultez cette page. Connectez essentiellement le fil rouge du servo à 5V sur l'Arduino, le fil marron à GND et le fil jaune à la broche numérique 9, puis téléchargez le code dans le lien.

Maintenant que chaque servo est à 90 degrés, continuez:

Connectez les 10 segments en insérant le bouton imprimé en 3D d'un boîtier de servo dans le trou d'un deuxième segment, puis avec un peu de force poussez l'axe du servo dans son trou (voir les images ci-dessus et la vidéo pour plus de clarté). Si vous créez le serpent 1D, tous les segments doivent être alignés, si vous créez le serpent 2D, chaque segment doit être pivoté de 90 degrés par rapport au segment précédent. Notez que la queue et le cadre de tête ne font que la moitié de la longueur des autres segments, connectez-les mais ne commentez pas les pièces en forme de pyramide avant d'avoir terminé le câblage.

Fixez le bras servo en forme de X et vissez-le en position. Glissez le roulement à billes sur le bouton imprimé en 3D, cela nécessitera de serrer doucement les 2 poteaux en demi-cercle ensemble. Selon la marque de filament que vous utilisez et la densité de remplissage, les poteaux peuvent être trop cassants et cassants, je ne pense pas que ce sera le cas mais néanmoins n'utilisez pas une force excessive. J'ai personnellement utilisé du filament PLA avec 10% de remplissage. Une fois le roulement à billes en place, il doit rester verrouillé par les surplombs du bouton.

Étape 4: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Le circuit est le même pour les deux serpents robotiques. Pendant le processus de câblage, assurez-vous qu'il y a suffisamment d'espace de câblage pour que chaque segment tourne complètement, en particulier dans le serpent 2D.

Ci-dessus se trouve un schéma de câblage pour le câblage avec seulement 2 servos. J'ai essayé de faire un schéma de circuit avec 10 servos mais c'était beaucoup trop surpeuplé. La seule différence entre cette image et la vraie vie est que vous devez câbler 8 servos supplémentaires en parallèle et connecter les fils de signal PWM aux broches de l'Arduino Nano.

Lors du câblage des lignes électriques, j'ai utilisé un seul morceau de fil de calibre 18 (assez épais pour supporter 10 ampères) comme ligne principale de 5 V sur toute la longueur du serpent. À l'aide de pinces à dénuder, j'ai retiré une petite section d'isolant à 10 intervalles réguliers et j'ai soudé un court morceau de fil de chacun de ces intervalles à un groupe de 3 broches mâles. Répétez cette opération une deuxième fois pour le fil GND noir de calibre 18 et une deuxième broche d'en-tête mâle. Enfin, soudez un fil plus long à la 3ème broche d'en-tête mâle, cette broche transportera le signal PWM au servo de l'Arduino Nano dans la tête du serpent (le fil doit être suffisamment long pour atteindre, même lorsque les segments se plient). Fixez le tube thermorétractable au besoin. Connectez les 3 broches d'en-tête mâles aux 3 broches d'en-tête femelles des fils de servo. Répétez 10 fois pour chacun des 10 servos. En fin de compte, cela permet de câbler les servos en parallèle et de faire passer des fils de signal PWM au Nano. La raison des broches mâles/femelles était que vous pouvez facilement démonter les segments et remplacer les servos s'ils se cassent sans tout dessouder.

Soudez les fils GND et 5V à une carte perforée 3x7 trous dans la queue avec un condensateur et des bornes à vis. Le but du condensateur est de supprimer les pics de consommation de courant causés lors du démarrage des servos, ce qui peut réinitialiser l'Arduino Nano (si vous n'avez pas de condensateur, vous pouvez probablement vous en passer, mais il vaut mieux être en sécurité). N'oubliez pas que la broche longue des condensateurs électrolytiques doit être connectée à la ligne 5V et la broche la plus courte à la ligne GND. Soudez le fil GND à la broche GND du Nano et le fil 5V à la broche 5V. Notez que si vous utilisez une tension différente (voir la section suivante), disons une batterie Lipo avec 7,4 V, puis connectez le fil rouge à la broche Vin, PAS à la broche 5 V, cela détruira la broche.

Soudez les 10 fils de signal PWM aux broches de l'Arduino Nano. J'ai câblé le mien dans l'ordre suivant, vous pouvez choisir de câbler le vôtre différemment, mais n'oubliez pas que vous devrez ensuite modifier les lignes servo.attach() dans le code. Si vous n'êtes pas sûr de ce dont je parle, câblez-le de la même manière que moi et vous n'aurez aucun problème. Dans l'ordre du servo à la queue du serpent à la tête du serpent, j'ai câblé mes deux serpents dans l'ordre suivant. Connecter les broches de signal à: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Utilisez des zipties pour nettoyer le câblage. Avant de continuer, vérifiez que tous les segments peuvent se déplacer avec suffisamment d'espace pour que les fils se déplacent sans être séparés. Maintenant que le câblage est fait, nous pouvons visser les capuchons en forme de pyramide de tête et de queue. Notez que la queue a un trou pour la sortie de l'attache et la tête a un trou pour le câble de programmation Arduino.

Étape 5: Alimenter le serpent

Alimenter le serpent
Alimenter le serpent
Alimenter le serpent
Alimenter le serpent
Alimenter le serpent
Alimenter le serpent

Parce que les servos sont câblés en parallèle, ils reçoivent tous la même tension, mais le courant doit être additionné. En regardant la fiche technique des servos MG996r, ils peuvent consommer jusqu'à 900 mA chacun pendant le fonctionnement (en supposant qu'il n'y ait pas de décrochage). Ainsi, la consommation totale de courant si les 10 servos bougent en même temps est de 0,9A*10=9A. En tant que tel, un adaptateur de prise murale 5v, 2A normal ne fonctionnera pas. J'ai décidé de modifier une alimentation ATX, capable de 5v à 20A. Je ne vais pas expliquer comment faire cela, car cela a déjà été beaucoup discuté sur Instructables et YouTube. Une recherche rapide en ligne vous montrera comment modifier l'une de ces alimentations.

En supposant que vous ayez modifié l'alimentation, il s'agit simplement de connecter une longue attache entre l'alimentation et les bornes à vis du serpent.

Une autre option consiste à utiliser une batterie lipo embarquée. Je n'ai pas essayé cela, donc ce sera à vous de concevoir un support pour les batteries et de les câbler. Gardez à l'esprit les tensions de fonctionnement, le courant consommé par les servos et l'Arduino (ne soudez rien d'autre que 5v à la broche 5v sur l'Arduino, allez à la broche Vin si vous avez une tension plus élevée).

Étape 6: Testez que tout fonctionne

Avant de continuer, testons simplement que tout fonctionne. Téléchargez ce code. Votre serpent doit déplacer chaque servo individuellement entre 0 et 180, puis terminer en se couchant en ligne droite. Si ce n'est pas le cas, quelque chose ne va pas, le câblage est probablement incorrect ou les servos n'étaient pas initialement centrés à 90 degrés comme mentionné dans la section "Assemblage des serpents".

Étape 7: Coder

Il n'y a actuellement pas de télécommande pour le serpent, tous les mouvements sont préprogrammés et vous pouvez choisir ce que vous voulez. Je développerai une télécommande en version 2, mais si vous souhaitez la contrôler à distance, je vous suggère de consulter d'autres tutoriels sur Instructables et d'adapter le serpent pour qu'il soit compatible Bluetooth.

Si vous créez le serpent 1D, téléchargez ce code.

Si vous créez le serpent 2D, téléchargez ce code.

Je vous encourage à jouer avec le code, à apporter vos propres modifications et à créer de nouveaux algorithmes. Lisez les sections suivantes pour une explication détaillée de chaque type de locomotion et de son fonctionnement.

Étape 8: Échelles Vs Roues

Échelles Vs Roues
Échelles Vs Roues
Échelles Vs Roues
Échelles Vs Roues
Échelles Vs Roues
Échelles Vs Roues
Échelles Vs Roues
Échelles Vs Roues

L'une des principales façons dont les serpents peuvent avancer est la forme de leurs écailles. Les échelles permettent un mouvement vers l'avant plus facile. Pour plus d'explications, regardez cette vidéo à partir de 3:04 pour voir comment les écailles aident le serpent à avancer. Regarder 3:14 dans la même vidéo montre l'effet lorsque les serpents sont dans une manche, supprimant le frottement des écailles. Comme le montre ma vidéo YouTube, lorsque le serpent robotique 1D essaie de glisser sur l'herbe sans écailles, il ne se déplace ni en avant ni en arrière puisque les forces totalisent un zéro net. En tant que tel, nous devons ajouter des écailles artificielles sous le ventre du robot.

Des recherches sur la recréation de la locomotion via des balances ont été menées à l'Université Harvard et démontrées dans cette vidéo. Je n'ai pas pu concevoir une méthode similaire pour déplacer les écailles de haut en bas sur mon robot et j'ai plutôt opté pour la fixation d'écailles passives imprimées en 3D sur le ventre.

Malheureusement, cela s'est avéré inefficace (voir dans ma vidéo YouTube à 3:38) car les écailles effleuraient toujours la surface du tapis au lieu de s'accrocher aux fibres et d'augmenter le frottement.

Si vous souhaitez expérimenter avec les échelles que j'ai faites, vous pouvez imprimer les fichiers en 3D depuis mon GitHub. Si vous créez le vôtre avec succès, faites-le moi savoir dans les commentaires ci-dessous!

En utilisant une approche différente, j'ai essayé d'utiliser des roues fabriquées à partir de roulements à billes r188 avec une gaine thermorétractable à l'extérieur comme « pneus ». Vous pouvez imprimer en 3D les axes de roues en plastique à partir des fichiers.stl sur mon GitHub. Bien que les roues ne soient pas biologiquement précises, elles sont analogues aux balances dans la mesure où la rotation vers l'avant est facile mais le mouvement latéral est nettement plus difficile. Vous pouvez voir le résultat réussi des roues dans ma vidéo YouTube.

Étape 9: Mouvement de glissement (serpent à axe unique)

Premier prix du concours Make it Move

Conseillé: