Arduino

De Wikilipo
Aller à la navigation Aller à la recherche

Exploration, mise en place et emploi de l'arduino

OpenSoftWare.png

Illustration (c) 2008 by Tony Olsson, David Gaetano, Jonas Odhner, and Samson Wiklund. Licence CC-NC-SA 2.5)

prototypes et monstrations

ShiftRegisteredLeds.png

Networked lamp.png

  • angelino, sur le site d'Albertine Meunier;
  • auduino: utilise des algorithmes de synthèse granulaires pour générer des sons filtrés par balayage (filter-sweep sounds);
  • moanbot un jouet interactif, anthropomorphe et programmable développé à partir de l'arduino
  • le Mindwave® pour contrôler un robot, sur le site de MAKE.

Installation logicielle

sous MacOS X

  • aller sur ce lien sur arduino.cc;
  • télécharger arduino-1.00.dmg (image disque de l'application);
  • le décompresser;
  • placer Arduino.app dans le répertoire /Applications

Les versions des OS Linux et Windows, sont disponibles et explicitées sur le site arduino.cc.

matériel et câblage

première expérimentations ordinateur/arduino/monde concret

disposer de:

  • l'arduino (dans l'une de ses différentes incarnations);
  • un câble usb pour le transfert de programmes de l'ordinateur vers l'arduino, son alimentation et comme port série)
  • un jeu de fils #22 (AWG) pré-dénudés de différentes couleurs et longueurs
  • un jeu de résistances (~300 Ohms et 10 KOhms)
  • un jeu de DELs/LEDs
  • un une platine d'essais sans soudures (breadbord)
  • des interrupteurs et des résistances variables (potentiomètres, cellules photoélectriques)
  • des transducteurs soniques, piézoélectriques
  • des petits moteurs électriques, servo-moteurs, relais, solénoïdes
  • des capteurs: photorésistances, capteurs de pression et de pliage, accéléromètres
  • un outillage de base pour l'électronique (câbles, pinces, bruxelles, lampe de poche, matériel de soudure...)

plus loin:

  • émetteurs et récepteurs infra-rouge, radio, ultrasoniques
  • capteurs de rythme cardiaque; encéphalographiques
  • et, bien sûr, l'utilisation des capteurs et actions des smart phones sous iOs ou Android.

programmation: fil rouge des premiers pas dans le langage

d'après un plan proposé par Pierre Rossel

Plan de cours pour l'introduction au langage Arduino.
Avril 2013 par @prossel.com

1 thème abordé: sorties, setup()

ex: allumer une led
sans variable
juste setup() et un loop()

2 thème abordé: loop

ex: clignoter en continu avec loop()
Déplacer le code d'allumage/extinction de setup() dans loop()

3 thème abordé: variable

ex: ajouter une variable pour le numéro de port

4 thème abordé: entrées

ex: lecture d'un entrée numérique (bouton poussoir)
1 allumer/éteindre une led
2 envoyer une info sur port série

5 thème abordé: inversion

ex: éteindre la led quand on appuie sur le bouton
par inversion de la variable

ex: dimmer manuel
variable luminosité
pseudo-code: allumer, attendre luminosité, éteindre, attendre 40-luminosité
changer manuellement la valeur de la variable, relancer, voir le changement
de luminosité

6 thème abordé: test

ex: dimmer contrôlé
utiliser bouton pour faire varier valeur de luminosité
pseudo-code: si bouton high et < 40, ajouter 1
sinon si > 0 enlever 1

7 thème abordé: fonction

ex: sos (sans fonction)
ex: sos (avec fonction)

programmation: hello arduino

blink led, une sortie numérique

  • matériel nécessaire: un câble usb et un arduino, éventuellement une DEL et une résistance de 220 Ohm placées sur un circuit d'essai et connectée au PIN 13 avec un retour à la terre (GND), voir le schéma
  • étapes nécessaires pour faire fonctionner l'arduino une fois le câblage réalisé:
  1. écrire le programme ou sketch
  2. compiler le programme
  3. l'envoyer à l'arduino
  4. l'arduino exécute le programme (indépendamment du contact/alimentation usb).
  • le sketch ci-dessous illustre la structure de base d'un programme; il allume/éteint alternativement une DEL pendant 1 seconde
// section des déclarations de variables
int ledPin = 13    //la prise 13 est équipée dune DEL sur la plupart des Arduinos

// section de mise en place/installation
void setup() {                
  // initialisation de la prise numérique 13 (digital pin) en tant que sortie (OUTPUT).
  pinMode(ledPin, OUTPUT);     
}

// section de mise en boucle
void loop() {
  digitalWrite(13, HIGH);   // allume la DEL
  delay(1000);              // attend une seconde
  digitalWrite(13, LOW);    // éteint la DEL
  delay(1000);              // attend une seconde
}

variantes au blink led

  • allumer et éteindre une suite de leds dans deux directions (sketch et commentaire)
  • allumer de deux séries de leds avec l'aide d'un circuit imprimé (shift register) par le déclenchement de registres en cascade asynchrone (sketch et montage)
  • leds en matrices pour créer des formes
  • affichage de chiffres sur 7 segments
  • utilisation de leds RVB ([ sketch])

switch (interrupteur): entrée numérique et/ou analogique

Deux comportements en réponse à l'interrupteur:

  1. la LED s'allume et s'éteint aussi longtemps que poussoir est pressé (simpleButton.ino);
  2. la LED s'allume au bouton pressé et reste allumée, jusqu'à la prochaine sollicitation qui l'éteint (ledOn_withButton03.ino).
  3. même comportement que ci-dessus, mais avec une intensité variable de la led en maintenant le bouton enfoncé (buttonOnFadingLed.ino).

les effets physiques (moteurs et servo-moteurs)

  • contrôle de moteurs: ordres angulaires à un servo au travers du moniteur seriel (sketch inputSerialServo.ino);
  • moteurs à courant continu à paliers, etc.;

Servuino-small.png

  • et les ouvertures sur la robotique

capteur/entrée analogique

port sériel et le suivi des entrées analogiques ou numériques

sortie audio/analogique (transduction piézoélectrique et/ou haut-parleur)

  • utilisation de hauteurs de note à l'aide de l'oscillateur de l'arduino (synhèse élémentaire)
  • création de sonorités par synthèse granulaire (auduino)

le "lilypad/arduino": les tissus électroniques et interactifs

  • la gamme des lilypads;
  • une application à des tissages de soie d'Antoinette Thoma (prototypes originaux présentés au stage des Activités culturelles/infolipo de l'Université de Genève en avril 2012).

articulation à d'autres systèmes de programmation et bibliothèques logicielles

protocoles et systèmes logiciels

  • Processing
  • MaxMspJitter & Pure Data
  • Midi et OSC

communications avec les interfaces de jeu et leurs capteurs spécifiques (wii, kinect, iPhone, etc.)

la communication sans fil

arduino et ethernet

Documentation & contexte global

bits and atoms: une convergence

  • le site référence au MIT

les fab labs et le DIY

langage et interface

sites, blogs, communautés open source et hack

cursus universitaires et écoles d'art

  1. l'enseignement de physical computing Tisch School de la NYU;
  2. les tutoriels sur les microcontrôleurs.

autoformation/initiation/base de données

  • instant soup - ivrea (learning by doing) par un des créateurs de la platine;
  • le LilyPad Arduino, un cours en ligne complet sur cette version florale et embarquée de l'arduino (avec transducteurs et capteurs) s'intégrant dans tissus, vêtements, etc;
  • joliment illustré, un petit ouvrage/support de cours sur l'intégration arduino/e-textiles: Open SoftWear, Tony Olsson et al. une équipe de l'Université de Malmö. En version pdf béta. Version imprimée annoncée;
  • http://www.freeduino.org: base de données mondiale sur l'arduino/freeduino. Classé par sujets. Indispensable;
  • le bidr blog - source régulièrement mise à jour de recettes et résolution de problèmes autour de l'arduino. Clair bien illustré: tutoriels, revue de nouveautés, idées...

sur les wearables

  • une page de liens – e-textiles/wearables;
  • le site de TischITP: artistes, matériaux; technologie; guides DIY; liens, manifestations;
  • les ??how to" des instrctables sur les e-textiles;
  • fashioning technology: des projets expliqués pas à pas, une source de recettes et réalisations de technologies interactives/sensitives, le site du livre du même nom et son blog fashionongtech.com
  • Pulsea le site de Hannah Perner-Wilson: "... explor[ing] the electrical properties of materials, combining this knowledge with traditional and contemporary crafts to develop new techniques for building electronics that emphasize materiality and process"
  • un tissu mélangeant les qualités de capteur et d'émetteur par une équipe d'artisans numériques de Berlin: FELD;

et à consulter également

  • John Igoe (Making Things Talk): son site personnel et son blog;
  • jason cook et le /temp/lab;
  • le travail de thèse de Alicia Gibbs, New Media Art Design and the Arduino - à télécharger depuis son site;
  • les réalisations de ladyada;
  • le "high-low tech group" de Leah Buechley au MIT/Media Lab (Boston) - la référence sur les applications poétiques et esthétiques se ré-appropriant les technologies électroniques;
  • la programmation en "drag and drop" de l'arduino avec scratch grâce à une API appelée modkit pour la circonstance.

sites commerciaux

ressources bibliographiques

en lien direct avec le stage

les indispensables:

sur les arts numériques et électroniques, le physical computing et les nouveaux espaces du DIY/hacking

Les projets de l'atelier 2011/12

autour du lilypad arduino: e-tissages

avec l'atelier de tissage d'Antoinette Thoma

  • conception des tissages avec électronique intégrée ou appliquée;
  • séquences lumineuses et/ou sonore déclenchées avec un inerrupteur;
  • ou actionnées par capteurs - accéléromètre, "pulse sensor", ondes radio (xbee).

installation lumineuse et sonore: leds, e-wires et réseaux et fils antennes/capteurs sonores

avec Olivia Adatte, plasticienne

  • interface arduino avec les e-wires
  • séquences et multiplexage de leds
  • intégration de l'électromagnétisme et du sonore dans l'installation

prototype de robot autonome pour le transport et le pesage

par Alexandre Chan Azofeifa, hesge/hepia

  • étude du contrôle de différents moteurs servos (à rotation continue et à rotation à 180 degrés)

project insectuino

(avec la collaboration de A. Chan A.)

site du projet

  • mise au point du mouvement par deux servo-moteurs;
  • intégration d'un capteur à ultrasons PING))) pour l'évitement d'obstacles;
  • définitions d'un:
    • émetteur piézoélectrique pour l'émission de messages sonores
    • système de traçage au sol pour une écriture éphémère - voir water graffiti et le tricycle calligraphieur ou encore une écriture avec du graphite.
    • habillage de l'insectuino: tecniques mixtes
  • mise en place d'une installation dans le cadre d'une soirée "composé/improviser" de l'association Makaronic.ch à Genève (Suisse)

sources pour le microcontrôleur et le robot: Karvinen & Karvinen; Arduino Bots & Gadgets


++ Pierre Dunand Filliol 7.4.13 à 21:40 (UTC)