Fabriquez une fourmi robotisée: 9 étapes

Fabriquez une fourmi robotisée: 9 étapes

Table des matières:

Anonim

Construisez un robot pouvant être contrôlé à distance ou fonctionnant de manière autonome. À l'aide d'un détecteur infrarouge, il peut rechercher et récupérer des objets. Il est contrôlé par un microcontrôleur Picaxe 20x-2.

Bien qu'il s'agisse d'un robot relativement complexe, certaines techniques et certains circuits moteurs peuvent être utilisés pour d'autres robots plus simples.

Cette instructable montre comment:

1-Utilisez un contrôleur Picaxe pour recevoir les signaux de télécommande d'une télécommande universelle standard.

2-Utilisez un contrôleur Picaxe pour vous connecter à un capteur de distance infrarouge.

3-Envoyez les commandes série à un contrôleur de moteur série ou à un servo-contrôleur série.

4-Fabriquez un simple préhenseur robot.

La vidéo montre le robot utilisant l'infrarouge pour localiser et ramasser un bloc de bois. Cela montre également que, comme la plupart des fourmis, la fourmi robotique a un certain dédain pour ses chétifs maîtres humains.

18+

Provisions:

Étape 1: Comment ça marche

Un microcontrôleur Picaxe 20x-2 contrôle un capteur de distance infrarouge pour localiser et prendre des objets. Il utilise des commandes en série pour contrôler un contrôleur de moteur qui actionne les deux moteurs à engrenages qui déplacent les bandes de roulement du réservoir pour propulser le robot.

Il utilise également des commandes en série pour contrôler un servo-contrôleur qui positionne les trois servos qui gèrent les mouvements du corps, de la tête et des pinces.

Il peut être contrôlé par une télécommande de téléviseur standard ou peut fonctionner de manière autonome.

La fourmi du robot utilise une construction modulaire. Chaque circuit est un module qui se branche dans des connecteurs d’en-tête.1 ". Il est donc facile de tester chaque circuit sur une maquette avant son installation. Il rend également les modules disponibles pour le prochain robot ou un autre projet.

Pour plus de détails sur la fabrication de ces modules, voir:

La fourmi du robot mesure environ 12 pouces de long et a été conçue intentionnellement plus grande que nécessaire pour laisser plus de place à plus de circuits. J'ai l'intention de l'utiliser comme plate-forme de test pour les capteurs de peau et les capteurs d'antenne sur lesquels je travaille.

Étape 2: Pièces et pièces

Pièces de Sparkfun:http://www.sparkfun.com/index

Microcontrôleur PICAXE 20X2

www.sparkfun.com/products/9432

Chargeur Lithium Polymère

www.sparkfun.com/products/8293

2- 3.7v. Batterie lithium-ion polymère - 110mAh

www.sparkfun.com/products/731

2-3.7v. Batterie lithium-ion polymère - 1000mAh

www.sparkfun.com/products/339

Ces piles LiPo sont légères, peu encombrantes et ne se déchargent pas rapidement lorsqu'elles ne sont pas utilisées, contrairement aux piles au lithium ordinaires. Ils ont également un circuit intégré qui protège contre les courts-circuits et les décharges excessives.

Pièces de Polulu:

Contrôleur de moteur double série Pololu Micro - Ce très petit contrôleur de moteur n'est plus disponible, mais pourrait être remplacé par ceci: Contrôleur de moteur série double Pololu Qik 2s9v1 - http: //www.pololu.com/catalog/product/1110

Servo-contrôleur Micro Serial Pololu (kit partiel) -http: //www.pololu.com/catalog/product/208

Régulateur abaisseur de tension Pololu D15V35F5S3

Capteur de distance analogique Sharp GP2Y0A21YK0F

www.pololu.com/catalog/product/136

Pièces de Tower Hobbies:

3- Servos micro à couple élevé Futaba S3114

www3.towerhobbies.com/cgi-bin/wti0001p?&I=LXNCV6&P=ML

Ce sont des servos très petits et puissants pour leur poids.

Motoréducteurs et bandes de roulement des réservoirs de Solarbotics:

Moteur à engrenage et groupe de roulement-http: //www.solarbotics.com/products/gmtpkg/

Module récepteur IR Panasonic PNA4602M à partir de:

www.hobbyengineering.com/H1527.html

Pièces de Mouser.com:

Divers condensateurs, résistances et LED

PERF BOARD SOUDABLE, LINE PATTERN - Utilisé pour la fabrication de modules et la carte mère du robot:

www.allelectronics.com/make-a-store/item/ECS-4/SOLDERABLE-PERF-BOARD-LINE-PATTERN//1.html

La deuxième étape montre les trois dômes en polycarbonate qui protègent l'abdomen, le thorax et la tête du robot. Ils ont été sciés, puis le disque de puissance a été poncé. Ils ont été fabriqués à partir de pièces d'un kit de fabrication de globe de neige qui n'est plus disponible. Quelque chose de similaire pourrait être fait en utilisant des pièces de verres à vin en plastique. Ou bien, une coque opaque plus souple pourrait être fabriquée à partir d'Oogoo:

Étape 3: Fabriquer un robot préhenseur

Comment ça marche

La mandibule de la fourmi est une pince très simple qui fonctionne en étant tenue fermée par un ressort. Une came sur le côté inférieur est tournée par un servo pour l'ouvrir. Ainsi, lorsque la pince ouverte est fermée, elle saisit la force du ressort et se tient fermement sur des objets de différents diamètres. Les deux côtés de la pince sont assez lisses et tirent l’objet saisi en direction d’un pare-chocs en caoutchouc qui l’empêche de glisser vers le bas lorsqu’il est soulevé.

Cette conception permet au servo de pivoter librement dans le sens contraire des aiguilles d'une montre ou dans le sens contraire des aiguilles d'une montre et aucun capteur de pression ni interrupteur d'arrêt n'est nécessaire pour saisir un objet.

Les doigts et le corps de la pince à fourmis ont été fabriqués avec un matériau de carte de circuit imprimé FRS revêtu de cuivre. Les roulements de pivot ne sont que 4 à 40 boulons à travers les trous percés dans le circuit imprimé.

Les images step3 montrent le haut et le bas de la pince.

Étape 4: Microcontrôleur Picaxe 20x-2

Les microcontrôleurs Picaxe sont, à mon avis, très sous-estimés. Ils ont un très petit facteur de forme qui nécessite un minimum de pièces externes. Ils sont peu coûteux et très faciles à programmer dans le langage de programmation BASIC intuitivement évident. En bref, ce sont les microcontrôleurs les plus faciles à apprendre à se connecter et à programmer.

Le Picaxe 20x-2 est mon microcontrôleur préféré. Il a beaucoup d'entrées et de sorties et de nombreuses entrées ADC. Il peut fonctionner jusqu'à 64 MH. De plus, il ne faut pas plus d'une résistance (pour empêcher Serin de flotter) pour créer un module autonome.

Contrôler la fourmi du robot

Le Picaxe envoie des commandes série au contrôleur de moteur et au servo-contrôleur. Ils continuent à maintenir la dernière commande reçue. Cela permet au Picaxe de passer son temps à scanner ses capteurs pour déterminer la réponse suivante.

Pièce d'expansion

Dans cette application, environ un tiers seulement de l'espace de programmation était utilisé. Moins d’un tiers des broches d’entrée et de sortie ont été utilisées, ce qui laisse beaucoup de place pour davantage de capteurs ou d’actionneurs.

Pour plus de détails sur la création de modules Picaxe rapides avec Perfboard, voir:

www.instructables.com/id/Picaxe-Projects-1-Making-Fast-Printed-Circuit-Mo/

Pour un micro robot très petit contrôlé par un Picaxe, voir:

www.instructables.com/id/Building-Small-Robots-Making-One-Cubic-Inch-Micro/

Pour un robot encore plus petit contrôlé par un Picaxe, voir:

www.instructables.com/id/Build-a-Very-Small-Robot-Make-The-Worlds-Smalles/

Les images miniatures de l’étape 4 montrent le haut et le bas du module Picaxe.

Étape 5: Contrôleur de moteur en série

Le contrôleur de moteur Polulu reçoit des commandes série du contrôleur Picaxe pour contrôler les deux moteurs à engrenages qui déplacent les bandes de roulement du réservoir. Une fois qu'une commande série est envoyée pour activer un moteur, le moteur se déplace comme indiqué jusqu'à ce qu'une nouvelle commande soit envoyée par le Picaxe. Cela permet au microcontrôleur Picaxe d'envoyer des commandes, puis de revenir à la détection du capteur. Les moteurs peuvent être contrôlés pour la vitesse et la direction.

Les bandes de roulement du réservoir sont livrées dans un kit et peuvent être configurées comme un réservoir ordinaire ou dans la version à trois roues comme je le faisais. Pour ce faire, j'ai dû acheter deux roues de renvoi supplémentaires.La roue motrice et les roues libres ont été montées sur une carte de circuit imprimé en fibre de verre FRS revêtue de cuivre et peinte.

Étape 6: Capteur de distance infrarouge

J'ai expérimenté plusieurs capteurs à ultrasons et bien qu'ils soient utiles pour détecter des objets plus volumineux tels que des murs ou des personnes, ils émettent un faisceau relativement large qui ne dispose pas de la précision nécessaire pour aligner une pince sur un petit objet.

Le capteur de distance infrarouge Sharp envoie un faisceau infrarouge invisible, puis mesure l'angle de la lumière réfléchie pour détecter la présence d'un objet et sa distance. Il est assez précis et sensible et peut détecter un crayon vertical à un pied de distance. Il peut détecter un objet ou un mur de 4 à 32 pouces.

Il mesure la distance à l'objet puis génère une tension proportionnelle à la distance. Celui-ci alimente une entrée du contrôleur Picaxe et son convertisseur analogique-numérique (ADC) est utilisé pour convertir la tension en un nombre interprété par le programme pour indiquer au robot la distance qui le sépare de l'objet.

L’étape 6 montre le capteur pointu qui est le rectangle noir avec deux lentilles.

Étape 7: Schéma de la fourmi robotique

Voici le schéma de la fourmi du robot. Les images miniatures montrent qu'il est agrandi.

Éléments à prendre en compte lors de l’interfaçage des différents modules:

Il est généralement judicieux de garder des alimentations séparées pour les circuits de commande et les moteurs. Les moteurs et les servos peuvent être électriquement bruyants, ce qui peut perturber le fonctionnement d'un microcontrôleur. Il est également judicieux de maintenir les microcontrôleurs à bonne distance des moteurs et des servos afin d'éviter les champs magnétiques.

Bien qu'il ne soit pas nécessaire de disposer d'un contrôleur de tension pour les moteurs, cela permet un mouvement plus cohérent si la tension reste constante

Conservez une résistance de 270 ohms à 1kohm entre les sorties des capteurs et les entrées Picaxe afin d'éviter tout court-circuit accidentel de l'un ou l'autre périphérique.

Le capteur de distance infrarouge Sharp s'est avéré extrêmement bruyant électriquement. Lorsque je me suis connecté sur une planche à pain au Picaxe, cela a bien fonctionné. Dès qu'il a été installé dans le robot, le Picaxe a cessé de fonctionner. J'ai résolu le problème en mettant un condensateur de 10 uf sur les entrées d'alimentation du capteur Sharp. Cela a permis de réduire les fluctuations de tension de l'alimentation créée.

Étape 8: Programmation de la fourmi du robot

Comment ça marche

En mode de ramassage autonome, le robot pivote vers la droite pour rechercher un objet. S'il ne trouve rien, il s'arrête après une rotation de 360 ​​degrés. Lorsqu'un objet est détecté, il s'arrête et corrige le braquage excessif. En utilisant la distance mesurée pour l'objet détecté, il avance d'une distance spécifique. Il ferme ensuite la pince et soulève.

Télécommande

En mode de contrôle à distance, le robot attend un signal, qu'il s'agisse d'un mouvement tel que le transfert ou d'une commande en mode autonome. Une télécommande de téléviseur universelle standard peut être configurée pour émettre le code de téléviseur Sony que le Picaxe peut décoder. L’infrarouge de la télécommande est reçu par le module récepteur Panasonic.

Voici le code de programmation de la fourmi du robot:

'robot fourmi, Picaxe 20x-2

laisser dirsc =% 00000000

setfreq m8

pause 2000

'loop22:' test du capteur de distance infrarouge

'readadc 7, b4

'debug b4

'goto loop22

startreset: 'reset for start

serout c.0, t2400, (80 $, 01 $, 01,2,30 $) 'set4 pour servo #, vitesse set5 de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,2,26,30 $) 'body down 26

pause 200

serout c.0, t2400, (80 $, 01 $, 01,1,30 $) 'vitesse réglée le dernier # de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,1,26,127 $) 'fermer pince 26

pause 200

serout c.0, t2400, (80 $, 01 $, 01,0,20 $) 'vitesse réglée le dernier # de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,0,26,127 $) 'centre de la tête

pause 1000

loopinfra: 'contrôle à distance des mouvements ou activer des séquences autonomes

oeil bleu bas c.1 '

oeil bleu haut c.2 '

irin c.5, b6

si b6 = 0 alors act1 'remote button1 = 0

si b6 = 1 alors forw 'b2

si b6 = 2 alors act2 'b3

si b6 = 3 alors à gauche 'b4

si b6 = 4 alors stop1 'b5

si b6 = 5 alors à droite 'b6

si b6 = 6 alors act3 'b7

si b6 = 7 alors rev1 'b8

si b6 = 8 alors attaque 'biteme'

'si b6 = 59 alors attaque' biteme '

si b6 = 11, alors putdwn 'entrer déposer

si b6 = 21 alors startreset 'réinitialiser les servos

'debug b6

aller au loopinfra

act1: 'le robot fourmille le monde

gosub forw2

pause 2500

gosub bodyup2

gosub left2

gosub headleft2

pause 300

gosub forw2

pause 1200

gosub stop2

gosub forw2

pause 500

gosub stop2

gosub headright2

oeil rouge élevé c.1 'l

oeil rouge faible c.2 'r

pause 1000

gosub right2

pause 2500

Gosub Headcenter2

gosub bodydwn2

gosub rev2

pause 2500

gosub stop2

gosub leftfast

pause 500

gosub stop2

Gosub droit

pause 500

gosub leftfast

pause 500

gosub stop2

Gosub droit

pause 500

gosub stop2

pause 2200

gosub forw2

gosub bodyup2

pause 3500

gosub opengrip2

pause 500

gosub stop2

aller au loopinfra

mords moi:

gosub forw2

b8 = 1

pour b8 = 1 à 175

'trouver un obstacle

oeil rouge élevé c.2 'l

oeil rouge faible c.1 'r

readadc 7, b4

si b4> 60 et b4 <135 alors next3

pause 30

prochain b8

aller au loopinfra

next3:

gosub stop2

gosub bodydwn2

gosub opengrip2

'pause 100

gosub bodyup2

gosub forw2

pause 300

gosub closegrip2

pause 900

gosub stop2

gosub rev2

gosub bodydwn2

pause 6000

gosub stop2

aller au loopinfra

act2: 'Pickup, putdown

'vers l'avant

serout c.0, t2400, (128,0,1,100) 'avant droite 20min à 127

serout c.0, t2400, (128,0,2,100) 'avant gauche 20min

pause 4500

gosub stop2

pause 100

'trouver le bloc

b8 = 1

pour b8 = 1 à 75

'trouver un bloc et ramasser

haute c.2

faible c.1

gosub right2

readadc 7, b4

si b4> 61 et b4 <164, alors detect0 '34 -75

pause 50

prochain b8

gosub stop2

aller au loopinfra

detect0: 'arrête et corrige

gosub stop2

'tournez à gauche lente

serout c.0, t2400, (128,0,1,60) 'avant droite 20min à 127

serout c.0, t2400, (128,0,3,60) 'tour à gauche 20min

pause 240

gosub stop2

pause 100

oeil rouge faible c.2 '

oeil rouge élevé d'environ 1 '

'en avant, ramassage

gosub opengrip2

pause 1000

gosub forw2

si b4 <50 alors pa1

si b4 <60 alors pa2

si b4 <70 alors pa3

si b4 <80 alors pa4

si b4 <90 alors pa5

si b4 <104 alors pa6

pa1:

pause 9000

aller au stopat

pa2:

pause 5920

aller au stopat

pa3:

pause 3800

aller au stopat

pa4:

pause 2800

aller au stopat

pa5:

pause 2100

aller au stopat

pa6:

pause 980

aller au stopat

arrêté à:

gosub stop2

pause 200

'closegrip

serout c.0, t2400, (80 $, 01 $, 01,1,30 $) 'réglage de la vitesse du dernier # de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,1,26,127 $) 'fermer pince 26

pause 2000

gosub bodyup2

'déposer

gosub leftfast

pause 1400

gosub stop2

gosub forw2

pause 1800

gosub stop2

gosub bodydwn2

gosub opengrip2

pause 500

'jubiler

gosub rev2

pause 2000

gosub stop2

gosub bodyup2

gosub headleft2

gosub headright2

Gosub Headcenter2

oeil bleu bas c.1 '

oeil bleu haut c.2 '

aller au loopinfra

act3: 'pince ouverte et en avant

'en avant, ramassage

gosub opengrip2

pause 400

gosub forw2

pause 280

gosub stop2

aller au loopinfra

act4: 'fermez la pince et soulevez

gosub closegrip2

pause 600

gosub bodyup2

aller au loopinfra

*** gosubs

leftslow:

'tournez à gauche lente

serout c.0, t2400, (128,0,1,60) 'avant droite 20min à 127

serout c.0, t2400, (128,0,3,60) 'tour à gauche 20min

pause 220

gosub stop2

revenir

stop2:

serout c.0, t2400, (128,0,0,0) 'butée à droite

serout c.0, t2400, (128,0,6,0) 'butée gauche

revenir

forw2:

serout c.0, t2400, (128,0,1,100) 'avant droite 20min à 127

serout c.0, t2400, (128,0,2,100) 'avant gauche 20min

revenir

left2:

serout c.0, t2400, (128,0,1,100) 'avant droite 20min

serout c.0, t2400, (128,0,3,100) 'tour à gauche 20min

revenir

right2:

serout c.0, t2400, (128,0,2,100) 'avant gauche 20min

service c.0, t2400, (128,0,0,100) 'rev droite 20min

revenir

rev2:

'Arrêtez

serout c.0, t2400, (128,0,0,0) 'butée à droite

serout c.0, t2400, (128,0,6,0) 'butée gauche

pause 50

'sens inverse

service c.0, t2400, (128,0,0,100) 'rev droite 20min

serout c.0, t2400, (128,0,3,100) 'tour à gauche 20min

revenir

opengrip2:

serout c.0, t2400, (80 $, 01 $, 01,1,30 $) 'set4 pour servo #, vitesse set5 de 0 à 127

serout c.0, t2400, ($ 80, 01 $, 04,1,13,127 $) 'pince ouverte, 13

pause 1000

revenir

closegrip2:

serout c.0, t2400, (80 $, 01 $, 01,1,30 $) 'vitesse réglée le dernier # de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,1,26,127 $) 'fermer pince 26

pause 2000

revenir

headleft2:

serout c.0, t2400, ($ 80, $ 01, $ 01,0,20) 'set4 pour servo #, vitesse set5 de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,0,15,127 $) 'tête gauche 15

pause 800

revenir

headright2:

'serout c.0, t2400, (80 $, 01 $, 01,0,20 $)' indique la dernière vitesse # de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,0,32,127 $) 'tête droite 30

pause 1600

revenir

centre de tête2:

serout c.0, t2400, (80 $, 01 $, 01,0,20 $) 'vitesse réglée le dernier # de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,0,26,127 $) 'centre de la tête

pause 500

revenir

bodyup2:

serout c.0, t2400, (80 $, 01 $, 01,2,30 $) 'set4 pour servo #, vitesse set5 de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,2,13,30 $) body up, 13

pause 220

revenir

bodydwn2:

serout c.0, t2400, (80 $, 01 $, 01,2,30 $) 'set4 pour servo #, vitesse set5 de 0 à 127

serout c.0, t2400, (80 $, 01 $, 04,2,26,30 $) 'body down 26

pause 200

revenir

à gauche:

serout c.0, t2400, (128,0,1,127) 'avant droite 20min

serout c.0, t2400, (128,0,3,127) 'tour à gauche 20min

revenir

droit:

serout c.0, t2400, (128,0,2,127) 'avant gauche 20min

serout c.0, t2400, (128,0,0,127) 'à droite 20min

revenir

Étape 9: Autres possibilités

Petits circuits

Une version pour montage en surface du Picaxe 20x-2 est disponible pour réaliser des modules de microcontrôleur encore plus petits. Pour plus de détails sur le soudage facile des composants de montage en surface, voir ici:

www.instructables.com/id/Advanced-Soldering-Fast-and-Easy-Soldering-of-Sur/

Anneau de contrôle à distance

Le robot ant peut être contrôlé par d'autres contrôleurs Picaxe configurés pour émettre des signaux Sony infrarouges. Pour plus de détails sur la création d'un anneau de commande à distance pouvant contrôler le robot, voir ici:

Neurones de robot

Une fourmi biologique a entre 200 et 3000 neurones travaillant en parallèle pour contrôler ses mouvements. Si nous considérons un microcontrôleur comme un neurone très grossier, le robot a l'équivalent de 4 neurones. Le Picaxe, le servo-contrôleur, le contrôleur de moteur et le capteur infrarouge ont chacun un microcontrôleur faisant partie du module. Il faudra bien plus de microcontrôleurs pour réaliser l'incroyable traitement en parallèle de systèmes biologiques, même les plus simples.

Poils de fourmi

Les fourmis biologiques ont des centaines de poils fins et chacun est un capteur tactile. Le principal problème des robots d'aujourd'hui n'est pas le manque de puissance de traitement, mais le manque de capteurs sensibles en grande quantité. Beaucoup plus de capteurs seront nécessaires pour que ce robot se rapproche des manipulations incroyablement fines d'une vraie fourmi.

Laser Cutter et petits robots

Un cutter laser pourrait être utilisé pour fabriquer des pièces de précision afin de créer une micro-imprimante 3D. L’imprimante serait alors utilisée pour fabriquer des pièces encore plus petites pour un robot microscopique. Le robot microscopique pourrait alors être utilisé pour manipuler des objets à l'échelle de molécules.

Troisième prix au

Concours de robots de la Semaine nationale de la robotique