« Arduino » : différence entre les versions

De Wikilipo
Aller à la navigation Aller à la recherche
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 55 : Ligne 55 :
* et, bien sûr, l'utilisation des capteurs et actions des smart phones sous iOs ou Android.
* 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 ==
==programmation: premiers pas dans le langage ==


d'après un plan proposé par [http://www.prossel.com Pierre Rossel]
par [http://www.prossel.com Pierre Rossel]- le [https://dl.dropboxusercontent.com/u/5292266/Infolipo/Bases%20Arduino.ppt.pdf  cours].
 
<pre>
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)
 
</pre>


==programmation: hello arduino ==
==programmation: hello arduino ==
Ligne 142 : Ligne 92 :
==== variantes au ''blink led''====
==== variantes au ''blink led''====


* allumer et éteindre une suite de leds dans deux directions (sketch [[_8_leds.ino]])
* allumer et éteindre une suite de leds dans deux directions ([http://www.oomlout.com/oom.php/products/ardx/circ-02 sketch et commentaire])
* allumer de deux séries de leds avec l'aide d'un circuit imprimé (shift register) de d'allumage de registres en cascade asynchrone
* 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 ([http://www.oomlout.com/oom.php/products/ardx/circ-05  sketch] et [http://ardx.org/src/circ/CIRC05-sheet-OOML.pdf montage])
* leds en matrices pour créer des formes
* leds en matrices pour créer des formes
* affichage de chiffres sur 7 segments
* affichage de chiffres sur 7 segments
* utilisation de led RVB
* utilisation de leds RVB ([  sketch])


=== switch (interrupteur): entrée numérique et/ou analogique ===
=== switch (interrupteur): entrée numérique et/ou analogique ===
Ligne 201 : Ligne 151 :
== ''bits and atoms'': une convergence ==
== ''bits and atoms'': une convergence ==


* le site référence au [http://cba.mit.edu/projects/index.html MIT]
* le site de référence au [http://cba.mit.edu/projects/index.html MIT]


== les ''fab labs'' et le ''DIY''==
== les ''fab labs'' et le ''DIY''==
Ligne 208 : Ligne 158 :
* l'[http://fr.wikipedia.org/wiki/Fablab article du wikipedia] sur les ''fab labs'' et une [http://www.youtube.com/watch?v=aPbJmYCSCgA conférence séminale] de Niel Gershenfeld;
* l'[http://fr.wikipedia.org/wiki/Fablab article du wikipedia] sur les ''fab labs'' et une [http://www.youtube.com/watch?v=aPbJmYCSCgA conférence séminale] de Niel Gershenfeld;


* les ''fab labs'' ici et là: http://fab.cba.mit.edu/about/labs/ et [http://fablab.ch/about/ en Suisse].
* les ''fab labs'' [http://fab.cba.mit.edu/about/labs/ ici et là], [http://fablab.ch/about/ en Suisse], [http://www.posttenebraslab.ch/wiki/ à Genève].


==langage et interface==
==langage et interface==
Ligne 319 : Ligne 269 :




++ [[Utilisateur:Pdunandf|Pierre Dunand Filliol]] 1.3.13 à 17:40 (UTC)
++ [[Utilisateur:Pdunandf|Pierre Dunand Filliol]] 9.4.13 à 23:56 (UTC)

Dernière version du 16 avril 2013 à 16:30

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: premiers pas dans le langage

par Pierre Rossel- le cours.

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 de 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 9.4.13 à 23:56 (UTC)