Workshop Arduino

De Nybi.cc
Aller à : navigation, rechercher


L'Arduino permet à tous de réaliser simplement des projets électroniques : Arduino en quelques mots

L'approche de la formation

  • Introduction à l'Arduino avec 4 workshops d'environ 1 heure. Accessible à des débutants n'ayant jamais codé, jamais touché à de l'électronique.
  • Le but est de montrer quelques un des nombreux domaines que peuvent toucher les projets Arduino, en apprenant par la pratique : un montage par workshop.
  • La connaissance acquise devrait être suffisante pour permettre ensuite aux participants d'aller plus loin par eux même en utilisant les ressources disponibles sur le Web.

Exemple de première séance :

  1. Faire clignoter une LED
  2. un bouton pour la LED
  3. Subsidiaire: le bouton change le prog de clignotement de la LED

Après chaque workshop les participants peuvent rester au local pour appliquer ce qu'ils ont appris et complexifier le montage pour le reste de la soirée.

Informations pratiques

  • Le workshop aura lieu 4 mercredi soir de suite de 19h à 20h, à partir du 16 novembre.
  • Le kit suivant sera nécessaire pour suivre le workshop: http://www.oomlout.co.uk/arduino-experimentation-kit-ardx-p-183.html
  • Nous commanderons les kits pour les inscrits au workshop (~65€ par personne)
  • Adhérents: workshop gratuit et matériel à prix coûtant
  • Non adhérents: 10€ de participation minimum pour les 4 soirées — donnez plus si vous le pouvez.

Participants:

  1. Schnouki
  2. Gérald
  3. Stéphane
  4. William
  5. Christian
  6. Emmanuel

Détail de la séance #1

Résumé du contenu

  • Présentation de l'Arduino
    • Des pins pour les entrés sorties
    • Principe d'une breadboard
  • Cabler une LED
    • Pourquoi ajouter une résistance
    • U=RI pour calculer la valeur
    • Alimentation USB/Pile/batterie
  • Intro à l'IDE Arduino
    • Où écrire le code
    • Que se passe-t-il quand on le compile
    • Charger le programme dans le micro controleur
  • Un programme pour faire clignoter la LED
    • Fonction setup() loop()
    • pin en sortie
    • écrire sur le pin
  • Cabler un bouton poussoir
    • Problème de la ligne flotante
    • Ajout d'une résistance de tirage (pull-up)
  • Un programme pour allumer/éteindre la LED avec le bouton
    • Les variables booléennes
    • Configurer un pin en entré
    • Structure conditionnelle

Code

boolean led = true;

void setup() {                
  pinMode(9, OUTPUT);
  pinMode(2, INPUT);
  digitalWrite(9, led); // Ecrit le statut initiale de la LED ON/OFF
}

void loop() {
  if (digitalRead(2) == LOW){
    delay(1000); // Attendre une seconde pour laisser le temps de relacher le bouton
    led = !led; // On inverse la valeur de la variable booléenne 
    digitalWrite(9, led);
  }
}

Notes

  • Durée environ 2h
  • Quelques problèmes avec l'installation de l'IDE/Drivers, prévoir un ordi supplémentaire en pret
  • Le montage réalisé permet d'être utilisé sans ordinateur, demander aux participants d'emmener une pile 9V
  • Cela aurait été bien de développer un peu sur la structure conditionnelle avec des else if, else etc.

Détail de la séance #2

Résumé du contenu

  • Cabler un potentiomètre à la place du bouton pour contrôler la LED
    • Potentiomètre = résistance variable
    • Pin analogique
  • Un programme pour faire varier la vitesse du clignotement en fonction du potentiomètre
    • Utilisation d'entier comme variable
    • Fonction analogRead()
    • Utilisation de variable comme paramètre d'une fonction
  • Un programme pour faire varier la luminosité de la LED en fonction du potentiomètre
    • PWM et fonction analogWrite()
    • Codage sur 8bit/10bit analogRead/analogWrite
    • Operation sur les variables
  • Affichage de la valeur du potentiomètre sur l'ordinateur
    • Introduction au port serie
    • utilisation de serial.println()

Notes

  • Durée environ 1h (tous les présents avaient déjà codé...)
  • Subsidiaire ou exercice pour la prochaine séance: utiliser une sonde de température à la place du potentiomètre : http://ardx.org/CIRC10
  • Expliquer l'intérêt de faire entrer des données venant de l'Arduino sur l'ordi. Exemple http://processing.org
  • Cela aurait été bien d'introduire les boucles dans cette séance...