- Composants requis
- Construction du bras robotique
- Schéma de circuit et explication de fonctionnement:
- Comment faire fonctionner le bras robotique:
Dans ce tutoriel, nous allons concevoir un bras robotique basé sur Arduino Uno à partir de certains cartons et servomoteurs. L'ensemble du processus de construction a été expliqué en détail ci-dessous. Ici, dans ce projet, Arduino Uno est programmé pour contrôler les servomoteurs qui servent d'articulations au bras robotique. Cette configuration ressemble également à une grue robotisée ou nous pouvons la convertir en grue en effectuant quelques ajustements faciles. Ce projet sera utile pour les débutants qui souhaitent apprendre à développer un robot simple à faible coût ou qui souhaitent simplement apprendre à travailler avec Arduino et les servomoteurs.
Ce bras robotique Arduino peut être contrôlé par quatre potentiomètres qui lui sont attachés, chaque potentiomètre est utilisé pour contrôler chaque servo. Vous pouvez déplacer ces servos en faisant tourner les pots pour choisir un objet, avec un peu de pratique, vous pouvez facilement choisir et déplacer l'objet d'un endroit à un autre. Nous avons utilisé des servos à faible couple ici, mais vous pouvez utiliser des servos plus puissants pour ramasser des objets lourds. L'ensemble du processus a été bien démontré dans la vidéo à la fin. Consultez également nos autres projets de robotique ici.
Composants requis
- Arduino Uno
- Condensateur 1000uF (4 pièces)
- Condensateur 100nF (4 pièces)
- Servomoteur (SG 90- quatre pièces)
- Pot 10K - Résistance variable (4 pièces)
- Alimentation (5v - de préférence deux)
Servomoteur
Nous parlons d'abord un peu des servomoteurs. Les servomoteurs sont principalement utilisés lorsqu'il est nécessaire de disposer d'un mouvement ou d'une position d'arbre précis. Ceux-ci ne sont pas proposés pour les applications à grande vitesse. Les servomoteurs sont proposés pour une application à faible vitesse, couple moyen et position précise. Donc, ces moteurs sont les meilleurs pour la conception de bras robotisé.
Les servomoteurs sont disponibles dans différentes formes et tailles. Nous allons utiliser de petits servomoteurs, ici nous utilisons quatre servos SG90. Un servomoteur aura principalement des fils, un pour la tension positive, un autre pour la terre et le dernier pour le réglage de la position. Le fil ROUGE est connecté à l'alimentation, le fil noir est connecté à la terre et le fil JAUNE est connecté au signal. Parcourez ce tutoriel de contrôle du moteur servo à l'aide d'Arduino pour en savoir plus. Dans Arduino, nous avons des bibliothèques prédéfinies pour contrôler le servo, il est donc très facile de contrôler le servo, que vous apprendrez avec ce tutoriel.
Construction du bras robotique
Prenez une surface plane et stable, comme une table ou un carton dur. Ensuite, placez un servomoteur au milieu et collez-le en place. Assurez-vous que le degré de rotation est dans la zone présentée sur la figure. Ce servo fait office de base de bras.
Placez un petit morceau de carton sur le premier servo, puis placez le deuxième servo sur ce morceau de planche et collez-le en place. La rotation du servo doit correspondre au diagramme.
Prenez des cartons et coupez-les en morceaux de 3 cm x 11 cm. Assurez-vous que la pièce n'est pas ramollie. Découpez un trou rectangulaire à une extrémité (laissez 0,8 cm du bas) juste assez pour insérer un autre servo et à une autre extrémité, fixez fermement le servo avec des vis ou de la colle. Ensuite, placez le troisième servo dans le premier trou.
Maintenant, coupez un autre morceau de carton avec les longueurs indiquées dans la figure ci-dessous et collez un autre engrenage au bas de cette pièce.
Collez maintenant le quatrième et dernier servo au bord de la deuxième pièce comme indiqué sur la figure.
Avec cela, deux pièces ensemble ressemblent.
Lorsque nous attachons cette configuration à la base, cela devrait ressembler à,
C'est presque fini. Nous avons juste besoin de fabriquer le crochet pour saisir et choisir l'objet comme une main robotique. Pour le crochet, coupez deux autres morceaux de carton de longueur 1 cm x 7 cm et 4 cm x 5 cm. Collez-les ensemble comme indiqué sur la figure et collez le dernier engrenage tout au bord.
Montez cette pièce sur le dessus et avec cela, nous avons construit notre bras robotique.
Avec cela, notre conception de bras robotique de base a été achevée et c'est ainsi que nous avons construit notre bras robotique à faible coût. Connectez maintenant le circuit dans la maquette selon le schéma de circuit.
Schéma de circuit et explication de fonctionnement:
La connexion du circuit pour Arduino Uno Robotic Arm est illustrée ci-dessous.
La tension aux bornes des résistances variables n'est pas complètement linéaire; ce sera bruyant. Ainsi, pour filtrer ce bruit, des condensateurs sont placés à travers chaque résistance comme indiqué sur la figure.
Nous allons maintenant alimenter la tension fournie par ces résistances variables (tension qui représente le contrôle de position) dans les canaux ADC d'Arduino. Nous allons utiliser quatre canaux ADC de UNO de A0 à A3 pour cela. Après l'initialisation de l'ADC, nous aurons la valeur numérique des pots représentant la position requise par l'utilisateur. Nous prendrons cette valeur et la comparerons à la position du servo.
Arduino dispose de six canaux ADC. Nous en avons utilisé quatre pour notre bras robotique. L'UNO ADC a une résolution de 10 bits, donc les valeurs entières comprises entre 0 et 1023 (2 ^ 10 = 1024 valeurs). Cela signifie qu'il mappera les tensions d'entrée entre 0 et 5 volts en valeurs entières entre 0 et 1023. Donc, pour chaque (5/1024 = 4,9 mV) par unité. En savoir plus sur la cartographie des niveaux de tension à l'aide des canaux ADC dans Arduino ici.
Maintenant, pour que l'UNO convertisse le signal analogique en signal numérique, nous devons utiliser le canal ADC d'Arduino Uno, à l'aide des fonctions ci-dessous:
1. analogRead (broche); 2. analogReference (); 3. analogReadResolution (bits);
Les canaux Arduino ADC ont une valeur de référence par défaut de 5V. Cela signifie que nous pouvons donner une tension d'entrée maximale de 5 V pour la conversion ADC sur n'importe quel canal d'entrée. Étant donné que certains capteurs fournissent des tensions de 0 à 2,5 V, donc avec une référence 5 V, nous obtenons une précision moindre, nous avons donc une instruction qui nous permet de modifier cette valeur de référence. Donc, pour changer la valeur de référence, nous avons "analogReference ();"
Par défaut, nous obtenons la résolution ADC maximale de la carte qui est de 10 bits, cette résolution peut être modifiée en utilisant l'instruction («analogReadResolution (bits);»).
Dans notre circuit de main robotique, nous avons laissé cette tension de référence à la valeur par défaut, afin que nous puissions lire la valeur du canal ADC en appelant directement la fonction «analogRead (pin);», ici «pin» représente la broche où nous avons connecté le signal analogique, disons nous voulons lire «A0». La valeur de l'ADC peut être stockée dans un entier sous la forme int SENSORVALUE0 = analogRead (A0); .
Parlons maintenant du SERVO, l'Arduino Uno a une fonction qui nous permet de contrôler la position du servo en donnant simplement la valeur du degré. Disons que si nous voulons que le servo soit à 30, nous pouvons directement représenter la valeur dans le programme. Le fichier d'en- tête SERVO ( Servo.h ) prend en charge tous les calculs de rapport cyclique en interne.
#comprendre
Ici, la première instruction représente le fichier d'en-tête pour contrôler le SERVO MOTOR. La deuxième déclaration nomme le servo; nous le laissons comme servo0 car nous allons en utiliser quatre. La troisième déclaration indique où la broche de signal servo est connectée; ce doit être une broche PWM. Ici, nous utilisons PIN3 pour le premier servo. La quatrième instruction donne des commandes pour positionner le servomoteur en degrés. S'il est donné 30, le servomoteur tourne de 30 degrés.
Maintenant, nous avons la position du servo SG90 de 0 à 180 et les valeurs ADC sont de 0-1023. Nous utiliserons une fonction spéciale qui correspond automatiquement aux deux valeurs.
sensorvalue0 = map (sensorvalue0, 0, 1023, 0, 180);
Cette instruction mappe automatiquement les deux valeurs et stocke le résultat dans l'entier «servovalue0» .
C'est ainsi que nous avons contrôlé les servos dans notre projet de bras robotique en utilisant Arduino. Vérifiez le code complet ci-dessous.
Comment faire fonctionner le bras robotique:
Il y a quatre pots fournis à l'utilisateur. Et en faisant tourner ces quatre pots, nous fournissons une tension variable sur les canaux ADC de UNO. Ainsi, les valeurs numériques d'Arduino sont sous le contrôle de l'utilisateur. Ces valeurs numériques sont mappées pour ajuster la position du servomoteur, par conséquent, la position servo est sous le contrôle de l'utilisateur et en faisant tourner ces pots, l'utilisateur peut déplacer les articulations du bras robotique et peut choisir ou saisir n'importe quel objet.