Pince avec arduino

De Wikidebrouillard.

Article incomplet en cours de rédaction
La vidéo "Pince avec arduino"


Sommaire

Présentation de l'expérience

Et si vous en pinciez pour la carte arduino ? Une fois greffé sur un manche, on pourra attraper, grâce à des servomoteurs, différent objets en tournant les potentiomètres !

Matériel

  • 2 potentiomètres
  • 2 servomoteurs
  • 1 arduino uno (et son câble usb)
  • 1 ordinateur pour programmer la carte avec le logiciel arduino
  • des fils
  • 1 breadboard
  • 1 support en longueur en bois/contreplaqué/métal/...
  • De la colle ou d scotch double face ou n'importe quoi pouvant collé un servomoteur avec le support choisi

L'expérience

Le montage

On relie :

  • Le 5V de la carte arduino à la breadboard afin de créer plus de broches (il en faut une par servomoteurs et une par potentiomètre)
  • Un des GND de la carte à une autre ligne de la breadboard (il en faut également un par servomoteurs et un par potentiomètre)
  • Un des servomoteurs à la broche 9
  • L'autre à la broche 6
  • Un des potentiomètres à la broche A0
  • L'autre à la broche A1

On colle ensuite un servomoteur d'un côté du support et le second de l'autre côté (par exemple avec du double face ou avec de la colle).

Le code

#include <Servo.h> //on ajoute la librairie pour piloter les servomoteurs

//On créé 2 objets de type servo
Servo gauche;
Servo droite;
//On créé 2 variables qui représente les broches où sont reliées les potentiomètres
int potpin = 0;
int potpin2 = 1;
//On créé 2 variables où seront stockées les valeurs reçues des potentiomètres
int val2;
int val;

void setup() {
  gauche.attach(9); //On lie le servo nommé "gauche" avec la broche 9
  droite.attach(6); //On lie le second avec la broche 6
}

void loop() {
  //On lit les valeurs des ponteiomètres
  val = analogRead(potpin);
  val2 = analogRead(potpin2);

  //On "map" les variables : le potentiomètre renvoie une valeur entre 0 et 1023 or le servo
  //Ne "comprend" que les valeurs comprises entre 0 et 180 : on fait donc un changement
  //D'intervale
  val2 = map(val2, 0, 1023, 0, 179);  
  val = map(val, 0, 1023, 0, 179);
  
  //On applique ensuite ces valeurs aux servomoteurs
  droite.write(val2); 
  gauche.write(val);    

  //On fait une "pause" pour ne pas surcharger la carte arduino
  delay(20);      
}

Que voit-on ?

On voit que si l'on tourne les potentiomètres, les servomoteurs tournent également : cela permet de refermer les servomoteurs pour former une pince capable d'attraper des objets.

Explications

Les potentiomètres sont des résistances variables quand on les tourne : elles permettent de bloquer plus ou moins fortement le courant et ainsi de renvoyer à la carte arduino une valeur qui varie selon le courant qui passe. Cette valeur varie généralement (pour arduino) de 0 à 1023, on utilise alors la fonction map afin de passer de l'intervalle 0-1023 à 0-180, angles selon lesquels le servomoteur peut tourner.

Il suffit ensuite de faire tourner les servomoteurs l'un vers l'autre pour former une pince s'actionnant à l'aide des potentiomètres.

Questions sans réponses

Expériences sur Wikidébrouillard

Autres expériences

Applications : liens avec le quotidien

Cela peut faire une approche pour un sujet traitant de la robotique : on voit souvent des pinces dans les labo et autres.

Lieux propices à sa réalisation

Plutôt dans un atelier avec des ordinateurs disposant du logiciel arduino.

Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraitsAnnuaire
AR
CO

Pince avec arduino

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique