DesignSpark Electrical Logolinkedin
Ask a Question

Les développements de l’IoT industriel s'accélèrent avec la plateforme Arduino Linux

Saluée par la profession pour avoir établi le mouvement des “makers” et générer un regain d’intérêt pour l’électronique, la communauté Arduino a considérablement évolué depuis que la première carte a été mise en vente il y a un peu plus de dix ans. Visant au départ les amateurs et l'éducation, les cartes de la famille Arduino ont suscitées rapidement l’intéresser les ingénieurs. En effet, ces cartes bon marché leur permettent de valider la conception d'un projet et de fabriquer rapidement un prototype. Alors que la première génération de cartes incorporait seulement un microcontrôleur AVR d’Atmel, les dernières générations d’Arduino, possèdent également un contrôleur sans fil basé sur Linux, avec notamment l’Arduino Industrial 101, voir figure 1.

Figure 1 – Arduino Industrial 101 (source www.arduino.org)

La simplicité avec laquelle l’Arduino réalise une connectivité avec le monde réel et la puissance de calcul du microprocesseur ont captés l’attention des développeurs d'applications embarquée pour l'industrie et l'IoT. Généralement limités par leur budget, l’encombrement et la nécessité d’une connectivité sans fil, les développeurs doivent parfois faire face à des contraintes de temps et d’argent en essayant de créer leur propre plateforme embarquée, avant même de commencer à travailler sur l’application.

La disponibilité d’une plateforme compacte et ouverte peut accélérer considérablement des phases de développement, et permettre de ne pas rester coincé lors de la phase de certification néccessaire à la communication sans fil ou dans l’écriture de pilotes.

Le concept Arduino Industrial 101 a pour objectif d’offrir une plateforme de développement pour le module Arduino 101 LGA fabriqué par Chiwawa. Ce module présente un microprocesseur Qualcomm Atheros AR9331 MIPS cadencé à 400 MHz, avec 64 Mo de DDR2 et 16 Mo de mémoire flash, et un émetteur-récepteur sans fil conforme à l’IEEE802.11 b/g/n.

La connexion Ethernet 10/100 Mb/s reste prise en charge, bien que la partie magnétique et la connectique ne soient pas incluses. Préchargé avec LininoOS, une distribution Linux basée sur OpenWRT, il accepte l’environnement de développement de sous-système Linino IO qui permet au microcontrôleur de partager ses GPIO avec le contrôleur de communication, donnant accès à une connectivité sans accrocs avec le monde réel, aux applications hébergées sous Linux. La figure 2 illustre un schéma de principe de l’environnement matériel de la carte.

 Figure 2 – Schéma de principe de l’Arduino Industrial 101 (source www.arduino.org)

Côté Arduino, le microcontrôleur est un ATmega32u4 AVR 8 bits d’Atmel cadencé à 16 MHz. Les périphériques, alimentés en 5V, comprennent trois GPIO, dont deux peuvent être utilisées comme sorties PWM et quatre entrées analogiques. Un connecteur micro USB fournit une interface USB 2.0 full speed pour la programmation via l’IDE Arduino. Les broches pour la programmation série ICSP (in-circuit serial programmer (ICSP)) apportent aussi une connectivité SPI à la fois pour l'ATmega32u4 et l'AR9331. Le tout dernier IDE Arduino Studio basé sur l’éditeur Brackets d’Adobe prend en charge de multiples cartes, différentes architectures et des tailles de codes plus importantes.

Avec ses dimensions de 42 x 51 mm et son poids de seulement 120 g, la carte Arduino Industrial 101 ne consomme que 130 mA à partir d’une source 5 Vc.c. via la prise USB. Un régulateur intégré fournit une alimentation 3,3 Vc.c. pour le contrôleur AR9331, dont 50 mA sont réservés pour piloter des capteurs, LED ou autres circuits. De même que sur les autres cartes Arduino, une LED est connectée à la broche 13 et d’autres LED indiquent l’état de l’alimentation, du Wi-Fi, du WAN et de la TX/RX. Quatre boutons poussoirs permettent d’effectuer séparément la réinitialisation du microcontrôleur Atmel et du contrôleur AR9331, et s’ajoutent à la fonction réinitialisation du Wi-Fi, les paramètres usine et un bouton exploitable par l’application de l’utilisateur.

Configuré avec les paramètres usine, le Wi-Fi fonctionne comme un point d’accès, qui fournit son adresse MAC dans l’identifiant SSID, permettant à un ordinateur de s’y connecter directement. En réalisant une connexion locale et en orientant votre navigateur vers le panneau de configuration de l'Arduino Industrial 101 (192.168.240.1 par défaut), vous pouvez entrer le réseau Wi-Fi auquel vous souhaitez le relier. Une fois qu’elle est connectée à votre réseau et que celui-ci l’a détectée, vous pouvez utiliser les outils traditionnels tels que PuTTY ou Terminal pour accéder à la ligne de commande de Linino OS.

L’attrait de l'Arduino Industrial 101 pour les concepteurs d’applications industrielles et IoT résulte de la facilité avec laquelle les applications Linux tournant sur le processeur MIPS peuvent accéder aux entrées/sorties de l’Arduino. Cette force provient de l’intégration entre la structure du protocole de Linino IO et le Linino OS.  Linino OS, voir figure 3, est idéal pour l’utilisation dans les applications IoT grâce à son noyau optimisé et sa prise en charge de fichiers dans les langages les plus répandus utilisés traditionnellement dans les applications IoT, comme Node.js, Java et C.

 Figure 3 – Pile Linino OS (source www.arduino.org)

Linino IO permet aux E/S périphériques du microcontrôleur d’apparaître comme des périphériques Linux standard au contrôleur. En utilisant un protocole de communication générique, il définit des façons de lire et écrire dans un espace mémoire virtual sur le microcontrôleur. De cette manière, toute application fonctionnant sous Linino OS peut accéder aux données et les contrôler, qu’elles proviennent d’un capteur ou d’un actionneur raccordé au GPIO la carte Arduino comme un dispositif E/S Linux I/O standard. Le protocole est complètement indépendant du mode de transport, et nécessite un canal physiquement câblé ou bidirectionnel sans fil.

 

 Figure 4 – Environnement de développement  Linino IO - (source www.arduino.org)

 La figure 4 illustre comment l’environnement de développement du protocole Linino IO fonctionne. Il faut noter qu’en dehors de celui de l’Arduino Industrial 101, le lien entre l’OS et IO peut être l’un parmi de nombreux autres, donc un Linino OS peut communiquer avec plus d’un microcontrôleur Linino IO. 

Arduino fournit également deux composants d’une bibliothèque de logiciels qui facilitent la communication entre le microcontrôleur et le contrôleur. Créée au départ pour la carte Arduino Yún, qui possède aussi un microcontrôleur et un contrôleur WiFi/Linux, la bibliothèque Arduino Bridge simplifie la communication bidirectionnelle entre l’ATmega32U4 et l’AR9331. Agissant essentiellement comme une interface vers la ligne de commande Linux, elle permet aux programmes sur l’hôte Linux d’être appelés à partir d’un “sketch” du microcontrôleur Arduino, elle crée un espace de stockage partagé pour les données et retransmet également les commandes vers le microcontrôleur.

 Figure 5 – Arduino Ciao permet à un “sketch” Arduino de communiquer avec l’Internet (source www.arduino.org)

Fournir une connectivité Internet à un “sketch” Arduino est la deuxième bibliothèque, celle d’Arduino Ciao. Cette bibliothèque ouverte (voir figure 5) permet une communication bidirectionnelle par l’intermédiaire de l’hôte Linino OS grâce aux trois fonctions simples de communication série, “read”, “write” et “writeResponse”. En utilisant une bibliothèque C dans le “sketch” et Python sur le contrôleur, la bibliothèque utilise différents connecteurs pour interagir avec le système de fichier, la console et les circuits mémoires pour communiquer à l’aide des protocoles les plus courants comme COAP, XMPP et HTTP vers des applications Web telles que Twitter, Facebook entre autres. 

Armée de son interface analogique et numérique pour une interaction avec son environnement et de sa connectivité sans fil vers le “Cloud”, l’Arduino Industrial 101 permet aux développeurs d'applications embarquées de déployer rapidement leurs projets IdO et industrielles.

Simon Duggleby, Product Marketing Manager, Electronics Division, RS Components

 

 

nicolas.brunet n'a pas encore rempli le champs " à propos de moi" ...

29 Mar 2017, 13:14

Commentaires