Le fossé entre Arduino et Raspberry est encore en train de se remplir.
Pour preuve, cette carte de Acmesystems…
Jusqu’ici, on avait d’un coté des microcontrôleurs low cost, temps réel, programmables en bas niveau ou avec des interpréteurs limités (majoritairement du C, parfois javascript,basic ou python).
Ce sont les Arduinos, pics, et dans une certaine mesure les cortex M3/M4.
De l’autre, des cartes qui sont plus des « pc monocarte », à l’instar du Raspberry Pi ou du Beaglebone :
Un matériel minimal, qui permet de faire tourner un linux.
Quelques E/S, et des drivers système qui permettent de les actionner.
Coté prix, c’est nettement plus cher.
L’Arietta G25
Avec l’Arietta, ça devient presque de la science fiction.
La carte n’est pas plus grosse qu’un Arduino nano: 53x25mm
Elle coute 20€ dans sa version de base, et c’est un produit Italien (ça change des US et de la chine !)
Coté hardware, on a :
- Un processeur Atmel AT91SAM9G25, un ARM9 qui tourne à 400Mhz
- Un lecteur de carte micro SD
- 128 ou 256 Mo de RAM
- Un port mini USB
- un connecteur 40 pins pour les E/S
- une led
- un bouton poussoir
- un connecteur pour module WIFI (7€)
- un port pour interface debug
Coté E/S, c’est la fête puisque sont exposés 3 ports USB, 3 ports série, 2 bus I2C, 1 bus SPI, 4 PWM, 4 convertisseurs A/N, un bus I2S…
On peut utiliser un bus USB en tant que USB to LAN et donc avoir un accès réseau…
Le soft ?
La carte boote sur une SD (pas de mémoire flash dans ce processeur) et est compatible Linux.
Une debian Wheezy 7.6, Kernel linux 3.16.1 sont disponible.
Le firmware est open source.
Une IDE en mode WEB est même présente sur la carte (http://codiad.com/) : un simple navigateur permet donc de développer directement sur la carte.
Arietta VS Arduino
La grosse différence avec un Arduino, c’est qu’ici, par défaut, on n’est pas seuls sur le système.
On est sur un linux, et on peut donc programmer en python, c, java, php, node JS…
Avec la carte wifi optionnelle, le module est complètement autonome et permet donc des applications « internet des objets » assez poussées et avec un temps de développement court, grâce à tous les outils et drivers linux disponibles.
La doc
Coté doc et exemples, s’il y a encore à faire, le site officiel est bien fourni et propose des exemples d’interface avec webcam, convertisseur analogique, bus i2c, capteur de distance ultrason, panneau de leds, écran tft….
bref, il y a de quoi démarrer sans trop patiner.
Mieux encore, vous trouvez des exemples et tutos en français chez kiwil-dev (ça s’arrose !)
Alors, c’est top ?
Ce que je trouve Top, c’est le rapport performances/prix de la carte.
Par rapport à un Arduino, c’est bluffant !
Top aussi, la facilité de développement pour des applications wifi autonomes, de l’internet des objets : grosse facilité de mise en oeuvre, sans avoir à entrer dans les arcanes des registres de configuration du processeur.
J’aime, vu le format de la carte, la possibilité de l’utiliser comme « compute module » pour des calculs massivement parallèle.
Bien sur, en puissance pure c’est moins qu’un raspberry; mais vu le format et le prix, ça peut être sympa…
Ce qui me chiffone, c’est d’une part ce qu’on perd en passant en mode « linux » : on n’a plus de vrai temps réel, pas autant de souplesse (gestion des timers par exemple), et on dépend de drivers système pour les périphériques non standard.
Plus inquiétant peut être, dans l’esprit hacker, le fait que l’on perde de vue le matériel.
Autant sur un Arduino, voir sur un cortex en mode barebone on sait exactement ce qu’on fait, au registre près, autant ici on travaille en haut niveau, avec plusieurs couches d’abstraction et de drivers entre notre code et notre matériel. On ne maitrise plus toute la chaine.
Et a-t-on vraiment besoin d’un linux embarqué pour faire clignoter une led ou dialoguer un capteur en wifi ?
Ca me semble du gachis.
Personnellement, je pense que je préfèrerais jouer avec cette carte en mode « barebone », en la considérant comme un Arduino dopé aux amphets plutôt que comme un petit linux.
Références
description du boot pour les aventuriers qui voudraient tester en mode « barebone » : http://www.acmesystems.it/compile_at91bootstrap
A noter que Acmesystems propose d’autres cartes elles aussi très intéressantes 🙂