1.3 Comparaison d’Arduino et de Raspberry Pi

Arduino et Raspberry Pi contiennent des microcontrôleurs et sont les plateformes les plus répandues pour le prototypage d’objets connectés. Il en existe une quantité d’autres plus ou moins similaires, variant en prix et en ressources disponibles. Voici une comparaison de ces deux plateformes. Les principales différences sont les ressources et les connecteurs disponibles, et la présence du système d’exploitation sur le Raspberry Pi seulement, avec tous les avantages qui en découlent. Pour commencer, voici les différentes ressources et les différents connecteurs. On peut les voir sur les images Figure 12 — Arduino, ses ressources et ses connecteurs et Figure 13 — Raspberry Pi, ses ressources et ses connecteurs.

Figure 12 — Arduino, ses ressources et ses connecteurs

Figure 13 — Raspberry Pi, ses ressources et ses connecteurs

Ensuite, le tableau suivant présente un résumé des différences quand on veut développer des objets connectés à partir d’un Arduino ou d’un Raspberry Pi.

Tableau 2 : Comparaison d’Arduino et de Raspberry Pi
Arduino Raspberry Pi
Pas de système d’exploitation; Système d’exploitation basé sur le noyau Linux;
Utilise un langage de programmation compilé, comme C ou C++; On peut utiliser un langage interprété comme Python;
On doit développer sur un ordinateur et on envoie notre programme à l’Arduino via USB; On peut développer directement sur le Raspberry Pi en y attachant clavier, souris et écran, ou en s’y connectant à distance;
Un seul programme à la fois; Plusieurs programmes possibles;
Pas de débogueur; Débogage plus facile;
Mémoire interne limitée; Système de fichiers;
Ressources et matériel minimaux; Plus de ressources (nécessaires pour supporter un système d’exploitation) et de matériel;
Ajout de cartes supplémentaires (shields) pour étendre les fonctionnalités; Beaucoup de fonctionnalités et de connecteurs déjà présents; Ajout de cartes d’extensions (hats) possible;
N’intègre directement ni la connectivité réseau ni le sans-fil; Ajout de cartes supplémentaires pour la connectivité réseau Ethernet et Wi-Fi présents;
Permet de lire directement les entrées analogues. N’interface pas directement avec des signaux analogues;Nécessite l’utilisation d’un convertisseur analogue à numérique.

Voici des images présentant les deux environnements de développement. L’environnement d’Arduino permet de coder, vérifier et compiler le code avant de le transférer. L’environnement de Raspberry Pi est celui par défaut dans le système d’exploitation, mais il est possible d’en installer un autre ou de développer sur un autre ordinateur dans l’environnement de notre choix.

Figure 14 — Environnement de développement Arduino

Figure 14 — Environnement de développement Arduino

Figure 15 — Environnement de développement Raspberry Pi

Figure 15 — Environnement de développement Raspberry Pi

Finalement, les schémas suivants illustrent le processus du développement de la programmation à l’exécution pour chacune des plateformes.

Programmation d'Arduino. Une description longue suit. Le code informatique en langage C ou C++ est développé sur un ordinateur, puis compilé en code assembleur et finalement transféré via USB sur l'Arduino pour être exécuté.

Figure 16 — Processus de développement avec Arduino

Programmation Raspberry Pi. Le code Python est développé, exécuté, et débogué directement sur la plateforme.

Figure 17 — Processus de développement sur Raspberry Pi