Outils pour utilisateurs

Outils du site


wiki:projets:fun_mooc_-_programmer_un_objet_avec_arduino

Fun MOOC - Programmer un objet avec Arduino

Porteurs du projet

Jamel BENMAMAR (contact : jamel.benmamar@upmc.fr)

Christophe BONNET (contact : christophe.bonnet@upmc.fr)

Sylvain THERY (contact : sylvain.thery@upmc.fr)

Introduction

Descriptif du MOOC

  • *Les thématiques : Informatique, Innovation, Numérique, technologie, Programmation À propos du cours Ce MOOC est le troisième volet du parcours La Fabrication Numérique. Apprenez à programmer un objet en utilisant l’électronique et le développement Arduino issu des FabLabs ! Grâce à ce MOOC, vous pourrez rapidement programmer et construire un objet interactif après avoir acquis les connaissances de base en électronique et en développement informatique. Vous serez capable de programmer un Arduino, un petit ordinateur utilisé dans les FabLabs pour rendre les objets intelligents. Vous collaborerez entre apprenants, échangerez avec les experts de ce MOOC et apprendrez à devenir un vrai “maker” ! Ce cours s’adresse aux curieux et aux passionnés du numérique de tous âges souhaitant découvrir les technologies que l'on trouve dans les FabLabs. Rejoignez-nous ! À la fin du MOOC, je suis capable de… * Programmer un microcontrôleur Arduino * Interfacer Arduino avec des capteurs analogiques et numériques (bouton poussoir, capteurs de lumière, de bruit, de présence, de pression…) * Utiliser une librairie logiciel (pour contrôler des moteurs, des prises lumières, du son…) * Décoder les concepts clés du prototypage issus des Fablabs (apprentissage par l'exemple, prototypage rapide…) Prérequis Des notions en développement informatique sont un plus. Il est recommandé d'avoir suivi le MOOC s'Initier à la fabrication numérique Kit de démarrage L'acquisition d'un kit de démarrage pour pouvoir réaliser les exercices pratiques est optionnelle. Il vous sera possible de suivre le cours sur un simulateur proposé dans le MOOC. Liste du matériel Kit de démarrage : l'essentiel * Arduino UNO R3 avec son câble USB ×1 * Platine de prototypage × 1 (aux moins 500 'trous') * Kit de câbles de prototypages × 1 * LED de différentes couleurs (au moins 2 x vert, 2 x rouge, 2 x orange ou jaune) * Résistances de différentes valeurs : * 10KΩ × 5 * 4KΩ × 5 * 1KΩ × 5 * 220Ω × 5 * 150Ω × 5 * Condensateurs céramique de différentes valeurs : * 100nF × 2 * 10nF × 2 * Condensateurs chimiques de différentes valeurs ( tension de service d'au moins 10v ) : * 10uF × 2 * 47uF × 2 * 470uF × 2 * Diodes 1N4148 × 2 (ou autre diode) * Transistor NPN (TO92) x 2 ( ex. BC337, BC546, 2N2222, 2N3904…) * Transistor PNP (TO92) x 2 ( ex. BC327, BC556, 2N2907, 2N3906…) * Photorésistance × 1 * Bouton poussoirs × 5 * Potentiomètre 10kΩ (preset) × 1 * Potentiomètre 10kΩ ou 50kΩ avec bouton × 1 * Piezo buzzer × 1 Matériel optionnel * Module d'extension (shield ou module) écran LCD 16×2 ( très recommandé ) * LED RVB × 1 * Bouton codeur avec contact × 1 * Thermistance ( 100kΩ ou 50kΩ ) × 1 * LM35 (sonde de température) × 1 * Transistor MOSFET-N “Logic level” × 1 ( ex. IRL530 ) * Transistor MOSFET-P “Logic level” × 1 ( ex. IRF9530 ) * Module Relais pilotable en 5V pour commuter jusqu'à 230V × 1 * Module d'extension (shield ou breakout board) Ethernet (au choix) : * (basé sur chip Wiznet W5100) × 1 ( plus cher mais plus facile à utiliser avec l'Arduino UNO ) * (basé sur chip ENC28J60) x 1 (moins cher mais gourmand en mémoire) * Mini Servo Moteur × 1 ( choisir la plus grande angle d'ouverture possible ) * Boîtier plastique pour contenir les composants et l'Arduino × 1 (vraiment optionnel :) Prix moyen :~50€ Attestations Une attestation de suivi avec succès est attribuée par FUN aux apprenants ayant réussi les évaluations. ====Déroulement du MOOC==== Le MOOC s'étale sur 4 semaines dans lesquelles vous verrez : * Semaine 1 : Les outils * Semaine 2 : Capteurs numériques + 1 TP * Semaine 3 : Capteurs analogiques + 1 TP * Semaine 4 : Librairies et sorties + 1 TP ====Travaux pratiques==== Le MOOC est maintenant terminé, voici donc les corrections des TP comme promis ;) TP1 : Feu tricolore <code> /* Feu tricolore TP de la semaine 1 du MOOC “Programmer un objet avec Arduino” Allume trois LED comme suit : Verte allumée pendant 3 secondes Orange allumée pendant 1 seconde Rouge allumée pendant 3 secondes Le montage : * Une LED rouge sur la broche 2 en série avec une résistance de 220Ω * Une LED orange sur la broche 3 en série avec une résistance de 220Ω * Une LED verte sur la broche 4 en série avec une résistance de 220Ω créé le 18 Mai 2018 par Baptiste Gaultier Ce code est en CC0 1.0 Universal https://www.fun-mooc.fr/courses/MinesTelecom/04017/session01/about */ int rouge = 2; int orange = 3; int verte = 4; le code dans cette fonction est exécuté une fois au début void setup() { indique que les broches des LED sont des sorties : pinMode(rouge, OUTPUT); pinMode(orange, OUTPUT); pinMode(verte, OUTPUT); } le code dans cette fonction est exécuté en boucle void loop() { digitalWrite(verte, HIGH); delay(3000); digitalWrite(verte, LOW); digitalWrite(orange, HIGH); delay(1000); digitalWrite(orange, LOW); digitalWrite(rouge, HIGH); delay(3000); digitalWrite(rouge, LOW); } </code>

TP1 : Montage électronique Pour réaliser ce montage, vous avez besoin de : * Un Arduino * Une platine de prototypage * Un câble USB * Trois résistances de 220Ω * Des fils de prototypage * Une LED verte * Une LED orange * Une LED rouge TP2 : Feu tricolore + feu piéton <code> /* Feu tricolore + Feu Piétons TP de la semaine 2 du MOOC “Programmer un objet avec Arduino” Le montage : * Une LED rouge sur la broche 12 en série avec une résistance de 220Ω * Une LED orange sur la broche 11 en série avec une résistance de 220Ω * Une LED verte sur la broche 10 en série avec une résistance de 220Ω * Une LED rouge sur la broche 9 en série avec une résistance de 220Ω * Une LED verte sur la broche 8 en série avec une résistance de 220Ω * Bouton poussoir branché sur la broche 2 depuis +5V * Une résistance de 1KΩ branché sur la broche 2 depuis GND créé le 9 Avril 2014 par Baptiste Gaultier avec les conseils de fb251 Ce code est en CC0 1.0 Universal https://www.france-universite-numerique-mooc.fr/courses/MinesTelecom/04002/Trimestre_1_2014/about */ Initialisation des constantes pour les LED const int rouge = 12; const int orange = 11; const int verte = 10; const int rougePieton = 9; const int vertePieton = 8; Numéro de la broche à laquelle est connecté le bouton poussoir const int bouton = 2; Déclaration des variables : int etatBouton = 0; le code dans cette fonction est exécuté une fois au début void setup() { indique que les broches des LED sont des sorties : pinMode(rouge, OUTPUT); pinMode(orange, OUTPUT); pinMode(verte, OUTPUT); pinMode(rougePieton, OUTPUT); pinMode(vertePieton, OUTPUT); indique que la broche bouton est une entrée : pinMode(bouton, INPUT); } le code dans cette fonction est exécuté en boucle void loop() { Dans le fonctionnement normal, le feu piéton est toujours rouge digitalWrite(rougePieton, HIGH); Fonctionnement normal du feu voiture digitalWrite(verte, HIGH); delay(3000); digitalWrite(verte, LOW); lit l'état du bouton et stocke le résultat dans etatBouton : etatBouton = digitalRead(bouton); Si etatBouton est égal à HIGH c'est que le bouton est appuyé if (etatBouton == HIGH) { digitalWrite(orange, HIGH); delay(1000); digitalWrite(orange, LOW); digitalWrite(rouge, HIGH); Le feu piéton passe au vert pendant 5s digitalWrite(rougePieton, LOW); digitalWrite(vertePieton, HIGH); delay(5000); On remet le feu piéton au rouge digitalWrite(rougePieton, HIGH); digitalWrite(vertePieton, LOW); Puis on s'assure que le feu voiture est éteint digitalWrite(rouge, LOW); } else { Fonctionnement normal du feu voiture digitalWrite(orange, HIGH); delay(1000); digitalWrite(orange, LOW); digitalWrite(rouge, HIGH); delay(3000); digitalWrite(rouge, LOW); } } </code> TP2 : Montage électronique Pour réaliser ce montage, vous avez besoin de : * Un Arduino * Une platine de prototypage * Un câble USB * Cinq résitances de 220Ω * Une résistance de 10kΩ * Des fils de prototypage * Deux LED verte * Une LED orange * Deux LED rouge * Un bouton poussoir TP3 : Thérémine lumineux <code> /* Thérémine lumineux Le montage : * Un piezo branché sur la broche 8 * Une photorésistance branchée sur la broche A2 depuis +5V * Une résistance de 10kΩ branchée sur la broche A2 depuis GND créé le 9 Avril 2014 par Baptiste Gaultier Ce code est en CC0 1.0 Universal https://www.france-universite-numerique-mooc.fr/courses/MinesTelecom/04002/Trimestre_1_2014/about */ variable pour stocker la valeur reçue sur A2 int sensorValue; void setup() { } void loop() { lire la valeur de la photorésistance et stocker ça dans une variable Attention, sur les schéma/montage en dessous, elle est branchée sur A2 (et non A0) sensorValue = analogRead(A2); re étalonne la variable vers un grand intervalle de fréquences audibles int pitch = map(sensorValue, 0, 1023, 50, 30000); jouer la fréquence sur le piezo branché sur la broche 8 tone(8, pitch); attendre 10 ms delay(10); } </code> TP3 : Montage électronique Pour réaliser ce montage, vous avez besoin de : * Un Arduino * Une platine de prototypage * Un câble USB * Une résistance de 10kΩ * Des fils de prototypage * Une photorésistance * Un piézo TP4 : Feu tricolore et barrière <code> /* Feu bicolore et barrière Le montage : * Une LED rouge sur la broche 3 en serie avec une resistance de 220Ω * Une LED verte sur la broche 4 en serie avec une resistance de 220Ω * Un servomoteur branché sur les broches 9, +5V et GND * Bouton poussoir branché sur la broche 2 depuis +5V * Une résistance de 1KΩ bracnhé sur la broche 2 depuis GND créé le 18 Avril 2014 par Baptiste Gaultier Ce code est en CC0 1.0 Universal https://www.france-universite-numerique-mooc.fr/courses/MinesTelecom/04002/Trimestre_1_2014/about */ #include <Servo.h> Servo servo; création de l'objet servo issu du moule Servo Initialisation des constantes const int bouton = 2; const int ledRouge = 3; const int ledVerte = 4; Déclaration des variables : int etatBouton = 0; int pos = 0; le code dans cette fonction est exécuté une fois au début void setup() { on souhaite communiquer avec l'ordinateur Serial.begin(9600); indique que les broches des LED sont des sorties : pinMode(ledRouge, OUTPUT); pinMode(ledVerte, OUTPUT); indique que la broche bouton est une entrée : pinMode(bouton, INPUT); on accroche notre servomoteur branché sur la broche 9 servo.attach(9); allume le feu rouge digitalWrite(ledRouge, HIGH); positionne la barrière horizontalement servo.write(0); } le code dans cette fonction est exécuté en boucle void loop(){ read the state of the pushbutton value: etatBouton = digitalRead(bouton); si le bouton est appuyé if (etatBouton == HIGH) { alors on envoie un message sur le moniteur série Serial.print(“Bouton appuye”); puis on remonte la barrière de 90° for(pos = 0; pos ⇐ 90; pos++) { servo.write(pos); delay(15); } puis on allume le feu vert durant 5 secondes digitalWrite(ledRouge, LOW); digitalWrite(ledVerte, HIGH); delay(5000); et on repasse au rouge digitalWrite(ledVerte, LOW); digitalWrite(ledRouge, HIGH); enfin, on redescend la barrière for(pos = 90; pos>=0; pos–) { servo.write(pos); delay(15); } } } </code> TP4 : Montage électronique**

Pour réaliser ce montage, vous avez besoin de :

  • Un Arduino
  • Une platine de prototypage
  • Un câble USB
  • Une résistance de 10kΩ
  • Deux résistances de 220Ω
  • Des fils de prototypage
  • Une photorésistance
  • Un servomoteur
  • Un bouton possoir
  • Une LED rouge
  • Une LED verte
wiki/projets/fun_mooc_-_programmer_un_objet_avec_arduino.txt · Dernière modification: 2020/10/05 16:39 (modification externe)