Assumed by JoshfireARDUINO,exploration d’un designerChloé Payot
PréludeCe projet ne se veut pas expert en la matière Arduino.Voici juste les notes d’un designer qui se penche avec curios...
L’arduinoL’arduino est une «plate-forme de prototype électronique open-source»permettant d’utiliser simplement un microcon...
HARDWARE
Les élémentsL’Arduino de base possède un microcontrôleur, qui rassemble lamémoire (morte et vive), le processeur et les pé...
Les pinsLes pins sont les entrées et sorties sur lesquelles on peut configurerdes actions pour l’arduino. Ils peuvent donc...
Les modèlesIl existe au moins 14 Arduino différents avec chacun des spécificités.Etant donné que le board de l’arduino peu...
Arduino Micro                         Arduino Duemilanove               Arduino MegaC’est la même que l’arduino           ...
Les ShieldsLes shields sont des extensions des cartes Arduino. C’est ce qui donnetout son potentiel à l’usage des Arduinos...
Les capteursLes capteurs vont permettre d’obtenir des informations analogiquesqui seront ensuite traduites par l’arduino. ...
ÉLECTRONIQUE
ConnexionTéléchargez le logiciel arduino sur la page :http://arduino.cc/en/Main/SoftwareConnectez l’arduino avec le câble ...
Le démarrageLorsqu’un Arduino démarre, il va lancer par défaut le dernier programmetéléchargé. Une petite partie logiciell...
SOFTWARE
Le logicielLe logiciel Arduino est d’un usage très simple.On peut déjà programmer des actions à travers cet outil, mais po...
Premier sketchLes sketchs sont les programmes que l’on peut coder avec le logicielArduino.                                ...
LangageTous les sketchs doivent posséder deux lignes de code minimum : voidsetup et void loop qui vont différencier les fo...
Fonction input et outputLes fonctions donnent les actions du code.Voici un exemple d’écriture d’une fonction.             ...
Programmer pour l’analogiqueLorsqu’il s’agit de récupérer les informations d’un capteur qui envoie        /*              ...
Se connecter en ethernetPour se connecter à internet il est nécessaire de posséder un arduino        #include <Ethernet.h>...
EXERCICE
Premier projetSur le site Arduino.cc, on trouve les codes et tutoriaux pour réaliser desimple projet avec l’arduino de bas...
Un bouton et une LEDVoici un sketch qui permet de controler l’allumage d’une led grâce à un   // constants won’t change. T...
Assumed by JoshfireCréditLa majorité de ces informations sont une traduction du site :www.arduino.cc/Les autres sites :htt...
Prochain SlideShare
Chargement dans…5
×

Arduino, exploration d'un designer 1

3 456 vues

Publié le

Notes d'observations sur l'arduino.
http://www.joshfire.com/

Publié dans : Design
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 456
Sur SlideShare
0
Issues des intégrations
0
Intégrations
406
Actions
Partages
0
Téléchargements
391
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Arduino, exploration d'un designer 1

  1. 1. Assumed by JoshfireARDUINO,exploration d’un designerChloé Payot
  2. 2. PréludeCe projet ne se veut pas expert en la matière Arduino.Voici juste les notes d’un designer qui se penche avec curiositésur le domaine.
  3. 3. L’arduinoL’arduino est une «plate-forme de prototype électronique open-source»permettant d’utiliser simplement un microcontrôleur ATMEL AVR.L’arduino récupère les informations de l’extérieur à travers des capteursde tout genre et peut contrôler des mécanismes comme des petitsmoteurs ou des LED.C’est une interface d’entrée/sortie simple qui se programme avec unlangage basé sur Wiring. Elle utilise l’environnement processing.Comme l’interface de l’arduino est standardisée, les gens peuventcréer des extensions (wifi, écran...) qu’on peut clipser directement surla carte sans avoir à souder les composants.L’arduino permet une interaction autonome entre l’objet et sonenvironnement. Une action physique ou analogique déclenche uneinformation digitale et inversement.C’est pourquoi on trouve souvent de l’arduino dès qu’il s’agit de créerdes objets «intelligents».Pour l’histoire, il a été développé par des designers d’interaction italienMassimo Banzi et David Cuartielles.
  4. 4. HARDWARE
  5. 5. Les élémentsL’Arduino de base possède un microcontrôleur, qui rassemble lamémoire (morte et vive), le processeur et les périphériques d’entréeset sorties ; des entrées et sorties USB (spécifique à ce model) etdes prises power jack pour transmettre les informations et alimenterl’Arduino avec une tension entre 7 et 12V, permettant d’utiliserdifférents types d’alimentations (piles, batteries, adaptateur...) ; desLED qui servent surtout à indiquer l’état d’activité de l’arduino ; unbouton reset manuel ; un ICSP Header qui permet de programmer lemicrocontrôleur sans passer par la «couche» Arduino ; une puce FTDIUSB qui convertit l’information usb et enfin ; des pins dans tous lessens.
  6. 6. Les pinsLes pins sont les entrées et sorties sur lesquelles on peut configurerdes actions pour l’arduino. Ils peuvent donc être programmés en Input,Output ou comme des résistances. Par défaut, ils sont programmés enInput. Sur tous les Arduinos, on trouve 3 types de pins différents :- Les pins digitauxLes pins digitaux peuvent être des entrées ou des sorties. Ils vont gérerdes informations de type ON/OFF (Est-ce que le courant passe ounon ?) Parmis les pins, certains ont une double fonction spécifique,comme la fonction AREF qui défini la tension de référence pour lespins Analogiques entre 0 et 1024.- Les pins powerLes pins power assurent l’alimentation du circuit. Le Gnd est le ground,le - du circuit ; 5V, 3V3 et VIN sont les + du circuit et sont choisis enfonction du voltage du circuit. (le VIN permet de lier la sortie à la prisepower jack)- Les pins analogiquesLes pins analogiques par opposition aux numériques traduisentl’information dans un rapport continu (une variable). Ils permettent demesurer les résultats des capteurs analogiques.
  7. 7. Les modèlesIl existe au moins 14 Arduino différents avec chacun des spécificités.Etant donné que le board de l’arduino peut aussi être fait main, on imaginequ’il y a une infinité de possibilités.Mais voici ceux que l’on trouve le plus souvent et leurs caractéristiques :Arduino UNO Arduino Léonardo Arduino EthernetL’arduino Uno est un générique Il est possible de le connecter Comme son nom l’indique il peutqui possède une sortie usb et qui avec un ordinateur comme une se connecter au web grâce à sagère très bien les communications souris, car il gère le mode «usb- prise ethernet.avec l’ordinateur. host»
  8. 8. Arduino Micro Arduino Duemilanove Arduino MegaC’est la même que l’arduino C’est un modèle quasi identique Possède beaucoup plus de pinsLéonardo mais elle fait 5 cm par à l’arduino UNO pour gérer plus d’actions par1,77. l’arduino.Arduino Lilypad Wifi Shield Motor ShieldCet arduino est souvent utilisé Ceci est un shield que l’on va Voici un shield spécialementdans les textiles car il est souple «pluger» sur un arduino et qui pensé pour lier l’arduino à deset petit. permet de se connecter en wifi. petits moteurs.
  9. 9. Les ShieldsLes shields sont des extensions des cartes Arduino. C’est ce qui donnetout son potentiel à l’usage des Arduinos. Par exemple : si je voulaisenvoyer des coordonnées GPS par wifi, il faudrait un arduino pourfaire tourner la logique, un shield GPS pour récupérer les données delocalisation et un shield wifi pour la connexion. Je les branche simplementsans soudure en les empilant et je peux programmer l’arduino.
  10. 10. Les capteursLes capteurs vont permettre d’obtenir des informations analogiquesqui seront ensuite traduites par l’arduino. Voici quelques exemples decapteurs et de ce que l’on peut capter.Capteur LDR Capteur CTNPhotoresistance pour capter Capteur d’humidité, de gaz et Thermistance pour capter lal’intensité lumineuse. de température. chaleur.Détecteur de choc Détecteur d’inclinaison Ampoule à bille Capte l’inclinaison (renversement)
  11. 11. ÉLECTRONIQUE
  12. 12. ConnexionTéléchargez le logiciel arduino sur la page :http://arduino.cc/en/Main/SoftwareConnectez l’arduino avec le câble adapté. Il s’agit en général de câbleUSB, mais pour l’arduino ethernet c’est un câble wiznet ethernetinterface.Une fois connecté à l’ordinateur, des LED vertes s’allument sur la carte.Ouvrez le logiciel.Dans la partie Outils/Type de carte, sélectionnez l’arduino que vousutilisez.Assurez vous que le Port Serial (sur Mac OS X) donne une adresse dece genre : /dev/tty.usbmodem621 ou /dev/tty.usbserial-A02f8ePour l’arduino ethernet, le serial usb n’apparait pas naturellement,à cause du wiznet. Il faut installer un FTDI serialdriverusb que voustrouverez ici : http://hofmannsven.com/2012/laboratory/arduino-ethernet/Faites un test en «téléversant» un exemple de sketch que vous trouverezdans le menu Fichier/exemples.Le plus simple est d’utiliser Blink qui fera clignoter la LED sur le pin 13(ou 9 pour l’arduino ethernet)Si problème : http://arduino.cc/en/Guide/Troubleshooting#toc1
  13. 13. Le démarrageLorsqu’un Arduino démarre, il va lancer par défaut le dernier programmetéléchargé. Une petite partie logicielle sert de chargeur d’amorçageet va vérifier si l’ordinateur nous envoie un autre programme. C’est lebootloader.S’il y a un nouveau code, l’arduino démarre le nouveau programme.Sinon il répète l’ancien.On ne touche quasiment jamais au bootloader, mais si on avait besoinde modifier le système d’accès aux programmes (télécharger leprogramme en wifi par exemple), on peut trouver les méthodes surinternet.Pour modifier les préférences sur le bootloader :http://arduino.cc/en/Hacking/Bootloader
  14. 14. SOFTWARE
  15. 15. Le logicielLe logiciel Arduino est d’un usage très simple.On peut déjà programmer des actions à travers cet outil, mais pour ceuxqui ne savent pas programmer ou pour des codes plus complexes, onpeut télécharger des bibliothèques.On crée un nouveau fichier, on sélectionne notre support arduino dansla liste et notre serial port, on code l’information, on verifie grâce aucorrecteur, on envoie sur la carte arduino et le port sur lequel il estbranché réagit par un clignotement des LED. On peut vérifier sur leterminal quelles informations ont été reçues par la carte.
  16. 16. Premier sketchLes sketchs sont les programmes que l’on peut coder avec le logicielArduino. EXEMPLE int ledPin = 13;Conseil d’usage // LED connected to digital pin 13 void setup()Pour soi, il est parfois appréciable de pouvoir mettre des commentaires { pinMode(ledPin, OUTPUT);pour décrire l’action attendue. Les notes s’écrivent ainsi : // sets the digital pin as output }/* * Blink void loop() * { * The basic Arduino example. Turns on an LED on for one second, digitalWrite(ledPin, HIGH); * then off for one second, and so on... We use pin 13 because, // sets the LED on * depending on your Arduino board, it has either a built-in LED delay(1000); // waits for a * or a built-in resistor so that you need only an LED. second * digitalWrite(ledPin, LOW); * http://www.arduino.cc/en/Tutorial/Blink // sets the LED off */ delay(1000); // waits for a secondTout ce qui se trouve entre /* et */ n’est pas pris en compte. }Un autre moyen est de l’écrire ainsi, avec // ceux-ci s’arrêtent à la finde la ligne.int ledPin = 13; // LED connected to digital pin 13Pour des raccourcis on peut utiliser des variables.La variable pour une broche (pin) s’écrit ainsi :int ledPin = 13Plus tard, 13 suffira à signifier la LED.
  17. 17. LangageTous les sketchs doivent posséder deux lignes de code minimum : voidsetup et void loop qui vont différencier les fonctions d’initialisation et laboucle principale du programme.Il est nécessaire dans chaque sketch arduino d’intégrer les fonctionssetup() et loop(), même si on ne les utilise pas. void setup() {La fonction setup est appelée une fois au démarrage du programme, Serial.begin(9600);elle permet d’intialiser des bibliothèques ou de paramétrer les pins. pinMode(buttonPin, INPUT); }La fonction loop est appelée en boucle tout le temps où l’arduino estallumé.void setup() indique les actions qui se lancent 1 fois et va contenir void loop()souvent les variables à initialiser, les modes des pins et les bibliothèques. { if (digitalRead(buttonPin) == HIGH)Pour chaque pin qu’on va utiliser, il est nécessaire de spécifier dans Serial.write(‘H’);quel mode (input ou output) le pin est connecté pinMode() où pin = elsenuméro du pin Serial.write(‘L’); delay(1000); }void loop() contient les actions qui tournent en continu.if () va permettre de choisir de faire une action ou une autre selon unecondition. Exemple : if (température<0) {Serial.printin(«FROID»).write() ou digitalWrite() permet d’indiquer la valeur low ou high..printIn() permet de voir écrite une information sur le programme.delay() laisse un temps d’attente.On trouve une grande partie des éléments du langage sur ce lien :http://arduino.cc/en/Reference/HomePage
  18. 18. Fonction input et outputLes fonctions donnent les actions du code.Voici un exemple d’écriture d’une fonction. EXEMPLE La LED s’allume en High, laissevoid setup(){ un délai de une seconde et pinMode(ledPin, OUTPUT); // sets the digital pin as output passe en off, Low.}Il faut dans un premier temps coder l’information liée à chaque broche, int ledPin = 13; // LED connected to digital pin 13pin. Sont-elles in or output ? Input, c’est une donnée extérieure que jeveux lire. Output, c’est une action que je veux faire. void setup() { pinMode(ledPin, OUTPUT);digitalWrite(ledPin, HIGH) ; // sets the digital pin as output }digitalWrite() est la fonction qui permet de choisir la valeur d’une void loop()broche. Ici en HIGH, elle correspond à 5 volts. S’il y avait écrit LOW, {elle correspondrait au ground, à une valeur de 0 volt. digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a secondOn peut ajouter un délai pour demander à l’arduino de laisser un lapse digitalWrite(ledPin, LOW); // sets the LED offde temps entre deux actions. Pour laisser 1 seconde, il faut convertir delay(1000);en milliseconde. On écrira la fonction delay() : // waits for a second }delay(1000) ;Lorsqu’on touche à des programmes plus complexes, on trouve lestutoriaux et codes sur les bibliothèques :http://arduino.cc/en/Reference/Libraries
  19. 19. Programmer pour l’analogiqueLorsqu’il s’agit de récupérer les informations d’un capteur qui envoie /* AnalogReadSerialune donnée non-binaire, on passe par les broches analogiques. Voici Reads an analog input on pin 0, prints theun exemple avec un potentiomètre. result to the serial monitor. Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V andOn connecte deux broches en input et output et la dernière sur le 0 / ground.GND. This example code is in the public domain. */ // the setup routine runs once when you pressIl faut lire la valeur actuelle du capteur et la mettre dans une variable p reset:de type int(nombre entier). C’est une façon de déterminer la sensibilité void setup() {du capteur. // initialize serial communication at 9600 bits per second:analogRead() renvoie une valeur entre 0 et 1024, qui correspond à la Serial.begin(9600);tension qui arrive au pin. } // the loop routine runs over and over again int sensorValue = analogRead(A0); forever: void loop() {Ensuite il faut pouvoir visionner les résultats du capteur en récupérant // read the input on analog pin 0: int sensorValue = analogRead(A0);une quantité décimale sur la fenêtre du programme avec la commande // print out the value you read:Serial.println(). Serial.println(sensorValue); delay(1); // delay in between reads for stabilitySerial.println(sensorValue, DEC) }
  20. 20. Se connecter en ethernetPour se connecter à internet il est nécessaire de posséder un arduino #include <Ethernet.h>ethernet ou wifi et de télécharger une bibliothèque ethernet. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF,L’adresse mac, est l’adresse «matérielle» de l’arduino sur le réseau. 0xFE, 0xED }; byte ip[] = { 10, 0, 0, 177 };Sur les versions récentes elle est écrite sur le Shield , sinon il faut en byte server[] = { 64, 233, 187, 99 }; // Googlechoisir une au hasard. Autrement l’adresse IP de connexion s’obtienten utilisant : Client client(server, 80);Ethernet.begin(mac), avec le réseau internet choisi. mac = Media void setup()Access Control { Ethernet.begin(mac, ip); Serial.begin(9600);Sur l’exemple à gauche on voit comment indiquer la connexion d’unutilisateur. delay(1000);On reconnait l’utilisateur : Serial.println(«connecting...»);EthernetClient client; if (client.connect()) {client.connect(«adressedusiteweb»,80) Serial.println(«connected»);On demande d’indiquer l’état de la connexion ethernet avec la fonction client.println(«GET /search?q=arduinoSerial.printIn(«connecting..») HTTP/1.0»); client.println();Pour la connexion du client on entre une condition : } else { if (client.connect()) { Serial.println(«connection failed»); } Serial.println(«connected»); } client.println(«GET /search?q=arduino HTTP/1.0»); client.println(); void loop() { } if (client.available()) {Pour indiquer quand elle échoue: char c = client.read(); Serial.print(c);else { } Serial.println(«connection failed»); } if (!client.connected()) { Serial.println(); Serial.println(«disconnecting.»); client.stop(); for(;;) ; }
  21. 21. EXERCICE
  22. 22. Premier projetSur le site Arduino.cc, on trouve les codes et tutoriaux pour réaliser desimple projet avec l’arduino de base.http://arduino.cc/en/Tutorial/HomePagePour tester les circuits on utilise les platines d’essai.
  23. 23. Un bouton et une LEDVoici un sketch qui permet de controler l’allumage d’une led grâce à un // constants won’t change. They’re used here tobouton. // set pin numbers:Il faut connecter les câbles power, rouge 5V et noir Gnd, ainsi que la const int buttonPin = 2; // the number of the pushbutton pinbroche 2 côté digital. const int ledPin = 13; // the number ofCe programme allume et éteint la LED intégrée du pin 13 lorsque l’on the LED pinappuie sur le bouton. Seul le bouton a besoin de recevoir le courant // variables will change:électrique 5V depuis l’arduino. int buttonState = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop(){ // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); } else { // turn LED off: digitalWrite(ledPin, LOW); } }
  24. 24. Assumed by JoshfireCréditLa majorité de ces informations sont une traduction du site :www.arduino.cc/Les autres sites :http://fr.wikipedia.org/wiki/Arduinohttp://www.ladyada.net/learn/arduino/http://video.mit.edu/watch/arduino-tutorial-1-10950/Chloé Payot

×