Arduino

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
La mise en forme de cet article est à améliorer (mars 2015).

La mise en forme du texte ne suit pas les recommandations de Wikipédia : il faut le « wikifier ». Découvrez comment faire.

La typographie, les liens internes ou externes, les conventions de style, la présentation des sourcesetc. sont autant de points qui peuvent ne pas convenir voire être absents. Les raisons de la pose de ce bandeau sont peut-être précisées sur la page de discussion. Si seules certaines sections de l'article sont à wikifier, pensez à les indiquer en utilisant {{section à wikifier}}.

Arduino et Genuino
Logo

Image illustrative de l'article Arduino

Développeur Arduino Software
Dernière version 1.6.9 ()[1]Voir et modifier les données sur Wikidata
Environnements Multi-plateforme
Type Ordinateur à carte uniqueVoir et modifier les données sur Wikidata
Licence GNU LGPL ou GNU GPL
Site web arduino.ccVoir et modifier les données sur Wikidata

Arduino, et son récent synonyme Genuino[2], sont des cartes matériellement libres sur lesquelles se trouve un microcontrôleur (d'architecture Atmel AVR comme par exemple l'Atmega328p). Les schémas de ces cartes sont publiés en licence libre, cependant, certains composants, 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, de l'informatique embarquéeetc.

C'est une plate-forme 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 environnement de développement de Processing, lui-même inspiré de l'environnement de programmation Wiring[3] (l'un pensé pour la production d'applications impliquant des graphismes et l'autre pour pilotage de salles de spectacles).

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 ou construire une carte Arduino eux-mêmes.

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

Origine du nom[modifier | modifier le code]

L'Arduino emprunte son nom au « Bar di Re Arduino », un pub de la ville d'Ivrée, située en Italie du Nord[4]. Le nom propre Arduino est un cognat de Ardennes.

Description[modifier | modifier le code]

Matériel[modifier | modifier le code]

Un module Arduino est généralement construit autour d'un microcontrôleur Atmel AVR (ATmega328, ATmega32u4 ou ATmega2560 pour les versions récentes, ATmega168, ATmega1280 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 avec une connexion série TTL, mais les connexions permettant cette programmation diffèrent selon les modèles. Les premiers Arduino possédaient un port série RS-232, puis l'USB est apparu sur les modèles Diecimila, tandis que certains modules destinés à une utilisation portable comme le Lillypad ou le Pro-mini 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), cela permettait aussi de réduire leur coût, le convertisseur USB-Série TTL (un FTDI232RL de FTDI) coûtant assez cher.

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 femelles 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.

D'autres cartes comme l'Arduino Nano ou le Pro micro utilisent des connecteurs mâles, permettant de les disposer sur une platine d'expérimentation.

Logiciel[modifier | modifier le code]

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 commande[5].

Le langage de programmation utilisé est le C++, compilé avec avr-g++ [6], 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[modifier | modifier le code]

Matériel officiel[modifier | modifier le code]

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, cette carte se remarque par son vernis violet.
  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 328[7].
  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 automatique[8]. La nouvelle version[9] est équipée 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)[10].
  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érie[11].
  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 ATmega8U2[12].
  14. Arduino Ethernet est une carte Arduino UNO intégrant un chip Wiznet W5100 pour rajouter la connectivité Ethernet intégré[13].
  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.
Arduino Micro-contrôleur Flash
ko
EEPROM
ko
SRAM
ko
Broches
d'E/S numériques
...avec
PWM
Broches
d'entrée analogique
Type d'interface USB Dimensions
pouces
Dimensions
mm
Diecimila ATmega168 16 0,5 1 14 6 6 FTDI 2,7" x 2,1" 68,6 mm x 53,3 mm
Duemilanove ATmega168/328P 16/32 0,5/1 1/2 14 6 6 FTDI 2,7" x 2,1" 68,6 mm x 53,3 mm
Uno ATmega328P 32 1 2 14 6 6 ATmega16U2 2,7" x 2,1" 68,6 mm x 53,3 mm
Leonardo ATmega32U4 32 1 2,5 20 7 12 ATmega32U4 2,7" x 2,1" 68,6 mm x 53,3 mm
Mega ATmega1280 128 4 8 54 15 16 FTDI 4" x 2,1" 101,6 mm x 53,3 mm
Mega2560 ATmega2560 256 4 8 54 15 16 ATmega8U2 4" x 2,1" 101,6 mm x 53,3 mm
Due Atmel SAM3X8E 512 0 96 54 12 12 SAM3X8E (USB Host), ATmega16u2 (programmation) 4" x 2,1" 101,6 mm x 53,3 mm
Fio ATmega328P 32 1 2 14 6 8 Aucune 1,6" x 1,1" 40,6 mm x 27,9 mm
Nano ATmega168 ou ATmega328 16/32 0,5/1 1/2 14 6 8 FTDI 1,70" x 0,73" 43 mm x 18 mm
LilyPad ATmega168V ou ATmega328V 16 0,5 1 14 6 6 Aucune 2" ø 50 mm ø
Yun[14] ATmega32u4 32 1 2,5 20 7 12 73 mm x 53 mm
Esplora ATmega32U4 32 1 2,5 N/A N/A N/A ATmega32U4 6,5" x 2,4" 165,1 mm x 60,96 mm

Explication du fonctionnement[modifier | modifier le code]

Schéma d’un Arduino.

Les différentes versions des Arduino[15] 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()[16]
  • B : ce sont les broches dites analogiques, valeur entre 0 V et 5 V
    • fonctions analogWrite() et analogRead()[16]
  • 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[modifier | modifier le code]

La forme de cet article ou de cette section n'est pas encyclopédique et ressemble trop à un catalogue de vente, un dépliant publicitaire ou une offre commerciale (16 avril 2016).

Modifiez l'article pour aider à le transformer en article neutre et encyclopédique ou discutez-en.

Plusieurs cartes compatibles Arduino ont été produites par d'autres fabricants :

  • Les kits Freeduino Bare Bones Board et Really Bare Bones Board compatibles Arduino, fabriqués et vendus par Modern Device Company, ainsi que les versions Fundamental Logic et le MaxSerial Freeduino.
  • Le Freeduino Through-Hole, compatible Arduino destiné à une fabrication personnelle ; fabriqué et vendu par NKC Electronics sous forme de kit à monter.
  • Le Boarduino, similaire au Diecimila, avec des connecteurs adaptés à une utilisation sur plaque de test.
  • Le Romeo, variation de l'Arduino Uno dédiée à la robotique, fournit des interfaces de puissance pour contrôler des moteurs. Le Romeo est édité par DFRobot.
  • Le mini iDuino pour une utilisation sur plaque de test.
  • L'Educaduino conçue par la société française Eurosmart en 2013.

Plusieurs logiciels ont été développés pour faciliter la programmation des cartes Arduino. De formes diverses, ils permettent tous une programmation plus aisée des cartes Arduino. On retrouve :

  • Les solutions graphiques Ardublock et MiniBloq qui permettent une programmation par assemblage de blocs fonctionnels. Distribuées sous forme de plug-ins ajoutant leurs interfaces graphiques à celle du logiciel 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.

Il existe aussi des cartes Arduino ou compatible modifiées pour un usage spécifique :

  • Cartes de contrôle pour imprimantes 3D RepRap[17] basées sur une carte Arduino complétée par des drivers de moteur pas à pas, des acquisitions de température et des sorties de puissance.
  • Systèmes de pilote automatique pour drones comme par exemple les systèmes ArduPilot, APM:Plane et APM:Copter, ou les cartes FlyDuino[18] permettant d'effectuer la stabilisation ainsi que la programmation de mission, transformant un modèle réduit en drone.
  • Puces Wi-Fi tierces comme l'ESP8266 compatibles avec l'environnement Arduino[19].

Certain logiciels musicaux proposent grâce à leur module série une intégration de l'Arduino dans le processus de création musicale.

Matériel libre et logiciel libre[modifier | modifier le code]

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.

De nombreuses informations sont disponibles au sujet des circuits intégrés présents sur les cartes arduino (micro-contrôleurs Atmega par exemple) même si ils restent très fermés du fait des fabricants.

Restrictions du nom Arduino et apparition de clones[modifier | modifier le code]

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 collaboration[20].

En réponse à cette restriction, des utilisateurs ont développé une cinquantaine de modules équivalents, nommés Freeduino, Sanguino, Seeduino, Uduino, Diduino, etc[21]. Ces modules, totalement compatibles avec le logiciel Arduino, et parfois avec les blasons[22] 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"[23].

Certains clones ont aussi contenu des convertisseurs USB-Série (FTDI-232) contrefaits qui ne fonctionnaient pas avec le pilote original utilisé par les systèmes Windows car le constructeur FTDI avait intégré un système de détection et de blocage de ces puces, les utilisateurs de ces cartes ont ainsi eu à installer un pilote non officiel compatible avec leur convertisseur USB-Série, ces clones semblent disparaître du marché, la puce contrefaite ayant tendance à être remplacée par une autre moins chère: la CH-340G. De nombreuses informations sont disponibles sur cette affaire.

On reconnaît en général les clones, par leur prix bas voire très bas, par l’absence sur le circuit du nom Arduino voire de nom tout court et par la couleur du vernis du circuit, ils ne sont pas forcément bas de gamme et peuvent permettre à certains d'avoir accès au développement de projets utilisant des cartes Arduino sans avoir à investir de grosses sommes en achetant des cartes officielles, il faut cependant noter que les développeurs du projet ne bénéficient pas des bénéfices de ces ventes malgré leur travail.

En réaction au problème de la marque Arduino, l'équipe responsable a créé la marque Genuino destiné au marché extérieur aux États-unis[24].

L'équipe de développement[modifier | modifier le code]

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

Notes et références[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Arduino » (voir la liste des auteurs).

  1. https://github.com/arduino/Arduino/releases/tag/1.6.9
  2. La marque (en) Genuino sur le site officiel.
  3. Wiring, un environnement de programmation et de prototypage de cartes électroniques
  4. http://spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino
  5. http://www.francoistessier.info/blog/2011/07/06/programmation-arduino-en-ligne-de-commande/
  6. http://arduino.cc/fr/Main/DebuterFAQ
  7. À l'origine, Arduino BT était basé sur ATMega 168. Cette carte ne semble plus supportée officiellement (septembre 2013) (en) « Arduino BT » (consulté le 4 octobre 2013).
  8. Duemilanove
  9. « https://www.arduino.cc/en/Main/ArduinoBoardDiecimila » (ArchiveWikiwixArchive.isGoogleQue faire ?), consulté le 20140111
  10. (en) « ArduinoBoardMega », Arduino (consulté le 26 mars 2009)
  11. (en) « Arduino Uno », arduino.cc (consulté le 2 octobre 2010)
  12. Mega2560
  13. Arduino Ethernet
  14. « Arduino Yun »
  15. (en) « Ardino-Uno schematic », sur arduino.cc
  16. a et b (en) « Reference-Code », sur arduino.cc
  17. RepRap Sanguinololu : http://reprap.org/wiki/Sanguinololu
  18. FlyDuino Mega User Manual : http://flyduino.net/documents/Flydumega_manual.pdf
  19. « Blog d'Atrakeur | Comment charger son propre firmware sur l'ESP8266 à travers un arduino. », sur www.atrakeur.com (consulté le 11 janvier 2016)
  20. Arduino - Policy
  21. Freeduino
  22. Les blasons appelés souvent « shields » dans le commerce sont des modules contenant d'autres fonctions ou bien des interfaces.
  23. Détection des contrefaçons
  24. (en)Massmo Banzi se bat pour Arduino
  25. Site officiel de Tom Igoe

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Bibliographie[modifier | modifier le code]

  • (fr) Le grand livre d'Arduino, Patrick Chantereau et Erik Bartmann, éd. Eyrolles, 2014 (ISBN 978-2212137019)
  • (fr) Projets créatifs avec Arduino, Bruno Affagard, Jean-Michel Géridan, Jean-Noël Lafargue, éd. Pearson, 2014 (ISBN 978-2744026171)
  • (fr) Arduino - Réaliser des objets numériques innovants et créatifs, floss manuals, 2013 (ISBN 979-1090791497)
  • (en) C Programming for Arduino, Julien Bayle, ed. Packt Publishing Limited, 2013 (ISBN 978-1849517591)
  • (en) Arduino For Dummies, John Nussey, 2013 (ISBN 978-1118446379)
    (fr) Arduino pour les nuls, John Nussey, 2014 (ISBN 978-2-7540-6429-3)
  • (en) Programming Arduino Next Steps: Going Further with Sketches, Simon Monk, 2013 (ISBN 978-0071830256)
  • (en) Exploring Arduino: Tools and Techniques for Engineering Wizardry, Jeremy Blum, 2013 (ISBN 978-1118549360)
  • (en) Arduino Workshop: A Hands-On Introduction with 65 Projects, John Boxall, 2013 (ISBN 978-1593274481)
  • (fr) Arduino : Applications avancées, Christian Tavernier, 2012 (ISBN 978-2100582051)
  • (en) Beginning C for Arduino: Learn C Programming for the Arduino and Compatible Microcontrollers, Jack Purdum, 2012 (ISBN 978-1430247760)
  • (fr) Arduino - Maîtrisez sa programmation et ses cartes d'interface (shields), Christian Tavernier, éd. Dunod, 2011 (ISBN 978-2100559275)
  • (en) Programming Arduino: Getting Started With Sketches, Simon Monk, 2011 (ISBN 978-0071784221)
    (fr) Arduino, les bases de la programmation, Simon Monk, éd. Pearson, 2013 (ISBN 978-2744025785)
  • (en) Make: Electronics (Learning by Discovery), Charles Platt, 2009 (ISBN 978-0596153748)
  • (en) Getting Started with Arduino, Massimo Banzi, éd. Make, 2008 (ISBN 0596155514)
    (fr) Démarrer avec Arduino, Massimo Banzi, éd. Dunod, 2011 (ISBN 978-2100562916)

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
External.svg
Trop de liens externes (indiquez la date de pose grâce au paramètre date).
Les liens externes doivent être des sites de référence dans le domaine du sujet. Il est souhaitable — si cela présente un intérêt — de citer ces liens comme source et de les enlever du corps de l'article ou de la section « Liens externes ».