vignette|250px|Arduino - Exemple d'application permettant de faire clignoter une LED toutes les secondes.
Arduino est la marque d'une plateforme de prototypage open-source qui permet aux utilisateurs de créer des objets électroniques interactifs à partir de cartes électroniques matériellement libres sur lesquelles se trouve un microcontrôleur (d'architecture Atmel AVR comme l'Atmega328p, et d'architecture ARM comme le Cortex-M3 pour l'Arduino Due).
Les schémas de ces cartes électroniques sont publiés en licence libre. Cependant, certaines composantes, comme le microcontrôleur par exemple, ne le sont pas.
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 ), le pilotage d'un robot, de l'informatique embarquée
C'est une plateforme basée sur une interface entrée/sortie simple.
Arduino est un fork de .
, inspiré de , est un langage et un environnement de développement pour programmer des microcontrôleurs.
Processing, lui-même inspiré de Design By Numbers, est un langage et un environnement de développement destiné aux artistes.
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 ( Max/MSP, Usine Hollyhock, , ). 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 .
En , Qualcomm annonce avoir racheté Arduino et prépare un nouveau modèle : l’Arduino Uno Q, une carte axée sur l’IoT et l’IA embarquée (détection d’objets par vision, reconnaissance vocale, classification d’images, mots de réveil (wake words). L'UNO Q est présentée comme une plateforme "double cerveau" qui concilie contrôle temps réel et calcul haute performance (Edge computing). Elle embarque le microprocesseur Qualcomm Dragonwing QRB2210 (capable de faire tourner Linux Debian, de l'IA et de l'accélération GPU) ainsi qu'un microcontrôleur classique.
Par la même occasion Qualcomm présente son logiciel Arduino App Lab un nouvel environnement de développement, qui donnera accès à des modèles d’IA pré-entraînés.
Pour apaiser la communauté des makers, Qualcomm a promis de maintenir l'esprit open source d'Arduino et de continuer à supporter plusieurs fournisseurs de composants comme Intel, STMicroelectronics, Espressif ou tout autre fournisseur compatible avec son écosystème. Cependant, des modifications importantes des conditions d’utilisation, comme la cession des données, mais aussi l’abandon des droits des projets transmis à la plateforme et fin de l’open source pour ses produits, avec une interdiction explicite de procéder à de la rétro-ingénierie.
Origine du nom
L'Arduino emprunte son nom au (en français « bar du roi Arduin »), lieu de réunion des concepteurs de la carte, à Ivrée en Italie du Nord...
Description
Matériel
vignette|Kit de démarrage Arduino. Un module Arduino est généralement construit autour d'un microcontrôleur Atmel AVR (, 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 et un oscillateur à quartz (ou un résonateur céramique dans certains modèles).
Le microcontrôleur est préprogrammé avec un de façon 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 quatorze entrées/sorties numériques, dont six peuvent produire des signaux , et 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.
La société STMicroelectronics a également travaillé avec Arduino, sur des cartes compatibles. Les cartes STM32 Nucleo, basées sur les processeurs STM32, utilisant l'architecture ARM plutôt que l'architecture Harvard des Atmel AVR. Ces cartes comportent un processeur plus puissant, ARM Cortex-M , de M0+ à ou M0 à jusqu'au M4 à , comportant des instructions DSP. et un processeur graphique Chrom-ART de STMicroelectronics..
Logiciel Le logiciel de programmation des modules Arduino, dont l'interface, appelée Arduino IDE 2, est une application Electron, libre et multi-plateforme basée sur servant d'éditeur de code et de compilateur, et qui peut transférer le 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 téléverser les programmes via l'interface en ligne de commande..
Le langage de programmation utilisé est le C++, compilé avec avr-g++http://arduino.cc/fr/Main/DebuterFAQ ., et lié à la bibliothèque de développement Arduino, permettant d'utiliser la carte et 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 vignette|250px|Un Arduino Diecimila. Les modules d'origine des différentes versions de l'Arduino sont fabriqués par la société italienne . Quelques-unes des cartes de marque Arduino ont été conçues par la société américaine .
Dix-huit versions des cartes de type Arduino ont été produites et vendues dans le commerce dans l'ordre chronologique ci-dessous : programmé avec une connexion série par connecteur DB9 et utilisant un ATmega8. , programmable via une connexion USB et utilisant un ATmega8. Arduino Mini, une version miniature de l'Arduino utilisant un ATmega168 de type CMS. Arduino Nano, une version encore plus petite de l'Arduino alimenté par USB et utilisant un ATmega168 (avant la ) ou ATmega328 (à partir de la ) de type CMS. 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. Arduino NG, programmable via une connexion USB et utilisant un ATmega8. Arduino NG plus, programmable via une connexion USB et utilisant un ATmega168. Arduino Bluetooth(BT), programmable via une connexion Bluetooth et utilisant un À l'origine, Arduino BT était basé sur . Cette carte ne semble plus supportée officiellement () .. Arduino Diecimila, possède une interface USB et utilise un ATmega168 dans un boitier format DIL28. ( flash, SRAM, EEPROM) Arduino Duemilanove (2009) utilise un Atmega168 et est alimenté en électricité par le connecteur USB ou une alimentation externe avec commutation automatique Duemilanove.. La nouvelle version. est équipée d'un ATmega328 ( de flash, de SRAM, et d'EEPROM). Arduino Mega est équipé d'un ATmega1280 de type CMS pour avoir des Entrées/Sorties supplémentaires et de la mémoire ( flash, SRAM, EEPROM).. 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ée comme un convertisseur série.. Arduino Mega2560 est équipé d'un ATmega2560 de type CMS, augmentant la mémoire totale disponible à . Il est équipé aussi de la nouvelle puce USB ATmega8U2Mega2560.. Arduino Ethernet est une carte Arduino UNO intégrant un chip Wiznet W5100 pour rajouter la connectivité Ethernet intégréArduino Ethernet.. Arduino Leonardo est une version bas coût de l'Arduino UNO à base d'un ATmega32U4 et est reconnue par un ordinateur comme étant un périphérique équivalent à une souris ou un clavier. Il est donc idéal pour des projets de contrôleur personnalisé pour des jeux vidéos. Arduino DUE est une évolution de l'Arduino Mega2560 avec un micro-contrôleur Atmel SAM3X (ARM Cortex-M3). 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 quatre boutons poussoirs, un potentiomètre et un joystick analogique. Arduino MKR. est une famille de cartes au format réduit, destinée à l'IoT : la carte est déclinée sous plusieurs déclinaisons, disposant chacun d'une fonctionnalité de connectivité IoT différente : Sigfox, LoRa, Wi-Fi
Arduino Micro-contrôleur Flashko EEPROMko SRAMko Broches d'E/S numériques …avec Broches d'entrée analogiqueCourant (mA)
pour Vin=9V Type d'interface USB Dimensionspouces Dimensionsmm Diecimila ATmega168 16 0,5 1 14 6 6 FTDI 2,7″ × 2,1″ × Duemilanove ATmega168/328P 16/32 0,5/1 1/2 14 6 6 FTDI 2,7″ × 2,1″ × Uno ATmega328P 32 1 2 14 6 6 46 ATmega16U2 2,7″ × 2,1″ × Leonardo ATmega32U4 32 1 2,5 20 7 12 42 ATmega32U4 2,7″ × 2,1″ × Mega ATmega1280 128 4 8 54 15 16 FTDI 4″ × 2,1″ × Mega2560 ATmega2560 256 4 8 54 15 16 58 ATmega8U2 4″ × 2,1″ × Due Atmel SAM3X8E 512 0 96 54 12 12 SAM3X8E (USB Host), ATmega16u2 (programmation) 4″ × 2,1″ × Fio ATmega328P 32 1 2 14 6 8 Aucune 1,6″ × 1,1″ × Nano ATmega168 ou ATmega328 16/32 0,5/1 1/2 14 6 8 24 FTDI 1,70″ × 0,73″ × LilyPad ATmega168V ou ATmega328V 16 0,5 1 14 6 6 Aucune 2″ ø øYun. ATmega32u4 32 1 2,5 20 7 12 × Esplora ATmega32U4 32 1 2,5 N/A N/A N/A ATmega32U4 6,5″ × 2,4″ × 101 Intel Curie 196 N/A 24 14 4 6 2,7″ × 2,1″ × micro ATmega32U4 32 1 2,5 20 7 12 38 1,8″ × 0,7″ × zero ATSAMD21G18, 32-Bit ARM Cortex M0+ 256 N/A 32 20 18 6 2,6″ × 1,2″ × MKR Zero SAMD21 Cortex-M0+ low power ARM MCU 256 N/A 32 22 12 7 ×
Explication du fonctionnement vignette|Schéma d’une carte Arduino.|alt=Schéma d’un Arduino.|353x353px Les différentes versions des Arduino. fonctionnent sous le même principe général : A : ce sont les broches dites numériques 1 ou 0 (HIGH ou LOW en anglais) et (tout ou rien en français) ; elles offrent en sortie du et acceptent en entrée du sur le même principe. fonctionsdigitalWrite() et digitalRead() et pour les ports analogWrite().. B : ce sont les broches dites analogiques, valeur entre et fonctionanalogRead() C : les différentes broches d'alimentation : Rouge : sortie (+) Orange : sortie (+) Noire : les masses (−) Jaune : entrée reliée à l'alimentation (-)
Il y a des variations entre les différentes cartes (par exemple : UNO, la est équipée d'une résistance)
D : Tension de référence, applicable sur une photorésistance.
Matériels et logiciels dérivés Plusieurs cartes compatibles Arduino ont été produites par d'autres fabricants.
Plusieurs logiciels ont été développés pour faciliter la programmation des cartes Arduino. On retrouve entre autres les solutions graphiques Ardublock, BitBloq et MiniBloq, ainsi que le pseudo-langage EDU qui permet d'utiliser des mots-clés simplifiés.