Outils d'utilisateurs

Outils du Site


projets:conception_d_un_robot_a_base_d_arduino

Ceci est une ancienne révision du document !


Conception d'un robot à base d'Arduino

Conception

Séance du samedi 15 décembre 2017

Aujourd'hui on a testé fritzing, un logiciel qui permet de dessiner un circuit sur breadboard (idéal pour la documentation) et même d'aller jusqu'à la conception du circuit imprimé.

Circuit on off

L'objectif est de faire un shield pour arduino pour changer l'état d'un booléen. On départ, l'état est off et à chaque pression du bouton poussoir on inverse l'état entre off(false) et on(true).

Le montage sur breadboard

Séance du samedi 17 décembre 2016

Le brainstorming

Après un brainstorming autour des fonctionnalités et contraintes techniques, nous avons défini quelques modules à développer.

brainstorming

Les modules

Les modules prioritaires :

Les modules secondaires :

  • détection de proximité (magnétique)
  • détection de luminosité (photorésistance)
  • potentiomètre (pour faire varier la résistance)
  • marche arrière
  • led RGB
  • son (buzzer)

Capteurs

Contact par Bouton poussoir

Séance du samedi 21 janvier 2017

Composants :

  • 1 bouton poussoir
  • 1 résistance 1 kOhm
  • 1 LED
  • 1 résistance 220 Ohms

Code et schéma issu de http://wiki.seeedstudio.com/wiki/Arduino_Sidekick_Basic_Kit#Talk_to_Arduino_:_Connecting_a_Pushbutton_Switch.

Programme sur l'IDE Arduino :

//Pushbutton switch demo: LED is connected to digital pin 8 and Pushbutton is connected to digital pin 12.
const int led = 8; // numéro de la broche sur laquelle la led est connectée
const int pushbutton = 12; // numéro de la broche sur laquelle la led est connectée
 
//The LED glows when the button is pressed.
 
char inputButtonState;
void setup()   
{                
  pinMode(led, OUTPUT);        // Initialize Arduino Digital Pins 8 as output for connecting LED
  pinMode(pushbutton,INPUT);         // Initialize Arduino Digital Pins 12 as input for connecting Pushbutton
}
 
void loop()                     
{
  inputButtonState = digitalRead(pushbutton); //Read the Pushbutton state.
 
  if (inputButtonState == HIGH) 
  {     
    digitalWrite(led, HIGH);  //Switch on LED
  } 
  else 
  {
    digitalWrite(led, LOW);   //Switch off LED
  }
 
}

Marche/arrêt piloté par Bouton poussoir

Servomoteur commandé par bouton poussoir

Séance du samedi 18 novembre 2017

/*
 Controlling a servo position using a potentiometer (variable resistor)
 by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
 
 modified on 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Knob
*/
 
#include <Servo.h> // librairie pour le servomoteur
 
Servo myservo;  // crée l'objet myservo
const int pushbutton = 2; // numéro de la broche sur laquelle le bouton poussoir est connecté
char inputButtonState;
 
void setup() {
  myservo.attach(3);  // attache l'objet servomoteur à la pin 3
  myservo.write(0); // initialisation de la position du servo
  pinMode(pushbutton,INPUT); // la bouton poussoir est une entrée
  digitalWrite(pushbutton, HIGH); // envoie du courant dans le bouton poussoir
}
 
void loop() {
 
  inputButtonState = digitalRead(pushbutton); // lit l'état du bouton poussoir
 
  if (inputButtonState == HIGH) // si le bouton poussoir n'est pas pressé 
  {
       myservo.write(0); 
  } 
  else // sinon (le bouton est appuyé)
  { 
      myservo.write(90);                  // met le servomoteur à 90°
  }  
}

récepteur infrarouge

Séance du samedi 18 mars 2017

Détection de mouvement par le récepteur infrarouge pour allumer une LED

Composants:

montage inspiré du circuit du tutoriel Sainsmart p.71

code inspiré du livre “la boite à outils Arduino” de Michael Margolis - Ed Dunod

/*
 Allume une LED branchée sur la broche 9 lorsque le récepteur infrarouge, branché sur la broche 2, détecte un mouvement.
 Résistance de 220 ohms pour la LED
 */
 
// Initialisation des constantes :
const int led = 9; // numéro de la broche sur laquelle la led est connectée
const int capteurIR = 2; // numéro de la broche sur laquelle le récepteur infrarouge est connecté
 
// Déclaration des variables :
int valIR=0; // initialise la variable qui sera utilisée pour stocker la valeur lue par le récepteur infrarouge
 
void setup() {
  // cette boucle ne s'éxécute qu'une fois, au début
  pinMode(led, OUTPUT); // indique que la broche de la led est une sortie
  pinMode(capteurIR, INPUT); // indique que la broche du récepteur infrarouge est une entrée
}
 
void loop() {
  // cette boucle se répète indéfiniment
  valIR = digitalRead(capteurIR); // lit la broche du récepteur infrarouge et conserve sa valeur dans la variable valIR
 
  if (valIR==LOW) { // si la valeur du récepteur infrarouge est à 0
 
    digitalWrite(led, HIGH); // on allume la led
    delay(1000); // on attend 1s (=1000ms)
    digitalWrite(led, LOW); // on éteint la led
  }
}

Photorésistance

Composant dont la résistance varie en fonction de la luminosité ambiante.

A tester :

voir vidéo montrant le montage avec une photorésistance et une led sur une breadboard.

La lumière peut contrôler d'autres actionneurs grâce à la photorésistance.

potentiomètre

Appelé aussi Résistance variable, il peut également servir à d'autres tâches.

A tester :

Lecture des variations du potentiomètre dans le serial monitor ou terminal série : https://tutoarduino.com/portfolio-items/les-potentiometres/ et http://www.chambeyron.fr/index.php/arduino-raspberry-py/66-utilisation-d-un-potentiometre-sur-arduino

Faire varier la luminosité d'une led avec le potentiomètre :

(cf autre projet servomoteur et potentiomètre)

Actionneurs : mouvement

Moteur courant continu

Recherche de la datasheet du moteur, d'un exemple de montage et des composants nécessaires (transistor NPN, diode, condensateur)

moteur courant continu : voir https://openclassrooms.com/courses/programmez-vos-premiers-montages-avec-arduino/le-moteur-a-courant-continu-partie-1-transistors-et-sorties-pwm et montage simplifié sur https://wiki.fablab-sud31.fr/index.php/Utilisation_d'un_moteur_%C3%A0_courant_continu.

Le transistor sert d'interrupteur commandé, la diode permet au moteur de tourner en roue libre (quand on arrête la commande et qu'il continue de tourner par inertie), et le condensateur permet de lisser les pics de courant.

Tutoriels à tester : https://openclassrooms.com/courses/programmez-vos-premiers-montages-avec-arduino/le-moteur-a-courant-continu-partie-1-transistors-et-sorties-pwm https://openclassrooms.com/courses/programmez-vos-premiers-montages-avec-arduino/le-moteur-a-courant-continu-partie-2-le-pont-en-h-et-les-circuits-integres

servomoteur

Autres actionneurs

son (buzzer)

cf changer la fréquence d'un buzzer selon la luminosité captée par une photorésistance (solution d'un des participants pour le TP03 du MOOC FUN MinesTelecom - Programmer un objet avec Arduino.

à tester :

led RGB

Réalisation

Difficultés rencontrées

Photos

Liens divers

Suites du projet

+ sur les boutons poussoirs

Dans le MOOC FUN Mines Telecom - Programmer un objet avec Arduino, ils conseillent de déclarer les pins avec des constantes, par ex : const int led = 8;.

Autres exemples:

+ sur les capteurs infrarouges

projets/conception_d_un_robot_a_base_d_arduino.1513437172.txt.gz · Dernière modification: 2017/12/16 16:12 par thierry_dasse