Raspberry Pi, BeagleBone Black et Arduino

Ces ordinateurs monocarte sont-ils seulement destinés aux non-professionnels et étudiants ou offrent-ils un environnement de développement rapide pour les développeurs de systèmes embarqués professionnels ?

  Raspberry Pi Arduino BeagleBone
Modèle Modèle B Uno Black
Processeur Core ARM1176JZFS/ Videocore 4 GPU AVR ARM Cortex A8
Processeur Broadcom BCM2835 AtMega 328 Texas Instruments AM3359
Vitesse d'horloge 700 MHz 16 MHz 1 GHz
RAM 512 Mo 2 Ko 512 Mo DDR 3600
Stockage Carte SD 32KB 2 G0 et carte microSD
Sortie vidéo HDMI, AV NA HDMI
Résolution vidéo maximale 1080p30 H.264 NA NA
Sortie audio Via HDMI, Jack audio 3,5 mm NA via HDMI
USB 2 Hôtes 1 Hôte 1 Hôte, 1 Client
Ethernet 10/100 Mbs NA 10/100 Mbs
Source d'alimentation USB, jack 5V CC USB, jack 5V CC USB, jack 5V CC
E/S UG 8 14 46
Périphériques
USART
SPI
I2C
SPI
I2C
Timer
Analogique
SPI
I2C
CAN
Timer
Analogique

Il ne se passe guère une journée sans une annonce d’un nouvel ordinateur monocarte. L’effet dit « Raspberry Pi » a eu un impact énorme sur l’adoption de ce type de carte. Même si, il est évident que Raspberry Pi est le principal protagoniste de la plus forte progression des ordinateurs monocarte, il est loin d’être le seul dans ce secteur. Bien d’autres sont présents et depuis plusieurs années. L’Arduino est probablement le plus connu et aussi le plus riche en licences sur le marché des monocartes. Raspberry Pi et Arduino sont les ordinateurs monocarte les plus répandus. Ils sont utilisés dans des milliers de projets, conçus par des professionnels ou amateurs en électronique, allant du serveur web pour réfrigérateur au mini drome autonome. L’étendue des projets basés sur  l’écosystème open source Arduino, avec carte microcontrôleur, codes sources et cartes d’extension «shields» est considérable. De son côté, l’adoption du Raspberry Pi bénéficie d’une progression rapide. Grâce à son microprocesseur ARM et au système d’exploitation Linux, il essaime dans des projets et des applications très différents de ceux de l’Arduino..

Le concept de l’ordinateur monocarte n’est évidemment pas nouveau. Les fabricants de semi-conducteurs en construisent depuis des années pour faciliter l’adoption de leurs nouvelles gammes de microcontrôleurs. Ils offrent ainsi aux développeurs de systèmes embarqués une plateforme d’évaluation économique, avec divers périphériques et entrées/sorties, qui est d’une utilité remarquable pour tester de nouveaux concepts. Parmi ces cartes de développement, la BeagleBoard a été lancée par Texas Instruments en 2008 pour aider les étudiants à développer leurs compétences de développement matériel et logiciel open source basé sur le système sur puce OMAP 3530 de TI. Après plusieurs évolutions, la BeagleBone Black a maintenant la taille d’une carte de crédit et se positionne rapidement parmi les concurrents directs des cartes Arduino et Raspberry Pi

S’il est évident que ces trois cartes continueront d’être utilisées pour enseigner l’électronique et réaliser une grande diversité de projets amateurs, peuvent-elles être utilisées par des développeurs professionnels comme bases de nouveaux concepts commerciaux ?

Arduino

Premièrement, Arduino n’est pas seulement une carte. Arduino représente une famille de cartes. Elles sont toutes (sauf une) basées sur les séries ATmega de microcontrôleurs AVR 8 bits d’Atmel, toujours très demandées et bénéficiant d’un support efficace. La famille Arduino offre un choix de tailles, d’entrées/ sorties et de configurations de mémoire. La carte Uno est le modèle le plus courant dans la gamme (considéré par Arduino comme sa version de référence). Son microcontrôleur est un Atmel ATmega328 à 16 MHz. Les E/S incluent six entrées analogiques et 14 E/S numériques, dont six peuvent être utilisées comme PWM. Le microcontrôleur est entouré d’une EEPROM 1 ko, d’une mémoire SRAM 2 ko et d’une mémoire Flash de 32 ko. L’Arduino Due est basé sur le microprocesseur Cortex-M3ARM 32 bits SAM3X8E d’Atmel. Les entrées/ sorties avancées incluent 54 E/S numériques dont 12 peuvent fonctionner comme sorties PWM, 12 entrées analogiques et 2 sorties analogiques. La mémoire Flash 512 ko est disponible avec une mémoire SRAM maximale de 96 ko. Avec une fréquence de 84 MHz, la Due est la plus rapide des cartes Arduino.

Figure 1 – Arduino Uno

Toutes les entrées/sorties et l’alimentation sont accessibles sur deux rangées de connecteurs. Cet agencement standard permet d’installer une grande quantité de cartes d’extension, pour prendre en charge une multitude d’applications allant des systèmes WiFi aux écrans en passant par ZigBee, pour ne nommer que quelques-uns des modules connectables à cette carte. Arduino offre plusieurs modules d’extension, tels que contrôle de moteur, Ethernet et prototypage sans fil. Un environnement IDE gratuit et téléchargeable procure une programmation et un chargement d’exécution extrêmement aisés. Le langage dérivé de C de l’IDE offre un accès facile aux fonctions E/S de la carte. Les programmes, ou « sketches » comme Arduino les appelle, peuvent être programmés sur USB, mais les développeurs professionnels peuvent préférer le bootloader STK500 sur l’embase de programmation sérielle in-situ (ICSP). Pour les développeurs de systèmes embarqués, cette carte offre de nombreux avantages. L’environnement IDE et la conception de la carte sont totalement open source et disponibles sous licence publique générale. La licence Creative Commons Attribution Share-alike autorise les dérivés personnels et commerciaux, sauf que toutes les cartes développées dépendent de la même licence. Si vous souhaitez créer des applications industrielles simples en petites quantités, vous pouvez envisager d’utiliser les cartes existantes avec les modules d’extension nécessaires. Si les volumes sont plus élevés, une meilleure gestion des nomenclatures peut exiger de concevoir intégralement les cartes. Arduino est la solution idéale pour les applications qui ont besoin d’une interface combinant une gamme étendue de capteurs, mais sans une puissance de calcul intensive. Cette carte permet de connecter à peu près n’importe quoi ! Si le concept offre un espace limité, la carte Uno, ou l’Arduino Mini, qui est la plus petite, sont des options à considérer. (Pour consulter une liste complète, allez sur www.arduino.cc). Dans tous les cas, les développeurs peuvent avoir la certitude que la conception des Arduino a été extensivement éprouvée. Les outils professionnels incluent un plug-in Eclipse et un environnement IDE Visual Micro.

 

BeagleBone Black

Relativement nouvelle, BeagleBone Black est la seule carte développée par un fabricant de semi-conducteurs : Texas Instruments. Faisant partie d’une plateforme supportée par une communauté de développement, elle cible les non-professionnels et les développeurs de systèmes embarqués. TI annonce qu’elle peut démarrer Linux en moins de 10 secondes. Son prédécesseur, la BeagleBone, a défini la taille de la carte et les broches E/S qui sont maintenant le standard pour accepter une gamme de modules type Arduino, appelés « capes ». D’emblée, la carte BeagleBone Black se révèle être très différente et beaucoup plus puissante que l’Arduino.

Figure 2 – BeagleBone Black

Elle est plus proche d’un ordinateur monocarte que d’une plateforme intégrée. Produit plus autonome, distinct des séries, la carte Black est animée par un processeur applicatif Cortex-A8 ARM 32 bits 1 GHz AM335x Sitara produit par TI. Elle intègre une mémoire DRAM 512 Mo et une mémoire Flash 2 Go. Équipée d’un accélérateur graphique 3D et d’un accélérateur NEON à virgule flottante, la carte Black vise les applications à plus hautes performances. La connectivité inclut USB, Ethernet, HDMI, ainsi que l’accès à un nombre maximal de 65 broches E/S UG avec embase de 2 x 46 broches, qui peuvent aussi recevoir les « capes » d’extension. Alors que pour l’essentiel l’Arduino est limitée à l’environnement IDE Arduino et à l’exécution de programmes simples, la BeagleBone Black apporte un excellent support logiciel. Il vous suffit de brancher l’alimentation, le clavier, la souris et l’écran, et la carte Black démarre l’OS préchargé Angström Linux. Les options de SE incluent les systèmes Ubuntu et Android. Le site communautaire beagleboard.org permet de charger ces options et bien d’autres. Actuellement, le nombre de « capes » tierces disponibles n’est pas aussi diversifié que les « shields » Arduino, mais elles progressent régulièrement avec le nombre croissant des utilisateurs de la carte BeagleBone Black. Compte tenu des performances plus élevées de la carte BeagleBone Black, les modules disponibles ont tendance à être plus complexes que certains de ceux proposés sur l’Arduino. Mais comme Arduino, la communauté BeagleBoard encourage l’adoption de la BeagleBone Black pour créer des applications commerciales. Tous les fichiers de conception matérielle sont disponibles sous licence open source. Il est demandé aux développeurs de ne pas incorporer la carte telle quelle dans un concept commercial sans une évaluation complète et une autorisation de la communauté BeagleBoard.

Le développement sur une carte BeagleBone Black réserve des surprises agréables. Les débutants et les développeurs plus expérimentés découvrent avec plaisir que dans sa version standard, la carte BeagleBone Black a son propre serveur web pour présenter ses fonctions. En outre, plusieurs pages web illustrent et exécutent un code Bonescript qui procure un accès de type Arduino aux entrées/ sorties. Diverses commandes, telles que digitalWrite() et pinMode(), ne dépayseront pas les habitués des cartes Arduino. Une réplique locale de l’IDE Cloud9 exécutable sur la carte apporte un environnement de développement intégré et adapté à la plupart des applications. Toutes les commandes normales de Linux et les utilitaires de réseau, tels que SSH, sont disponibles. Si les commandes Bonescript permettent de se familiariser et d’utiliser facilement la carte, les développeurs professionnels choisiront plutôt des langages comme Perl, Python et C++, qui sont tous pris en charge avec des IDE tels qu’Eclipse, GCC ou le Code Composer Studio de TI. Grâce à son accès aux entrées/sorties et sa riche documentation, l’ampleur de son support logiciel, les concepts développés sur une carte BeagleBone Black constituent une base idéale pour créer des applications nécessitant une connexion internet, une bonne connectivité d’entrées/sorties et une unité centrale offrant une performance milieu de gamme.

 

Raspberry Pi

Figure 3 – Raspberry Pi – Modèle de carte B

Depuis peu, Raspberry Pi suscite un intérêt renouvelé pour les ordinateurs monocartes. Visant initialement les étudiants des universités, la carte Raspberry Pi est devenue un des produits favoris d’une gamme d’utilisateurs beaucoup plus étendue. Lycées, associations, et autres non-professionnels ont tous conçus des applications pour la Raspberry Pi. D’un point de vue technique, la carte Raspberry Pi Pi est plus proche de la BeagleBone Black que de l’Arduino. Basée sur un système sur puce Broadcom BCM2835, elle est animée par un contrôleur core ARM1176 à 700 Mhz et une RAM de 512 Mo. Vous devrez installer une carte SD de 4 Go ou plus. Diverses versions Linux, telles que Fedora, Debian et Raspian, sont disponibles pour la Raspberry Pi, mais elles ne sont pas préchargées comme sur la BeagleBone Black. Bien que ce facteur ne pose aucun problème pour un développeur professionnel, cela reste une étape supplémentaire qui peut être initialement dissuasive pour un amateur. La connectivité intégrée sur la carte Raspberry Pi inclut les embases USB, Ethernet, HDMI et vidéo composite. Un embase d’extension assure l’accès aux E/S UG en plus des connexions SPI, I2C et alimentation.

Bien qu’elle ne permette pas d’extension E/S UG à la manière de TI ou Arduino, la carte Raspberry Pi a l’avantage d’offrir plusieurs cartes et modules de prototypage tiers qui répondent aux besoins de la plupart des projets. En outre, la Raspberry Pi dispose d’un jack de sortie audio, qui est absent sur la version standard des deux autres cartes examinées ici. La diversité du support Linux permet d’utiliser tous les langages de programmation courant, tels que C/C++, Perl et Python, par exemple. Les outils de programmation visuels comme Sketch sont particulièrement appréciés par les étudiants. Mais l’unité graphique VideoCore 4 GPU intégrée au système sur puce Broadcom apporte un atout précieux à la Raspberry Pi. Elle permet une lecture de qualité Blu-Ray H.264, et supporte les spécifications des bibliothèques OpenGL ES2.0 et OpenVG. Il n’est donc pas surprenant que la Raspberry Pi réponde à une gamme étendue d’applications vidéo HD et offre un support logiciel très riche pour de tels concepts, ce qui reste hors de portée des Arduino et BeagleBone Black.

 

Conclusion

Chaque carte offre aux développeurs professionnels des possibilités spécifiques pour accélérer la conception et le prototypage de leurs projets. Le choix du langage de programmation, les exigences en en termes d’ entrées/sorties, ainsi que les compétences de chacun détermineront la carte sélectionnée. Si un développeur souhaite créer un produit nécessitant un grand nombre d’entrées/sorties pour capteurs, sans pour autant avoir une vaste expérience dans ce domaine, il pourra choisir une carte offrant des tutoriels et un support des plus riches. Quel que soit leur choix, les développeurs ont la certitude qu’avec une carte utilisée par un grand nombre d’ingénieurs, supportée par un accès à des forums spécialisés, ils pourront travailler beaucoup plus facilement que s’ils devaient démarrer avec rien.