Développement rapide avec Raspberry Pi 3 (par rapport au Raspberry Pi Zero moins fréquent)

Avec la contribution de Rédacteurs nord-américains de Digi-Key

Toutes les itérations de cartes Raspberry Pi sont une aubaine pour les développeurs, tant professionnels qu'amateurs. Même si le modèle Raspberry Pi Zero a suscité beaucoup d'intérêt, il est difficile à obtenir. Heureusement, de nombreuses autres cartes de la gamme Pi offrent des fonctionnalités supérieures répondant aux exigences des applications.

Avec son processeur à quatre cœurs, le Raspberry Pi 3 fournit deux fois plus de mémoire que le modèle à un cœur Pi Zero. Pour les développeurs recherchant une faible empreinte de conception, mais qui ne sont pas satisfaits des performances du Pi Zero, le Raspberry Pi Compute Module 3 (CM3) combine les performances élevées du Pi 3 et l'empreinte de la taille d'une carte de crédit du Pi Zero. En exploitant une gamme étendue de cartes matérielles d'extension et de logiciels déjà disponibles, les développeurs peuvent répondre à de nombreux types d'exigences applicatives grâce au Pi 3 et au CM3.

Installation et configuration du Raspberry Pi

Les systèmes Raspberry Pi fournissent une base open-source fiable permettant aux fournisseurs, aux développeurs tiers ainsi qu'aux utilisateurs de tirer parti d'un écosystème de logiciels et de matériels de plus en plus diversifié, et d'y contribuer. Initialement conçu par la Fondation Raspberry Pi en tant que plateforme économique pour l'apprentissage de l'informatique, le matériel Pi est devenu une plateforme à la fois économique et puissante, adaptée au prototypage rapide et qui est de plus en plus considérée comme une plateforme informatique embarquable.

Les logiciels Pi fournissent le même niveau de performances et d'accessibilité. Les cartes Pi exploitent Raspbian, une version du système d'exploitation (OS) GNU/Linux optimisée pour les cartes Raspberry Pi. Les développeurs peuvent insérer une carte SD contenant le programme d'installation de Raspbian, NOOBS, dans l'interface SD de la carte Pi et être opérationnels en quelques secondes avec un environnement Linux familier.

Grâce à la communauté très active de Raspberry Pi, les développeurs qui ont des exigences particulières peuvent choisir entre plusieurs options de systèmes d'exploitation, notamment Ubuntu, Ubuntu Core, Windows 10 IoT Core, OSMC (Open Source Media Center) basé sur Linux et RISC OS. Pour ces distributions, les développeurs doivent simplement charger le système avec une image téléchargée enregistrée sur une carte SD. Enfin, les ingénieurs logiciels peuvent bénéficier d'un ensemble diversifié de bibliothèques logicielles disponibles, prenant en charge le développement dans une grande variété de langages de programmation.

Extensions Pi

En termes de matériel, le matériel Pi a évolué en trois branches majeures présentant quelques différences notables en ce qui concerne les performances, la taille et la fonctionnalité (Tableau 1). Remarquable par sa petite taille, le nouveau Pi Zero fait office de carte d'entrée de gamme, sacrifiant certains éléments fonctionnels au profit d'un faible coût et d'une empreinte minimale. À l'inverse, le Pi 3 et sa variante embarquée, le CM3, comprennent un processeur à quatre cœurs très performant et une grande mémoire pour fournir le type de plateforme matérielle résistante requise pour les applications embarquées. De plus, le CM3 présente presque la même empreinte que le Pi Zero, sans nuire aux performances ni aux fonctionnalités.

Pi Processeur Mémoire Format ES
Pi 3 BCM2837 (processeur quadruple cœur ARM Cortex-A53 1,2 GHz 64 bits avec VideoCore IV double cœur)

1 Go de RAM

NVM : emplacement pour carte micro SD

85 mm x 56 mm

Embase Pi 40 broches

40 GPIO

Wi-Fi 802.11n

Bluetooth 4.1

Ethernet

USB

HDMI

Port AV

Interface de caméra (CSI)

Interface d'affichage (DSI)

Pi CM3 Identique au Pi 3

1 Go de RAM

NVM : mémoire Flash eMMC de 4 Go embarquée

67,6 mm x 31 mm

SODIMM 200 broches

48 GPIO

2x I2C

2x SPI

2x UART

2x SD/SDIO

HDMI

USB

DPI, SMI, CSI, DSI

Pi Zero BCM2835 (processeur ARM1176 à un cœur 1 GHz)

512 Mo de RAM

NVM : emplacement pour carte micro SD

65 mm x 30 mm

Pi 40 broches traversant

HDMI

USB

Embase compatible HAT

Embases de réinitialisation et vidéo composite

Connecteur caméra CSI

Tableau 1 : Comparaison de Raspberry Pi 3, Compute Module 3 (CM3) et Pi Zero (source : Digi-Key Electronics, données compilées de la Fondation Raspberry Pi)

Les interfaces matérielles standard sont un facteur essentiel pour le succès d'une plateforme comme Raspberry Pi. Les nouvelles cartes Pi, notamment Pi 3 et Pi Zero, fournissent la même interface à 40 broches, avec 28 broches GPIO, dont certaines prennent en charge une connexion double pour I2C, SPI et UART (Figure 1). Outre les broches GPIO, cette interface Pi standard fournit des lignes 3,3 V, 5 V, de terre et d'autres lignes comme un identifiant EEPROM. Grâce au brochage courant, les utilisateurs Pi peuvent trouver de nombreuses cartes d'extension de fournisseurs tiers, adaptées à cette interface standard.

Schéma de cartes Pi, notamment Pi 3 et Pi Zero

Figure 1 : L'interface à 40 broches, commune aux cartes Pi, notamment Pi 3 et Pi Zero, prend en charge des GPIO et d'autres lignes du processeur hôte de la carte et des composants connexes. (Source de l'image : Fondation Raspberry Pi)

Cependant, pour les utilisateurs de Pi Zero, l'interface à 40 broches est fournie sous forme de trous traversants plaqués sur la carte à circuit imprimé. L'utilisateur doit donc insérer ou souder sur une embase de connecteur à trou traversant. Pour le Pi 3, l'embase de connecteur est standard (Figure 2), tout comme les connecteurs pour les fonctionnalités comme Wi-Fi et Ethernet, qui ne sont pas disponibles sur Pi Zero, comme l'indique le tableau.

Image des cartes Pi Zero et Pi 3

Figure 2 : Avec l'interface standard Pi à 40 broches, le Pi Zero (a) ne fournit que des connexions traversantes, tandis que le Pi 3 (b) inclut un connecteur à 40 broches adapté aux cartes d'extension, appelées HAT (Hardware Attached on Top). (Source de l'image : Fondation Raspberry Pi)

Matériel d'extension

Étant donné que l'interface Pi fournit une alimentation, une mise à la terre et des GPIO, les développeurs peuvent brancher leurs circuits discrets directement sur les broches de l'interface GPIO de Pi 3. Toutefois, au lieu de partir de zéro pour brancher les circuits, la plateforme Pi offre une manière plus efficace d'élargir les fonctionnalités du système Pi 3. En effet, la disponibilité de l'embase à 40 broches sur le Pi 3 fournit une interface standard pour les cartes d'extension configurées en tant que HAT. Grâce à cette simple interface électrique et mécanique, les développeurs peuvent rapidement améliorer la carte Pi 3 de base avec des fonctionnalités spécifiques aux applications. Les développeurs doivent simplement insérer une carte HAT d'extension compatible avec le Pi sur le connecteur à 40 broches. Ils peuvent même empiler des cartes d'extension partageant toutes cette interface unique.

Les développeurs peuvent exploiter une sélection considérable de cartes d'extension. Par exemple, le Pi Sense HAT inclut un ensemble complet de capteurs nécessaires pour les applications d'orientation ou de détection d'environnement. De plus, il offre une matrice LED et un joystick à 5 boutons pour la l'interaction et le retour utilisateur (Figure 3).

Image de Pi Sense HAT

Figure 3 : Les développeurs ajoutent des fonctionnalités à la carte Pi en branchant simplement des HAT comme le Pi Sense HAT, qui fournit plusieurs capteurs ainsi qu'une matrice LED et un joystick à 5 boutons pour l'interaction utilisateur. (Source de l'image : Fondation Raspberry Pi)

Le Sense HAT est un sous-système autonome sophistiqué. Outre le microcontrôleur ATtiny 8 bits (ATTINY88) de Microchip Technology, cette carte d'extension comprend une unité de mesure inertielle (IMU) LSM9DS1 de STMicroelectronics, un capteur d'humidité et de température HTS221 et un capteur de pression LPS25HBTR, tous deux également de STMicroelectronics.

Déploiement simple

Tout comme avec les autres cartes d'extension compatibles Pi, les développeurs connectent le Sense HAT à leur système Pi 3 simplement en insérant la carte HAT sur l'embase à 40 broches du Pi 3. L'interface logicielle est tout aussi simple : la bibliothèque sense-hat Python officiellement prise en charge masque les interactions matérielles de bas niveau par des commandes simples et intuitives (Liste 1).

from sense_hat import SenseHat

sense = SenseHat()

temp = sense.get_temperature()

print("Temperature: %s C" % temp)

humidity = sense.get_humidity()

print("Humidity: %s %%rH" % humidity)

# get_orientation_degrees returns a Python dictionary

# with keys pitch, roll, and yaw

orientation = sense.get_orientation_degrees()

print("p: {pitch}, r: {roll}, y: {yaw}".format(**orientation))

Liste 1 : La bibliothèque Sense HAT de Raspberry Pi permet aux développeurs logiciels d'utiliser quelques commandes intuitives pour collecter des données à partir du matériel Sense HAT. (Source du code : Fondation Raspberry Pi)

Outre Pi Sense HAT, les développeurs peuvent trouver des cartes HAT tierces répondant aux exigences applicatives les plus courantes. Par exemple, la carte 114990831 de Seeed Technology fournit un convertisseur numérique-analogique (CNA) à 2 canaux de 16 bits et un convertisseur analogique-numérique (CAN) de 24 bits, avec 8 canaux d'entrée asymétriques ou 4 canaux d'entrée différentiels. Les développeurs peuvent trouver diverses extensions, notamment un GPS de Seeed, un détecteur à ultrasons de DFRobot, un moteur pas-à-pas d'Adafruit et plus encore.

Pour les développeurs dont les exigences ne peuvent pas être satisfaites par les cartes d'extension existantes, Seeed Technology propose une carte Breakout HAT comprenant quelques composants intégrés, notamment des transistors P-MOS, N-MOS, NPN et PNP.

En travaillant avec des HAT, les développeurs peuvent bénéficier d'un grand nombre d'outils logiciels fournis par la Fondation Raspberry Pi, par les fournisseurs et par d'autres membres de la communauté Pi. Par exemple, l'outil raspi-gpio de Raspberry Pi permet aux développeurs de consulter l'état et de modifier le comportement d'une GPIO. Les programmeurs peuvent également utiliser le code C open-source de cet outil comme modèle de conception de leurs programmes logiciels de commande GPIO.

Les développeurs peuvent également trouver des bibliothèques GPIO pour des langages de niveau supérieur comme Python. Le module Python RPi.GPIO permet aux développeurs de contrôler chaque aspect de la fonction GPIO au niveau de la broche avec des commandes comme GPIO.input(channel) pour lire la valeur d'une broche GPIO et GPIO.output(channel, state) pour paramétrer une broche GPIO à un état donné.

La bibliothèque Python gpiozero optimise la programmation GPIO grâce à des abstractions de haut niveau, comme MotionSensor, LightSensor, LED, Motor, etc. Grâce à cette approche, les programmateurs gèrent le matériel sous-jacent par la lecture de son état ou la configuration de l'état désiré avec des commandes plus intuitives, comme led.on() pour activer une LED, en se basant sur la bibliothèque pour gérer les transactions GPIO sous-jacentes.

Exploitation de Grove

L'interface Pi HAT offre une base attractive pour les développeurs tiers, tout en étant néanmoins limitée à la plateforme Pi. À l'inverse, l'interface Grove offre une base standard unique compatible avec de nombreuses plateformes, ce qui la rend plus attractive pour les développeurs de cartes d'extension. Le kit de démarrage Grove de Seeed Technology fournit une carte HAT compatible Pi dotée de plusieurs connecteurs compatibles avec Grove. Comme pour les autres HAT, la carte HAT de Grove se monte sur un connecteur Pi 3 à 40 broches (Figure 4).

Image du kit de démarrage Grove de Seeed Technology

Figure 4 : Le kit de démarrage Grove de Seeed Technology se branche sur le connecteur Pi standard à 40 broches, permettant aux développeurs d'améliorer leur système Pi à l'aide d'un ensemble étendu de périphériques compatibles avec Grove. (Source de l'image : Seeed Technology)

Grâce à la carte HAT Grove, les développeurs conservent la simplicité et les performances du Pi 3 tout en ayant accès à un vaste ensemble d'extensions compatibles avec Grove, y compris des actionneurs, des capteurs de gaz, des dispositifs de commande moteur, des haut-parleurs, des émetteurs-récepteurs sans fil et plus. Au lieu de brancher des fonctionnalités d'extension directement sur le connecteur à 40 broches du Pi 3, les développeurs branchent le connecteur Grove fourni avec ces produits dans l'un des connecteurs Grove montés sur le haut de la carte Grove HAT (Figure 4).

Les développeurs peuvent trouver des bibliothèques logicielles Grove pour C, Java, Node.js, Python et d'autres langages, leur permettant également d'ajouter les fonctionnalités Grove à leurs applications. Dans ce cas, les programmes de niveau supérieur permettent au développeur de se concentrer sur la collecte de données analogiques (Liste 2), en se basant sur les programmes de bas niveau dans la bibliothèque pour exécuter les transactions de niveau binaire correspondantes (Liste 3).

# Tweet the temperature, light, and sound levels with our Raspberry Pi

# http://www.dexterindustries.com/GrovePi/projects-for-the-raspberry-pi/raspberry-pi-twitter-sensor-feed/

import twitter

import time

import grovepi

import math

# Connections

sound_sensor = 0        # port A0

light_sensor = 1        # port A1

temperature_sensor = 2  # port D2

led = 3                 # port D3

intro_str = "DI Lab's"

# Connect to Twitter

api = twitter.Api(

    consumer_key='YourKey',

    consumer_secret='YourKey',

    access_token_key='YourKey',

    access_token_secret='YourKey'

    )

grovepi.pinMode(led,"OUTPUT")

grovepi.analogWrite(led,255)  #turn led to max to show readiness

while True:

    # Error handling in case of problems communicating with the GrovePi

    try:

        # Get value from temperature sensor

        [t,h] = grovepi.dht(temperature_sensor,0)

        # Get value from light sensor

        light_intensity = grovepi.analogRead(light_sensor)

        # Give PWM output to LED

        grovepi.analogWrite(led,light_intensity/4)

        # Get sound level

        sound_level = grovepi.analogRead(sound_sensor)

        # Post a tweet

        out_str ="%s Temp: %d C, Humidity: %d, Light: %d, Sound: %d" %(intro_str,t,h,light_intensity/10,sound_level)

        print (out_str)

        api.PostUpdate(out_str)

        time.sleep(60)

    except IOError:

        print("Error")

    except KeyboardInterrupt:

        exit()

    except:

        print("Duplicate Tweet or Twitter Refusal")

Liste 2 : Les développeurs peuvent utiliser une carte Pi, des extensions Grove et une bibliothèque logicielle Grove pour rapidement mettre en œuvre des applications sophistiquées comme dans cet exemple, qui émule un processus de type Internet des objets pour le transfert de données environnementales à un service hôte (ici, Twitter). (Source du code : Dexter Industries)

# Read analog value from Pin

def analogRead(pin):

      write_i2c_block(address, aRead_cmd + [pin, unused, unused])

      read_i2c_byte(address)

      number = read_i2c_block(address)

      return number[1] * 256 + number[2]

Liste 3 : La bibliothèque logicielle Grove gère les opérations de niveau binaire nécessaires pour accéder aux périphériques matériels, permettant aux développeurs de travailler avec des commandes plus intuitives, comme analogRead(pin). (Source du code : Dexter Industries)

Configuration simplifiée

Avant, l'ajout d'un nouveau matériel à un système constituait un défi à de nombreux niveaux. Les ingénieurs matériels devaient concevoir des interfaces mécaniques et électriques adaptées. Les développeurs d'applications devaient trouver des bibliothèques logicielles adéquates pouvant fournir le type d'abstraction nécessaire à l'optimisation de la productivité. Le Pi 3 et son écosystème suppriment ces défis grâce au connecteur à 40 broches standard du Pi et aux bibliothèques logicielles déjà disponibles décrites ci-dessus. Mieux encore, l'architecture Pi évite aux développeurs de répondre à une exigence supplémentaire : rechercher et charger des BSP (Board-Support Packages) spécifiques au matériel. Les BSP fournissent généralement le code de bas niveau nécessaire pour compléter l'interface entre le système d'exploitation et le matériel d'extension.

L'architecture Pi permet aux utilisateurs Pi de ne pas avoir à installer et à configurer des BSP pour différents dispositifs matériels. À la place, les systèmes Pi utilisent une arborescence de dispositifs, qui fournit un mécanisme pour charger les modules et gérer l'allocation des ressources afin d'éviter les conflits entre plusieurs modules logiciels utilisant les mêmes ressources. Si le dispositif matériel nécessite un logiciel spécialisé, l'utilisateur Pi doit simplement paramétrer quelques éléments de configuration. Le noyau du système d'exploitation trouve et charge automatiquement les modules associés aux dispositifs matériels correspondants. Par exemple, la fonctionnalité I2C d'un système Pi est désactivée par défaut. Les développeurs doivent simplement modifier le fichier de configuration (config.txt) pour supprimer les commentaires d'une ligne :

#dtparam=i2c_arm=on

La plateforme Pi simplifie même cette étape. Au démarrage initial de Raspbian, ce dernier exécute un outil de configuration présentant à l'utilisateur un menu des éléments de configuration, notamment la capacité à activer plusieurs interfaces.

Pour les applications reposant sur le matériel basé sur I2C, les bibliothèques de haut niveau, comme celles mentionnées précédemment, évitent aux développeurs d'avoir à effectuer un codage au niveau des transactions I2C. Lorsque les développeurs doivent développer un code pour des opérations I2C spécialisées, ils peuvent trouver des logiciels comme les outils I2C pour Linux qui peuvent être utilisés directement ou en tant qu'exemples pour la création de logiciels I2C personnalisés.

Pi embarqué

Pour les concepteurs souhaitant embarquer des systèmes Pi dans des produits, le nouveau CM3 offre une solution Pi compacte intégrable (Figure 5). Basé sur le même processeur à quatre cœurs que le Pi 3, le CM3 offre également les mêmes fonctionnalités et les mêmes capacités que le Pi 3. De plus, le CM3 inclut une mémoire Flash eMMC intégrée de 4 Go tandis que les autres cartes Pi présentent un emplacement micro SD pour ajouter des cartes mémoire Flash externes. (Raspberry Pi propose également le CM3L, une version « allégée » du CM3 comprenant tous ses composants, à l'exception de la mémoire Flash intégrée.)

Image du Raspberry Pi Compute Module 3 (CM3)

Figure 5 : Le Raspberry Pi Compute Module 3 (CM3) associe la petite taille du Pi Zero et les performances du Pi 3, tout en offrant plus de broches que ces deux modèles. Il inclut également un module Flash de 4 Go (de l'autre côté de la carte). (Source de l'image : Fondation Raspberry Pi)

Le CM3 délaisse l'interface E/S à 40 broches utilisée dans le Pi 3 et le Pi Zero. À la place, il offre une interface étendue sous forme d'un connecteur SODIMM (module de mémoire compact à double rangée) à 200 broches sur le bord de la carte (Figure 6). En fait, la carte CM3 complète est compatible avec le format DDR2 SODIMM, ce qui permet aux développeurs de connecter le CM3 à un système cible via un connecteur DDR2 SODIMM standard.

Schéma de Raspberry Pi CM3

Figure 6 : Le Raspberry Pi CM3 va plus loin que l'interface à 40 broches des autres cartes Pi en offrant 200 broches de processeur et d'autres composants de carte. (Source de l'image : Fondation Raspberry Pi)

Pour simplifier le développement, les ingénieurs peuvent exploiter le kit de développement CM3 Raspberry Pi, qui combine un module CM3 avec la carte E/S Compute Module Raspberry Pi. La carte E/S est une simple carte open-source avec un connecteur DDR2 SODIMM pour le CM3 et des embases étendant l'interface CM3 à 200 broches (Figure 7). De plus, la carte E/S fournit des connecteurs pour les ports HDMI, USB, caméra et d'affichage fournis sur la carte Pi 3.

Image de la carte E/S Compute Module Raspberry Pi

Figure 7 : Intégrée dans le kit de développement CM3, la carte E/S Compute Module Raspberry Pi fournit un connecteur DDR2 SODIMM pour le CM3, ainsi que des embases pour l'interface CM3 à 200 broches et des connecteurs pour les ports HDMI, USB, caméra et d'affichage. (Source de l'image : Fondation Raspberry Pi)

Applications en temps réel

Avec cette combinaison de performances élevées et de format compact, le CM3 est adapté à un usage en tant que système embarqué dans des produits électroniques tels que les téléviseurs, les appareils audio et d'autres produits grand public. Pour les applications en temps réel, cependant, les développeurs doivent prendre en compte certaines limites dans la plateforme Pi par défaut.

La principale est que les systèmes Pi n'ont pas d'horloge temps réel (RTC). De plus, les cœurs comme le Cortex-A53 utilisé dans le Pi 3 et le CM3 (ou l'ARM1176 dans le cas du Pi Zero) ne comprennent pas de fonctionnalités tels que temporisateurs de système SysTick, nécessaires pour les événements en temps réel, notamment les lectures programmées de capteurs. Les temporisateurs SysTick sont des fonctionnalités essentielles des cœurs comme la série ARM Cortex-M, qui sont spécialement conçus pour les applications déterministes en temps réel.

Les ingénieurs peuvent facilement remédier à cet inconvénient à l'aide d'un circuit intégré RTC de précision, comme le DS3231 de Maxim Integrated. Offrant une précision de ±2 ppm sur la plage de températures grand public, le circuit intégré RTC DS3231 génère une sortie à onde carrée pouvant être utilisée pour commander des temporisateurs de système logiciel. De plus, il fournit une interface I2C simple pour la lecture de l'horloge temps réel. Les développeurs peuvent intégrer les données RTC dans leurs applications en temps réel à l'aide des programmes en C basés sur le kit I2C mentionné précédemment.

Le système d'exploitation proprement dit constitue une autre limitation de l'usage du système Pi standard pour les applications en temps réel. Conçues pour les applications à usage général, les distributions Linux standard ne fournissent pas les réponses déterministes nécessaires pour une surveillance et un contrôle fiables des processus en temps réel. En fait, le mode de fonctionnement par défaut de Linux, même pour un thread hautement prioritaire, peut ne pas réussir à préempter le noyau. Par conséquent, si un programme haute priorité tente de lire des capteurs, de commander des moteurs ou d'effectuer d'autres opérations du même type, le programme en temps réel pourrait subir un retard indéterminé.

Heureusement, le noyau Linux comprend une option de configuration, appelée CONFIG_PREEMPT, qui permet de contourner cette limitation. Cette option permet aux programmes hautement prioritaires de préempter le noyau, à l'exception de circonstances spéciales, notamment dans le cas où le noyau exécute les threads de noyau en spinlock (blocage en attente d'une ressource). En pratique, pour s'assurer que le noyau peut être préempté, des étapes supplémentaires autres que la modification de cet élément de configuration sont requises. La communauté open-source a formalisé le processus de conversion de Linux en un noyau qui peut être entièrement préempté, avec la sortie de l'ensemble de correctifs CONFIG_PREEMPT_RT. Simple, à défaut d'être directe, cette procédure de correctif s'est relativement popularisée grâce à des procédures bien documentées fournies par la Fondation Raspberry Pi et par les membres de la communauté Pi.

Conclusion

Malgré le récent intérêt pour la carte Raspberry Pi Zero, difficile à obtenir, les modèles Raspberry Pi 3 et CM3 offrent aux ingénieurs une plateforme plus intéressante pour la création de systèmes hautes performances. Le Pi 3 et le CM3 sont tous les deux dotés d'un processeur à quatre cœurs et de deux fois plus de RAM intégrée que le Pi Zero à un cœur.

Pour sa part, le Pi 3 fournit une base de calcul plus puissante pour l'exploitation de la vaste gamme de cartes d'extension disponibles et conçues spécialement pour l'interface GPIO standard à 40 broches. Avec le CM3, les développeurs bénéficient d'une base de traitement combinant la petite taille du Pi Zero et les avantages de performances du Pi 3. À l'aide de ces nouvelles cartes Pi, des extensions matérielles et des bibliothèques logicielles déjà disponibles, les développeurs peuvent rapidement mettre en œuvre des systèmes personnalisés répondant à diverses exigences applicatives.

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de Digi-Key Electronics ni les politiques officielles de la société.

À propos de l'éditeur

Rédacteurs nord-américains de Digi-Key