mercredi 9 décembre 2015

L'Arduino

Arduino est un circuit imprimé en matériel libre sur lequel se trouve un microcontrôleur. Les plans de la carte elle-même sont publiés en licence libre, cependant, certains composants de la carte, comme le microcontrôleur par exemple, ne sont pas en licence libre. Le microcontrôleur peut être programmé pour analyser et produire des signaux électriques, de manière à effectuer des tâches très diverses comme la domotique (le contrôle des appareils domestiques - éclairage, chauffage…), le pilotage d'un robot, etc. C'est une plateforme basée sur une interface entrée/sortie simple. Il était destiné à l'origine principalement mais pas exclusivement à la programmation multimédia interactive en vue de spectacle ou d'animations artistiques. C'est une partie de l'explication de la descendance de son interface de programmation de Processing, lui-même inspiré de l'environnement de programmation Wiring1.

Arduino peut être utilisé pour construire des objets interactifs indépendants (prototypage rapide), ou bien peut être connecté à un ordinateur pour communiquer avec ses logiciels (ex. : Macromedia Flash, Processing, Max/MSP, Usine Hollyhock, Pure Data, SuperCollider). En 2011, les versions vendues sont préassemblées. Des informations sont fournies pour ceux qui souhaitent assembler l'Arduino eux-mêmes.

Le projet Arduino a reçu un titre honorifique à l'Ars Electronica 2006, dans la catégorie Digital Communities.

Matériel

Un module Arduino est généralement construit autour d'un microcontrôleur Atmel AVR (ATmega328 ou ATmega2560 pour les versions récentes, ATmega168 ou ATmega8 pour les plus anciennes), et de composants complémentaires qui facilitent la programmation et l'interfaçage avec d'autres circuits. Chaque module possède au moins un régulateur linéaire 5 V et un oscillateur à quartz 16 MHz (ou un résonateur céramique dans certains modèles).
Le microcontrôleur est préprogrammé avec un bootloader de façon à ce qu'un programmateur dédié ne soit pas nécessaire.
Les modules sont programmés au travers d'une connexion série RS-232, mais les connexions permettant cette programmation diffèrent selon les modèles. Les premiers Arduino possédaient un port série, puis l'USB est apparu sur les modèles Diecimila, tandis que certains modules destinés à une utilisation portable se sont affranchis de l'interface de programmation, relocalisée sur un module USB-série dédié (sous forme de carte ou de câble).
L'Arduino utilise la plupart des entrées/sorties du microcontrôleur pour l'interfaçage avec les autres circuits. Le modèle Diecimila par exemple, possède 14 entrées/sorties numériques, dont 6 peuvent produire des signaux PWM, et 6 entrées analogiques. Les connexions sont établies au travers de connecteurs femelle HE14 situés sur le dessus de la carte, les modules d'extension venant s'empiler sur l'Arduino. Plusieurs sortes d'extensions sont disponibles dans le commerce.
Certains modules non officiels, compatibles avec la technologie Arduino, utilisent des connecteurs mâle pour une utilisation aisée avec des plaques de test.

Logiciel

Le logiciel de programmation des modules Arduino est une application Java, libre et multi-plateforme, servant d'éditeur de code et de compilateur, et qui peut transférer le firmware et le programme au travers de la liaison série (RS-232, Bluetooth ou USB selon le module). Il est également possible de se passer de l'interface Arduino, et de compiler et uploader les programmes via l'interface en ligne de commande3.
Le langage de programmation utilisé est le C++, compilé avec avr-g++ 4, et lié à la bibliothèque de développement Arduino, permettant l'utilisation de la carte et de ses entrées/sorties. La mise en place de ce langage standard rend aisé le développement de programmes sur les plates-formes Arduino, à toute personne maîtrisant le C ou le C++.

Plateforme

Matériel officiel

Un Arduino Diecimila.
Les modules d'origine des différentes versions de l'Arduino sont fabriqués par la société italienne Smart Projects. Quelques-unes des cartes de marque Arduino ont été conçues par la société américaine SparkFun Electronics.
Dix-sept versions des cartes de type Arduino ont été produites et vendues dans le commerce à ce jour dans l'ordre chronologique ci-dessous :
  1. Serial Arduino programmé avec une connexion série par connecteur DB9 et utilisant un ATmega8.
  2. Arduino Extreme, programmable via une connexion USB et utilisant un ATmega8.
  3. Arduino Mini, une version miniature de l'Arduino utilisant un ATmega168 de type CMS.
  4. Arduino Nano, une version encore plus petite de l'Arduino alimenté par USB et utilisant un ATmega168 (avant la version 3) ou ATmega328 (à partir de la version 3.0) de type CMS.
  5. LilyPad Arduino, une conception de type minimaliste pour permettre une application portable utilisant un ATmega168 de type CMS.
  6. Arduino NG, programmable via une connexion USB et utilisant un ATmega8.
  7. Arduino NG plus, programmable via une connexion USB et utilisant un ATmega168.
  8. Arduino Bluetooth(BT), programmable via une connexion Bluetooth et utilisant un ATmega 3285.
  9. Arduino Diecimila, possède une interface USB et utilise un ATmega168 dans un boitier format DIL28. (16 ko flash, 1 ko SRAM, 0,5 ko EEPROM)
  10. Arduino Duemilanove (2009) utilise un Atmega168 et est alimenté en électricité par le connecteur USB ou une alimentation externe avec commutation automatique6. La nouvelle version7 est équipé d'un ATmega328 (32 ko de flash, 2 ko de SRAM, et 1 ko d'EEPROM).
  11. Arduino Mega est équipé d'un ATmega1280 de type CMS pour avoir des Entrées/Sorties supplémentaires et de la mémoire (128 ko flash, 8 ko SRAM, 4 ko EEPROM)8.
  12. Arduino Uno utilise un ATmega328 comme les derniers modèles de Duemilanove, mais alors que le Duemilanove utilisait une puce FTDI pour la programmation via un connecteur USB, le Uno utilise une puce ATmega8U2 programmé comme un convertisseur série9.
  13. Arduino Mega2560 est équipé d'un ATmega2560 de type CMS, augmentant la mémoire totale disponible à 256 ko. Il est équipé aussi de la nouvelle puce USB ATmega8U210.
  14. Arduino Ethernet est une carte Arduino UNO intégrant un chip Wiznet W5100 pour rajouter la connectivité Ethernet intégré11.
  15. Arduino Leonardo est une version bas coût de l'Arduino UNO à base d'un ATmega32U4.
  16. Arduino DUE est une évolution de l'Arduino Mega2560 avec un micro-contrôleur 32 bits Atmel SAM3X (ARM 32 bits Cortex-M3).
  17. Arduino Esplora est une carte dérivée de l'Arduino Leonardo. Elle a la forme d'une manette de jeu. Contrairement aux autres Arduino, c'est une carte « tout-en-un » qui comporte de nombreux capteurs (température, accélération, lumière, microphone, potentiomètre…) ainsi que 4 boutons poussoirs, un potentiomètre et un joystick analogique.
















































































































































Schéma d’un Arduino.
Les différentes versions des Arduino13 fonctionnent sous le même principe général :
  • A : ce sont les broches dites numériques (0 ou 1) ou « tout ou rien » ; elles offrent en sortie du 5 V et acceptent en entrée du 5 V sur le même principe.
    • fonctions digitalWrite() et digitalRead()14
  • B : ce sont les broches dites analogiques, valeur entre 0 V et 5 V
    • fonctions analogWrite() et analogRead()14
  • C : les différentes broches d'alimentation :
    • Rouge : sortie 5 V (+)
    • Orange : sortie 3,3 V (+)
    • Noire : les masses (−)
    • Jaune : entrée reliée à l'alimentation (7 V-12 V)
Il y a des variations entre les différentes cartes (par exemple : UNO, la patte 13 est équipée d'une résistance)

Matériels et logiciels dérivés

Plusieurs logiciels et matériels compatibles Arduino (bien que non officiels) ont été produits commercialement par d'autres fabricants :
Plusieurs logiciels compatibles Arduino (bien que non officiels) ont été développés pour faciliter la programmation des cartes Arduino. Bien que très différents les uns des autres, ils permettent une programmation sans utilisation du langage Arduino. On retrouve :
  • La solution graphique Ardublock qui permet une programmation par assemblage de blocs fonctionnels. C’est un plug-in qui ajoute une interface graphique à celle d’Arduino.
  • La solution graphique MiniBloq qui permet elle aussi une programmation par assemblage de blocs fonctionnels. C’est un plug-in qui ajoute une interface graphique à celle d’Arduino.
  • Le pseudo-langage EDU qui permet une programmation avec un ensemble de mots clés simplifiés. C’est une bibliothèque qui permet l'écriture d’un programme en français directement dans l'interface Arduino.
  • Carte de contrôle pour imprimantes 3D RepRap comme les Generation7 Electronics 15 ou les Sanguinololu16 base sur une carte Arduino complétée par des drivers de moteur pas à pas des acquisitions de température et des sorties de puissance.
  • Des systèmes de pilote automatique pour Drones Comme par exemple les systèmes ArduPilot17 APM:Plane & APM:Copter ou les cartes FlyDuino18 permettent d'effectuer la stabilisation ainsi que la programmation de mission, permettant de transformer un modèle réduit en Drone.
Certain logiciels musicaux proposent grâce à leur module série une intégration de l'Arduino dans le processus de création musical.
  • Des exemples sur [=arduino cette page] avec le logiciel Usine hollyhock

Matériel libre et logiciel libre

Le design matériel de l'Arduino est distribué sous licence Creative Commons Attribution Share-Alike 2.5 et est disponible sur le site d'Arduino. Les schémas ainsi que les typons de circuits sont également disponibles. Le code source de l'environnement de programmation et les bibliothèques embarquées sont disponibles sous licence LGPL.

Restrictions du nom Arduino

Bien que le design matériel et logiciel soit sous licence copyleft, les développeurs ont exprimé le désir que le nom Arduino et ses dérivés soient exclusivement réservés aux modules officiels, et qu'ils ne soient pas utilisés pour des projets non autorisés. La politique d'usage du nom Arduino insiste sur le fait que les projets officiels sont ouverts à la collaboration19.
En réponse à cette restriction, des utilisateurs ont développé une cinquantaine de modules équivalents, nommés Freeduino, Sanguino, Seeduino, Uduino, Diduino, etc20. Ces modules, totalement compatibles avec le logiciel Arduino, et parfois avec les blasons21 Arduino, sont généralement moins chers[réf. souhaitée] que les cartes Arduino originales. La plupart offrent également des fonctions additionnelles.
On trouve par ailleurs des contrefaçons, ornées de sérigraphies qui mentent sur l'identité du constructeur et sur le lieu de fabrication, et qui se reconnaissent notamment à leur prix nettement inférieur à celui des cartes "officielles"22.

L'équipe de développement

Le cœur de l'équipe des développeurs du projet Arduino est composé de Massimo Banzi, David Cuartielles, Tom Igoe23, Gianluca Martino, David Mellis et Nicholas Zambetti.

Aucun commentaire:

Enregistrer un commentaire