dimanche 26 juillet 2015

Faire remonter le fait qu'une personne a franchi une porte avec Arduino

Dans notre exemple, nous souhaitons faire remonter le fait qu'une personne a franchi une porte, c'est à dire que nous ne souhaitons pas que notre Arduino réagisse si la distance n'est pas modifiée considérablement.
L'idée est de mettre ce détecteur au dessus d'une porte afin de pouvoir faire remonter le nombre de passages en une journée.
La hauteur d'une porte classique est de l'ordre de 203,5cm mais c'est à vous de mesurer la taille de votre porte, à noter que notre exemple ne pourra donc prendre en considération des individus faisant plus de 2 mètres car nous sommes limités physiquement par la porte.
Les portes sont en général accompagnées d'une bordure afin de la décorer et vous ne souhaitez pas la gâcher ainsi il est fort possible que vous deviez rajouter 2,5 cm en plus, un détecteur placé à 206 cm de hauteur.
Ce que nous souhaitons obtenir dans un premier temps:
Nous souhaitons que le système réagisse lorsque la distance observée est inférieure à une certaine distance dans notre cas 100cm.
Pourquoi 100cm?
Dans notre cas de figure, notre système sera à 206 cm de hauteur, ainsi en indiquant que nous souhaitons mesurer tout ce qui est inférieur à 106 cm nous allons récupérer tous les passages d'individus supérieur à 100 cm. Cela nous permettra d'éviter de mesurer le passage de chiens et de chats :P qui pourrait venir un peu fausser notre analyse.
A chaque distance mesurée inférieure à 106 cm nous souhaitons que le système renvoit l'information passage.
Notre problème étant défini, il ne nous reste plus qu'à adapter le code en conséquence, pour ce faire j'ai pris le code suivant, repris sur http://www.mediafire.com/download/743rn4bkggmgg1g/Programme_Capteur_Ultrason.ino:

Ce code va naturellement devoir etre adapté, dans notre cas de figure la valeur cm doit etre inférieure à 106 pour pouvoir etre affichée "passage" dans la fonction Serial.printIn("passage")
int trig = 10;
int echo = 11;
long echo_read;
long cm;

void setup()
{
  pinMode(trig, OUTPUT); // definition du pin trig ( pin 10 ) en OUTPUT = sortie : émetteur
  digitalWrite(trig, LOW);
  pinMode(echo, INPUT); // definition du pin echo ( pin 11 ) en INPUT = entrée : recepteur
  Serial.begin(9600); // definition du Moiteur serie avec un taux de rafraichissement de 9600 bauds
}

void loop()
{
  digitalWrite(trig, HIGH);
  delayMicroseconds(10); // Stoppe le programme pendant 10 microsecondes .
  digitalWrite(trig, LOW);
  echo_read = pulseIn(echo, HIGH); /*  Lit la durée de l'impulsion niveau HAUT appliquée sur la broche echo qui est configurée en ENTREE.
  L'instruction pulseIn() attend que la broche passe à HAUT, commence alors le chronométrage, attend que la broche repasse au niveau BAS et stoppe alors le chronométrage.
  L'instruction renvoie la durée de l'impulsion en microsecondes ( 1 millions de microsecondes par secondes). L'instruction s'arrête et renvoie 0 si aucune impulsion n'est survenue dans un temps spécifié.
 */

 cm = echo_read / 58;                  // Calcul la distance en cm cf http://www.micropik.com/PDF/HCSR04.pdf
if (cm < 106)
{
 Serial.print("Passage");  //Affiche l'information passage dans le moniteur
}  delay(1000);                      // Stoppe le programme pendant 1000 microsecondes sois 1 seconde.
}

avrdude: stk500v2_ReceiveMessage(): timeout

Voici le premier message que j'ai eu sur l'ide d'Arduino en mettant en place mes premiers composants Arduino notamment celui du capteur ultrason.
D'après le post http://stackoverflow.com/questions/19645441/avrdude-stk500v2-receivemessage-timeout pour faire simple, ce problème peut etre du à x raisons, autrement dit qu'il va vous falloir fonctionner par hypothèse, bon courage:
- Hypothèse 1: Vérifier la configuration de votre carte Arduino: http://eskimon.fr/81-arduino-104-le-materiel pour ce faire aller dans Outils, puis Type de carte, puis sélectionnez votre carte. Dans mon cas de figure sélectionnez ma carte a permis de résoudre le problème directement.



Apprendre à manipuler une carte Arduino

Le meilleur tutorial que j'ai jamais rencontré pour apprendre le toute début d'Arduino et ce par l'un des co-fondateur du projet:

samedi 25 juillet 2015

Mettre en place le détecteur de distance Arduino

Le composant nécessaire s'appelle le "HC-SR04" mais il y en a d'autres, tels que le "Ping Ultrasonic Range Finder" qui permet de détecter la présence d'un objet de 2 cm à 3 mètres de distance. Pour réaliser ce dernier il vous faudra:
- des fils
- votre carte arduino uno
- le composant HC-SR04
- la breadboard
Super tuto en français pour apprendre à utiliser le capteur de distance:

A quoi sert la breadboard Arduino?

La breadboard Arduino vous permet de mettre en place votre projet sans avoir à le souder sur un circuit électronique.