Raspberry Pi Vs. Arduino

décembre 19, 2013  |   Actualités,Blog   |     |   8 commentaires

Introduction

Il apparait sur le marché de plus en plus de petits ordinateurs souvent sur une base de SoC ARM. SoC, pour Système on Chip, défini un ensemble de composants embarqués dans une simple puce électronique permettant ainsi d’obtenir de petits ordinateurs à la fois complets, performants, peu energivores, peu couteux, et de la taille d’une carte bancaire.

Parmi ces mini ordinateurs nous avons le Raspberry Pi.

A son coté, nous avons les Arduino, souvent confondus avec ce premier mais basés sur une EEPROM et une interface de developpement accessible au plus grand nombre

Même si au premier abord ces peripheriques semblent semblables, l’utilisation de ceux ci peut être assez éloignée.

Le Raspberry Pi

Les caractèristiques matérielles du Raspberri Pi B Rev2 4G (dernier modèle) sont les suivantes :

Processeur

700Mhz ARM11

Mémoire vive

512 Mo

Réseau

Ethernet 10/100

Affichage

Via HDMI ou RCA

Principaux E/S

Bus I2C, 8xGPIO

Stockage

Carte SD

OS supporté

Debian, Raspbian, Fedora, …

Prix

35 $

Grâce à son prix attractif et à son faible encombrement, il est facile d’en avoir un au fond de son sac, ce qui conduit les utilisateurs à maintenir une communauté active (aussi bien pour décrire le fonctionnement hardware que pour développer de nouvelles applications).

Ses performances interessantes permettent par exemple de faire de mini serveurs Web, des sondes réseau (bien que l’interface ne soit que de 100Mbps) ou même des concentrateurs VPN.

Les Arduino

De leurs cotés les mini devices Arduino sont beaucoup plus nombreux et ont des spécificités bien différentes les uns des autres.

Ils sont donc conçus à base d’EEPROM Atmel ATmega bien moins puissante que les Raspberry Pi.

Prenons l’exemple du modèle Mega2560 :

Processeur

16Mhz Atmel 8bits AVR

Mémoire vive

8 ko

Principales E/S

54xGPIO, 16 Entrées Analogiques

Stockage

4Ko d’EEPROM

Prix

39 €

A la vue de ce second tableau, force est de constater que les performances des Arduino sont bien en dessous de celles des Raspberry Pi. Cependant, nous pouvons constater que qu’il existe bien plus d’entrés/sorties sur cet Arduino. C’est sur ces E/S que le concept d’Arduino repose. En effet, l’idée repose sur l’assemblage de différents modules via ces E/S afin d’arriver à son but. De fait, il existe une multitude de “modules” permettant l’utilisation de technologies telles que le GSM, les ecrans à cristaux liquides, l’ethernet, le Wifi, …

Il est d’ailleur possible d’acheter directement des kits Arduino regroupant plusieurs modules.

Au bout du compte, la modularité des ces périphériques permettent essentiellement d’expérimenter ou de simuler le fonctionnement de différents systèmes.

Conclusion

Cette comparaison nous ammene donc à la conclusion suivante :

Si vous souhaitez utiliser votre mini ordinateur via SSH, avoir des applications déjà existantes et faire des “apt-get”, pouvoir brancher un clavier, une souris et un écran, le Raspberry Pi est le meilleur choix pour vous.

A l’inverse, si vous voulez découvrir comment fonctionne une technologie, que vous aimez pouvoir ajouter de nouvelles fonctions en rajoutant des modules et n’avez pas peur de devoir concevoir du code source pour faire fonctionner vos différents modules alors le Arduino est fait pour vous.

Dans les deux cas, il existe une communauté assez forte afin d’utiliser ces cartes dans toutes les situations possibles et imaginables.

Pour terminer il peut être interessant de citer quelques cartes bien moins connues mais toutes aussi intéressantes :

La Cubietruck : Processeur double coeur ARM, 2Go de RAM, interface SATA, Gigabit Ethernet

La Calao Snowball : ARM, Ethernet 10/100, GPS, BT, Wifi, Acceleromètre, Gyroscope, Magnetomètre, Baromètre

Bibliographie

http://blog.idleman.fr/sommaire-raspberry-pi-arduino-domotique-robotique-et-pleins-de-trucs-en-ique/

http://fr.wikipedia.org/wiki/Raspberry_Pi

http://arduino.cc

http://www.minimachines.net/actu/carte-developpement-cubietruck-dispo-89-10429

http://www.calao-systems.com/articles.php?lng=fr&pg=6186

8 Commentaires pour cet article

    Pollux Sautereau
    juin 12th, 2014 on 19 h 23 min

    Merci pour cet article qui m’a très exactement mis le pied à l’étrier : je viens de découvrir ces petites bébêtes et je crève d’envie de trouver une bonne raison d’en acheter une.

    Il y a quand même moyen de coder, sur le Rasp ? C-like, ou PHP, ou… ?

    La couverture fonctionnelle totale (je veux dire : wifi, gsm, vidéo, capteurs divers, … tous modules confondus) est comparable entre le Rasp et l’Arduino ?

      Nicolas PANHALEUX
      juin 13th, 2014 on 17 h 18 min

      Bonjour,

      Merci pour votre commentaire.

      Pour répondre à votre première question, oui. Vous pouvez parfaitement coder en C ou en PHP.

      Ces petites cartes (ARM) sont généralement livrées avec une distribution sur une base de Debian et disposent d’un certain nombre de paquets pré compilés pour l’architecture ARM (principale difficulté d’exploitation).
      Il est donc tout à fait envisageable d’installer Apache + PHP et d’y placer des pages php.

      Pour ce qui est du C, la méthode la plus pratique est d’installer sur votre PC un cross compiler qui permet de compiler du code (ici du C) pour une architecture de processeur ARM depuis une architecture différente (x86 par exemple).
      Il vous suffira de « pousser » les binaires compilés sur votre carte pour les executer.

      Concernant la couverture fonctionnelle, cela dépend des cartes (et de vos besoins). Certaines (comme les Raspberry) sont peu évolutives car elles ne disposent que de l’USB mais ont le mérite d’être très bon marché.
      D’autre cartes existent et disposent de plus de fonctions et/ou d’entrées. C’est le cas de la Snowball avec ses capteurs GPS, Bluetooth, Wifi, FM, … qui sont intégrés mais elle peut être complétée par des périphériques fonctionnant sur un bus i2c. A l’inverse la Snowball est très difficile à prendre en main et beaucoup moins distribuée.

      Enfin, la différence entre les Raspberry et les Arduinos est importante. Pour l’Arduino, le hardware est très modulable mais la puissance globale de la machine reste faible.
      A l’inverse, les machines à base d’ARM peuvent être très puissantes mais sont conçues pour une exploitation relativement précise.

    Nicolas
    décembre 23rd, 2015 on 18 h 41 min

    Bonjour,

    Merci pour cette article très intéressant. Pour un projet de drone avec 4 helices vous conseillez donc un arduino?

      Nicolas PANHALEUX
      décembre 24th, 2015 on 9 h 38 min

      Bonjour,

      Tout dépend du rôle de la carte que vous voulez installer dans le drone.

      S’il s’agit de faire de la capture de photo/video les cartes de type Arduino risquent d’être un peu faible.

      S’il s’agit d’actionner simplement les hélices du drone et/ou faire des relevés GPS/temperature/… cela pourrait-être suffisant.
      Pour cette usage, je vous recommande de regarder les cartes nodemcu qui ne sont pas des Arduino mais dont l’usage et les caractéristiques sont proches.
      Ces cartes sont vraiment très pratique pour faire des prototypes et disposent de nombreux GPIO.
      Une fois le fonctionnement validé, vous pourrez facilement miniaturiser le système avec une carte de type ESP12-E

    Lucas
    février 21st, 2016 on 15 h 41 min

    Bonjour,

    Je désire fabriquer un métier à tisser de type jacquard (c’est à dire que chaque fil est contrôlé indépendamment des autres).

    Une fois testé le prototype à échelle réduite, cela fera 800 servomoteurs à contrôler indépendamment.

    Que me conseillez-vous puisqu’Arduino a plus d’I/O mais que Raspberry est plus puissant?
    Est-il possible de faire tourner un programme sur un PC afin de lui faire contrôler plusieurs cartes Arduino contrôlant chacune des servo afin de palier le manque de puissance d’Arduino?

    Merci d’avance,
    Lucas

      Nicolas PANHALEUX
      avril 11th, 2016 on 18 h 03 min

      Bonjour,

      Une solution avec 800 servos relève plutôt d’une architecture industrielle.

      Pour effectuer un prototype, je pense qu’il faudrait plutôt trouver un algorithme qui fasse travailler plusieurs machines de concert, le tout piloter par une machine plus puissante.

      A ce jour, nous trouvons des petits modules facilement programmables en LUA (ESP 12-F par exemple à base d’ESP8266) qui disposent d’une dixaine d’i/o et d’un module wifi.

      Je pense qu’il pourrait être envisageable de les faire piloter vos servomoteurs via une file d’instruction transmise en Wifi. A vous de trouver les bons garde fous/mutex pour garantir le bon enchainement des actions 🙂

    f4b1
    novembre 17th, 2016 on 15 h 05 min

    Merci pour ce comparatif entre les différentes solutions possibles entre les différentes cartes ARM sur le marché. Je n’ai pas encore décidé vers quoi me tourner mais bientôt je le sens !

    Taktak nafaa
    février 10th, 2017 on 0 h 39 min

    Salut , merci pour cet article , j’ai besoin de votre aide
    J’ai un projet de commander et suivie a distance d’une station de pompage en laison des PV via une application mobile
    Quelle est la carte que tu me conseillé
    Merci