Arduino ? Raspberry ? Quelle carte électronique choisir pour le prototypage rapide ?

fluid.e engineering
6 min readOct 27, 2020

Quand on cherche à réaliser un prototype nécessitant de l’électronique, on entend généralement les noms d’Arduino ou de Raspberry. Ces technologies sont excellentes pour cet usage, elles sont abordables, disposent d’une importante communauté et, par conséquent, d’une documentation fournie. Mais elles ne sont pas toujours les solutions idéales. Dans cet article, nous allons définir comment choisir l’un ou l’autre, et voir quelques alternatives moins connues mais qui pourraient être plus adaptées à votre besoin.

Quel type de microprocesseur/contrôleur choisir ?

Tout d’abord, il faut comprendre la différence entre un « mini-ordinateur » comme Raspberry et une carte microcontrôleur type Arduino. Un microcontrôleur ne peut généralement faire tourner qu’un seul programme à la fois, le programme est directement exécuté par le processeur sans système d’exploitation. Un mini-ordinateur a pour sa part un système d’exploitation qui fait l’interface entre software et hardware. Ce dernier permet de partager le temps processeur, segmenter la RAM et tous les autres mécanismes permettant à plusieurs programmes de s’exécuter en même temps.

On pourrait simplifier le choix entre les 2 comme ça :
Pour une tâche simple, répétitive et sans UI, Arduino

Pour des tâches complexes, connectées à internet et/ou avec une interface, Raspberry.

Arduino et ses alternatives

Quand on parle d’Arduino, cela fait référence à plusieurs choses distinctes :

- Les cartes microcontrôleur (MCU) Arduino comme la Uno ou la Mega

- L’IDE Arduino qui sert à programmer ces cartes

- L’écosystèmes de modules pour Arduino

Ces 3 composants forment ensemble un environnement complet mais peuvent être utilisés indépendamment. Par exemple, on peut utiliser l’IDE Arduino avec d’autres MCU, ou encore des modules pour Arduino dans un environnement complètement différent.

D’ailleurs, la partie la plus importante de l’environnement Arduino n’est pas la carte microcontrôleur elle-même. Ce n’est à peine que la base, l’élément déclencheur du reste de l’environnement. A l’origine, Arduino est simplement un des premières cartes microcontrôleur que l’on pouvait programmer directement dans un langage moderne et puissant, le C, mais ne nécessitant pas de programmateur pour transférer le code. Ainsi, il suffit de brancher l’Arduino sur un port USB et on peut l’utiliser comme n’importe quel microcontrôleur « professionnel ».

Une Arduino Nano avec un microcontrôleur ATMega328P

Ce concept de base est aujourd’hui décliné en beaucoup de cartes différentes. Les Arduino Uno et Mega sont les 2 principales, mais elles ont une dizaine d’année aujourd’hui et leurs microcontrôleurs sont datés, tant en termes de possibilités que de consommation d’énergie, que de prix. Par exemple, voici un comparatif entre l’ATMega328P présent sur l’Arduino Uno et le STM32G030K8, un MCU moderne dans le même format :

Comparaison entre un ATMega328P et un STM32G0

Les performances et les périphériques présents sur le STM32 offrent de nombreuses possibilités supplémentaires. Il peut par exemple être utilisé sur batterie pendant une longue période, contrôler plus de périphériques ou même utiliser des méthodes modernes permettant de simplifier des problèmes complexes, comme du machine learning via Tensorflow MCU.

Il est donc clair que le principal intérêt d’Arduino n’est pas la carte en elle-même. De nombreuses alternatives compatibles Arduino existent d’ailleurs, notamment chez ST qui est devenu la référence dans le domaine ces dernières années. Par exemple, la NUCLEO-F031K6 qui est dans un format d’Arduino Nano et est compatible avec l’Arduino IDE pour être programmée exactement de la même façon qu’une Arduino classique.

Au-delà des comparaisons techniques, pourquoi choisir une carte STM32 plutôt qu’une Arduino classique ? Parce que lorsque vous souhaiterez transformer votre prototype en produit industrialisable, vous aurez déjà le microcontrôleur adapté, l’expérience pour l’utiliser et vous pourrez même potentiellement ré-utiliser le programme déjà créé. De plus, si vous devez chercher un consultant pour réaliser le programme de votre produit, vous n’aurez aucune difficulté à trouver quelqu’un capable de programmer ce type de microcontrôleur.

En plus des alternatives pures telles que les STM32, il existe des microcontrôleurs compatibles Arduino disposant de fonctionnalités spécifiques qui les rendent adaptés pour certains projets. On pense notamment à l’ESP8266 qui dispose d’une interface Wi-Fi, et dont la communauté est également très importante.

Raspberry et ses alternatives

Raspberry est un autre écosystème pensé pour le prototypage, totalement différent d’Arduino. Les cartes elles-mêmes sont basées sur un microprocesseur ARM Cortex A similaire à ceux que l’on trouve dans les smartphones. Leur système d’exploitation est un linux, basé sur la distribution Debian, Raspbian. Elles offrent des possibilités de connectivité différentes des Arduino, avec par exemple la possibilité d’y connecter des périphériques USB, un écran HDMI ou encore une caméra.

Le principal avantage technique de la Raspberry est sa puissance pure. Elle permet de créer la plupart des applications que l’on peut aussi réaliser sur PC ou smartphone. On peut la connecter à internet, brancher un écran tactile HD pour créer une UI moderne, réaliser des traitements complexes basés sur du traitement d’image, lire et enregistrer des vidéos ou toute autre réalisation impossible avec un simple microcontrôleur.

Différentes versions de la Raspberry Pi existent, notamment les suivantes :

Comparaison des différents modèles de Raspberry

Avec ses différentes variantes, la Raspberry Pi peut être adaptée à beaucoup de projets. La Pi Zero se destine principalement aux petites applications ne nécessitant pas d’UI ou une UI simple. La Pi 3A est polyvalente avec une puissance suffisante pour une interface complexe avec de la lecture vidéo ou des effets de transition par exemple. Les Raspberry Pi 4 sont polyvalentes et peuvent réaliser presque toutes les tâches d’un PC, incluant le traitement d’images. Le Compute Module est un format très intéressant lorsque l’on conçoit son propre PCB pour l’accueillir. Il libère ainsi toutes les capacités du processeur en proposant plus d’interfaces, et est configurable afin de ne conserver que les caractéristiques nécessaires. Il n’est ainsi pas rare de retrouver un Compute Module Raspberry dans un produit industrialisé. Il existe d’ailleurs un programme mis en place par la fondation Raspberry dédié à ça, le Raspberry Integrator Programme.

Le Compute Module 4 de Raspberry

A noter cependant que la consommation de ces cartes est trop élevée pour fonctionner sur batteries pour une longue durée. La raspberry Pi Zero fonctionnera par exemple seulement 10h sur une cellule 18650 tandis que la Pi 4 ne dépassera pas les 2h. Leur consommation est plusieurs ordres de grandeur plus grands que celle des microcontrôleurs précédents.

Contrairement à Arduino, il n’existe pas vraiment d’alternatives recommandables à la Raspberry Pi. Le standard pour l’industrialisation serait la série des I.MX de chez NXP qui ont des performances et des caractéristiques comparables, tout en ayant une documentation hardware beaucoup plus fournie que la Raspberry. Cependant, ces solutions nécessitent beaucoup plus de travail de mise en œuvre qu’une Raspberry Pi et sortent donc largement du cadre du prototypage rapide. C’est un choix que nous ne pouvons que déconseiller aux débutants dans le domaine.

Conclusion

En conclusion, Arduino et Raspberry sont 2 systèmes qui ne répondent pas aux mêmes problèmes mais qui sont tous les deux efficaces dans leur domaine respectif et peuvent être complémentaires. On privilégiera la puissance et la connectivité de la Raspberry pour des systèmes disposant d’une UI ou d’une interface avancée avec un service cloud, tandis que les microcontrôleurs type Arduino sont très efficaces énergétiquement, suffisant pour réaliser de nombreuses tâches simples et peu couteux.

Si vous avez besoin d’aide pour réaliser votre projet, contactez-nous.

--

--