Table des matières:

Robot servocommandé Arduino (SERB) : 7 étapes (avec photos)
Robot servocommandé Arduino (SERB) : 7 étapes (avec photos)

Vidéo: Robot servocommandé Arduino (SERB) : 7 étapes (avec photos)

Vidéo: Robot servocommandé Arduino (SERB) : 7 étapes (avec photos)
Vidéo: Робот Arduino на сервоприводах. Теcтирование - The robot on servo-drivers. Test 2024, Juillet
Anonim
Servo Robot Contrôlé Arduino (SERB)
Servo Robot Contrôlé Arduino (SERB)
Servo Robot Contrôlé Arduino (SERB)
Servo Robot Contrôlé Arduino (SERB)
Servo Robot Contrôlé Arduino (SERB)
Servo Robot Contrôlé Arduino (SERB)
Servo Robot Contrôlé Arduino (SERB)
Servo Robot Contrôlé Arduino (SERB)

Quoi de mieux pour commencer à expérimenter des microcontrôleurs open source (Arduino) qu'en construisant votre propre robot open source (CC (SA -BY)) ? Que faire de votre SERB ?

  • (ici) - Comment connecter votre SERB à Internet et le piloter via un appel vidéo Skype.
  • (ici) - Comment contrôler votre SERB à l'aide des accéléromètres d'un nunchuck Wii
  • (ici) - Comment ajouter des moustaches de détection d'obstacles à votre robot
  • (ici) - Comment faire 30 kits (Open Manufacturing)

Caractéristiques:

  • Entièrement programmable à l'aide d'un microcontrôleur Arduino Duemilanove (ou d'un autre microcontrôleur de votre choix).
  • Pas besoin de souder.
  • Choix d'options de coupe pour les pièces en acrylique. (scie à chantourner, accès à une découpeuse laser, achat de pièces prédécoupées)
  • Facilement extensible et modifiable avec des trous de boulons supplémentaires et une planche à pain incluse.
  • Roue arrière à double roulement à billes.
  • Opérationnel en 1 à 2 heures. (de la trousse)
  • Conception open source (construisez autant que vous le souhaitez)

(Shameless Plug) Au Royaume-Uni et comme les trucs Arduino? consultez notre nouvelle boutique en ligne oomlout.co.ukUne vidéo rapide d'un servo-robot contrôlé par Arduino terminé - (SERB) exécutant le programme de test inclus (étape 6) Remarque: les fichiers source sont disponibles sur un parallèle Instructable (Source Files For) - Comment faire un robot servo contrôlé par Arduino - (SERB)

Étape 1: Pièces et outils

Pièces et outils
Pièces et outils

Tous les boulons peuvent être trouvés chez votre Home Depot local. Les autres pièces peuvent être trouvées en ligne (j'ai inclus un lien vers ma source préférée pour chacune).

  • Boulon de 3 mm x 15 mm (x20)
  • Boulon de 3 mm x 10 mm (x12)
  • Ecrou 3mm (x34)
  • Rondelle 3mm (x12)
  • Boulon de 8 mm x 25 mm (x2)
  • Écrou 8mm (x2)
  • Roulements de patin (x2) (VXB) (ce sont des roulements de patin standard, ils peuvent donc être récupérés à partir d'une paire de patins à roulettes ou d'une planche à roulettes)

Pneus

  • Grand joint torique (4.5" ID 3/16" Bead Dash #349) (x2) (Produit McMaster-Carr #9452K407)
  • Petit joint torique (3/4" ID 3/16" Bead Dash #314) (x1) (Produit McMaster-Carr #9452K387)

Électronique

  • Arduino Duemilanove (x1) (Maker Shed)
  • Servo à rotation continue (x2) (parallaxe)
  • Planche à pain 400 contacts (x1) (tout l'électronique))
  • Boîte à piles Quad AA (x1) (tout l'électronique)
  • Clip de batterie 9V (x1) (tout l'électronique)
  • Fiche 2,1 mm (x1) (tout l'électronique)
  • Embase 3 broches (x2) (tout l'électronique)
  • Câble USB A-B - Style imprimante (x1) (tout l'électronique) (non inclus dans le kit)

Piles:

  • Pile AA (x4) (non incluse dans le kit)
  • Pile 9v (x1) (non incluse dans le kit)

Fil: (tous les fils sont solides de 22 AWG, j'achète le mien via McMaster-Carr)

  • 15 cm Violet (x2)
  • 15 cm Noir (x1)
  • 5 cm Noir (x2)
  • 5 cm Rouge (x2)

Outils

  • Tournevis (x1) (Philips)
  • Pince à becs pointus (x1)

Étape 2: Couper des pièces

Pièces de coupe
Pièces de coupe
Pièces de coupe
Pièces de coupe
Pièces de coupe
Pièces de coupe
Pièces de coupe
Pièces de coupe

Veuillez choisir les étapes à suivre en fonction de l'option de coupe que vous avez choisie. Option 1 (Achat de pièces prédécoupées)

Achetez un châssis prédécoupé dans la boutique d'oomlout.com (ici) (60 $, frais de port compris aux États-Unis et au Canada)

Option 2 (Fabrication numérique (c.-à-d. Ponoko) / Accès à une découpeuse laser)

  • Téléchargez le schéma de découpe laser ("03 SERB Ponoko Cutting Layout P2.eps" ou "03-(SERB)-Ponoko Cutting Layout (P2).cdr")
  • Coupez les fichiers à l'aide de Ponoko ou sur votre propre découpeur laser (en utilisant de l'acrylique 3 mm,.118" (parfois vendu en.125")

Option 3 (Scie à chantourner et perceuse)

  • Téléchargez et imprimez le patron PDF (veuillez choisir le fichier correspondant à votre format de papier) 03-(SERB)-ScrollSaw Pattern (letter).pdf 03-(SERB)-ScrollSaw Pattern (A4).pdf (il est important de ne pas redimensionner le dessin lors de l'impression)
  • Mesurez la règle sur l'impression par rapport à une règle en laquelle vous avez confiance, si elles ne correspondent pas, le motif a été mis à l'échelle et vous devez examiner les paramètres de votre imprimante avant de réimprimer. S'ils correspondent, continuez.
  • Collez le motif sur la feuille acrylique (3 mm,.118" (parfois vendu en.125").
  • Trous de perceuse.
  • Découper des pièces à l'aide d'une scie à chantourner

Étape 3: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Félicitations pour avoir atteint ce stade, 90% du processus est terminé, téléchargez simplement les instructions d'assemblage à cette étape (04-(SERB)-Assembly Guide.pdf) et après un petit assemblage de style lego/mechano, vous serez prêt à câbler. Pour vous divertir en chemin voici un time-lapse de mon assemblée:

Étape 4: Câblage

Câblage
Câblage
Câblage
Câblage

Avec tous les gros morceaux ensemble, il est temps d'ajouter les petites veines électriques qui permettront de contrôler notre robot. Pour ce faire, téléchargez et imprimez le schéma de câblage (05-(SERB)-Wiring Diagram.pdf). Un premier coup d'œil peut sembler assez intimidant, mais si vous effectuez chaque connexion de manière séquentielle et prenez votre temps, cela se fait remarquablement rapidement. Le câblage est assez simple et aucun dommage ne peut arriver à votre circuit jusqu'à ce que vous ajoutiez des piles. Alors câblez tout, vérifiez-le, puis ajoutez de l'alimentation.

Étape 5: Test et dépannage

Tests et dépannage
Tests et dépannage

Si vous avez commandé un kit, votre Arduino est préchargé avec un programme de test. Il suffit de mettre 4 piles AA et de brancher la pile 9v dans l'Arduino. Et si tout a été fait correctement votre robot commencera à se déplacer (il tournera dans un sens aléatoire pendant un temps compris entre 0,1 et 1 seconde avant d'avancer pendant un temps aléatoire entre 1 et 2 secondes puis s'arrêtera pendant 2 secondes avant de recommencer). Si vous n'avez pas acheté de kit, une étape supplémentaire est nécessaire. Téléchargez le fichier zip ci-joint (07-(SERB)-SERB-Test Arduino Program.zip). Décompressez-le ensuite dans votre répertoire de croquis Arduino (par défaut "mes documents\Arduino\") et téléchargez-le sur votre carte arduino. (si vous êtes nouveau sur Arduino, passez à une étape où il y a des liens vers d'excellents didacticiels de démarrage) Problèmes courants: Mon SERB se déplace lentement alors qu'il devrait être arrêté. Ceci est dû au fait que vos servos ne sont pas bien calibrés, pour calibrer vos servos attendez que votre programme ait arrêté les servos puis avec un petit tournevis tournez le potentiomètre à l'intérieur du servo (la petite ouverture dans le boîtier du servo juste au dessus où sont les fils). Tournez-le vers la gauche ou vers la droite jusqu'à ce que le servo soit vraiment arrêté. Les choses ne fonctionnent pas tout à fait correctement. Envoyez-nous un e-mail avec vos symptômes et nous essaierons de vous aider, pendant que vous attendez une réponse, vérifiez tous vos fils avec le schéma de câblage de l'étape 4. Si vous rencontrez un problème, veuillez soit ajouter un commentaire. à ce Instructable ou envoyez un e-mail à [email protected] et nous ferons de notre mieux pour vous aider à faire fonctionner votre SERB

Étape 6: Programmation

La programmation
La programmation

Le robot physique a terminé le temps de commencer à lui donner un cerveau. Avant d'entrer dans les détails de la programmation d'un robot servocommandé Arduino - (SERB) - quelques liens vers d'excellentes ressources de programmation Arduino sur Internet. Guide de démarrage Arduino - Un guide pour vous aider à démarrer avec Arduinos, du téléchargement de l'environnement de programmation à l'écriture de votre premier programme. Référence de programmation Arduino - Un guide complet et facile à référencer sur le langage de programmation Arduino. Comment fonctionnent les servos - Une introduction rapide au fonctionnement des servomoteurs. Arduino Servo Library - Comment fonctionne la bibliothèque Arduino Servo (comment nous contrôlons nos servos). Bon avec l'apprentissage à l'écart, passons à la programmation. Il existe trois façons de commencer à programmer votre robot servocommandé Arduino - (SERB). Option 1: (Modification de SERB_Test.pde) Parfois, lors de la programmation, la chose la plus simple à faire est de prendre un programme de travail et de commencer à y ajouter votre propre code. Pour ce faire, téléchargez le programme zippé SERB_Test (07-(SERB)-SERB-Test Arduino Program.zip). Décompressez-le dans votre dossier de croquis Arduino (par défaut "Mes documents\Arduino\"). Enfin, ouvrez l'environnement de programmation Arduino et téléchargez-le sur votre Arduino. Le code est bien commenté. (ou copiez et collez le code de l'annexe de cette étape dans un nouveau croquis Arduino) Option 2: (Ajout de routines SERB à votre programme) Ajoutez quelques routines simples à votre programme préexistant (comme goForward (), setSpeed(int) etc.). Pour ce faire, téléchargez les routines dans le fichier texte (07-(SERB)- Simple Routines Text.txt). 1. Copiez et collez la partie préambule au début de votre programme.2. Copiez et collez la partie routine dans le corps de votre programme.3. Ajouter un appel à serbSetup(); à votre routine setup(). Option 3: (Créer votre propre programme à partir de zéro) Ce n'est pas trop difficile. Tout ce qui est nécessaire est de vous familiariser avec la bibliothèque Arduino Servo. Ensuite, le servo droit est connecté à la broche 9, et le servo gauche à la broche 10. Remarque: Des programmes supplémentaires seront ajoutés ici au fur et à mesure de leur développement; ou si vous développez quelque chose et souhaitez qu'il soit présenté, envoyez-moi un message privé et il peut être ajouté. Annexe: (Code SERB_Test.pde)

/* * Arduino Controlled Servo Robot (SERB) - Test Program pour une * période de temps aléatoire comprise entre 0,1 et 1 seconde. * Le SERB avancera alors pendant une * période aléatoire comprise entre 1 et 2 secondes. Enfin * pause de 2 secondes avant de recommencer. * * Câblage: Signal servo droit - broche 9 * Signal servo gauche - broche 10 * * Licence: Ce travail est sous licence Creative Commons * Attribution-Share Alike 3.0 Unported License. Pour * afficher une copie de cette licence, visitez * https://creativecommons.org/licenses/by-sa/3.0/ * ou envoyez une lettre à Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * ETATS-UNIS. * */ //----------------------------------------------------------- -----------------------------// DÉBUT DU SERVO ROBOT COMMANDÉ ARDUINO (SERB) PRÉAMBULE#include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo gaucheServo; Servo droitServo; vitesse int = 100; //définit la vitesse du robot (les deux servos) //un pourcentage entre 0 et 100// FIN DU SERVO ROBOT CONTROLE ARDUINO (SERB) PREAMBULE //---------------- -------------------------------------------------- --------/* * définit les broches sur les états appropriés et attache les servos. Puis fait une pause * pendant 1 seconde avant que le programme ne démarre*/ void setup() { serbSetup(); //définit l'état de toutes les //broches nécessaires et ajoute des servos à votre esquisse randomSeed(analogRead(0)); //définit la graine de nombre aléatoire avec //quelque chose de légèrement aléatoire delay(1000);}/* * fait tourner le robot à gauche ou à droite (au hasard) pendant une période comprise entre * 0,1 et 1 seconde. Avant d'avancer pour une durée aléatoire * entre 1 et 4 secondes. Avant de faire une pause de deux secondes, puis de recommencer *.*/void loop() { turnRandom(100, 1000); // Tourne aléatoirement à gauche ou à droite pendant // une période aléatoire entre 0,1 seconde // et une seconde goForwardRandom(1000, 2000); // Avance pendant une période aléatoire //entre // et 2 secondes goStop(); // Arrête le délai du robot (2000); // fait une pause de 2 secondes (à l'arrêt)}/* * fait tourner le robot au hasard vers la gauche ou la droite pendant une période aléatoire entre * minTime (millisecondes) et maxTime (millisecondes) */void turnRandom(int minTime, int maxTime){ int choix = aléatoire(2); //Nombre aléatoire pour décider //entre gauche (1) et droite (0) int turnTime = random(minTime, maxTime); //Nombre aléatoire pour la pause //heure if(choix == 1){ goLeft();} //Si nombre aléatoire = 1 alors tournez //gauche else {goRight();} //Si nombre aléatoire = 0 alors tourner //retard à droite (turnTime); //délai pour un temps aléatoire }/* * avance pendant une période aléatoire entre minTime (millisecondes) * et maxTime (millisecondes) */void goForwardRandom(int minTime, int maxTime){ int forwardTime = random(minTime, maxTime); //détermine une heure aléatoire pour //aller de l'avant goForward(); //définit le délai avant SERB (forwardTime); //retards pour une période de temps aléatoire}//----------------------------------------- --------------------------------//DÉBUT DES ROUTINES DE SERVO ROBOT COMMANDÉ PAR ARDUINO (SERB)/* * configure votre arduino pour adresser votre SERB en utilisant les routines incluses*/void serbSetup(){ setSpeed(speed); pinMode(LEFTSERVOPIN, OUTPUT); //définit la broche de signal d'asservissement gauche //pour sortir pinMode (RIGHTSERVOPIN, OUTPUT); //définit la broche du signal servo droit //pour sortir leftServo.attach(LEFTSERVOPIN); //attache le servo gauche rightServo.attach(RIGHTSERVOPIN); //attache le servo droit goStop();}/* * définit la vitesse du robot entre 0-(arrêté) et 100-(pleine vitesse) * REMARQUE: la vitesse ne changera pas la vitesse actuelle, vous devez changer la vitesse * puis appelez-en un des méthodes go avant que les changements ne se produisent.*/ void setSpeed(int newSpeed){ if(newSpeed >= 100) {newSpeed = 100;} //si la vitesse est supérieure à 100 //faites 100 if(newSpeed <= 0) {newSpeed = 0;} //si la vitesse est inférieure à 0, faites //la vitesse 0 = newSpeed * 0.9; // met la vitesse à l'échelle pour qu'elle soit //entre 0 et 90}/* * envoie le robot vers l'avant */void goForward(){ leftServo.write(90 + speed); rightServo.write(90 - vitesse);}/* * renvoie le robot en arrière */void goBackward(){ leftServo.write(90 - vitesse); rightServo.write(90 + vitesse);} /* * envoie le robot à droite */void goRight(){ leftServo.write(90 + vitesse); rightServo.write(90 + speed);}/* * envoie le robot left */void goLeft(){ leftServo.write(90 - speed); rightServo.write(90 - speed);}/* * arrête le robot */void goStop(){ leftServo.write(90); rightServo.write(90);} //FIN DES ROUTINES DE SERVO ROBOT CONTRLÉ PAR ARDUINO (SERB) //---------------------------- ------------------------------------------------

Étape 7: Terminé, les autres qui ont terminé et le futur

Fini, d'autres qui ont fini et le futur
Fini, d'autres qui ont fini et le futur
Fini, d'autres qui ont fini et le futur
Fini, d'autres qui ont fini et le futur
Fini, d'autres qui ont fini et le futur
Fini, d'autres qui ont fini et le futur
Fini, d'autres qui ont fini et le futur
Fini, d'autres qui ont fini et le futur

Félicitations pour être arrivé jusqu'ici et j'espère que vous vous amusez avec votre robot servocommandé Arduino - (SERB). Le SERB de Michael Beck -Michael a trouvé les plans du SERB sur Thingiverse.com et l'a découpé dans de l'acrylique jaune et rouge. Je pense que ça a l'air génial. Le SERB de Mike - Mike (du club de robots ROBOMO de la région de St. Louis) a demandé à un ami de découper au laser un châssis SERB et a utilisé son propre savoir-faire en robotique pour le faire fonctionner. Je pense que ça a l'air génial fait en bleu. (consultez son site Web pour plus de détails à ce sujet ainsi que ses autres robots (ici) Cette section contiendra des détails sur les développements futurs et les pièces jointes (ils seront présentés ici avant qu'ils ne soient correctement documentés). Mais je voudrais aussi montrer des photos des SERB d'autres peuples. Donc, si vous avez terminé, envoyez-moi un message privé avec une photo et quelques mots (que ce soit une description ou un lien vers votre site Web) et je l'ajouterai ici. (Shameless Plug) Si vous avez aimé cette instructable consultez oomlout.com pour d'autres projets open source amusants.

Premier prix du concours SANYO eneloop Battery Powered

Conseillé: