View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Symbiose Numérique Arduino/PC : le concept

Par X. HINAULT - 05 Avril 2011.

Forces et faiblesses de la carte Arduino

  • Avec une carte Arduino, la mise en oeuvre du contrôle du matériel, l'utilisation de capteurs, de modules complexes, etc... est grandement facilitée et relativement simple à mettre en oeuvre. De plus, l'IDE Arduino étant basé sur l'interface Processing, c'est tout naturellement que cette interface permet de réaliser des interfaces graphiques évoluées sur le PC pouvant communiquer avec la carte Arduino via le port Série USB.
  • La limite cependant d'une carte Arduino va cependant se faire sentir dès lors que l'on aura besoin de puissance de calcul importante, ou bien que l'on voudra développer des applications utilisant le son, la reconnaissance visuelle, la capture d'images ou de vidéo, etc... Il faudra alors ajouter des modules nombreux dont le coût total va vite monter en flèche.

Forces et faiblesses du PC

  • A l'inverse, avec un PC, le contrôle direct du matériel est assez complexe, quand ce n'est pas tout simplement inaccessible... Un PC n'est pas prévu pour çà d'ailleurs...
  • Par contre, un PC offre des capacités de calcul très intéressantes, et surtout permet de mettre en oeuvre assez facilement des fonctions élaborées à l'aide de l'interface Processing, qui est communicante avec une carte Arduino via le port Série.
  • De plus, un PC intègre des applications très utiles telle que la lecture de fichier son, la synthèse vocale,

Arduino et PC : une alliance naturelle

  • Dès lors, la mise en oeuvre simultanée d'une carte Arduino et d'un PC potentialise les forces des 2 plateformes qui se complètent naturellement. Devant l'apparition de PC de petite taille ayant une autonomie importante tel que les eeePC, et de coût peu élevé, supportant les systèmes d'exploitation libre tel qu'Ubuntu, il devient très tentant d'utiliser simultanément un eeePC et une carte Arduino pour réaliser des projets élaborés plutôt que de multiplier les modules et shields dédiés...
  • Voici un schéma parlant :

Arduino et PC embarqués : un potentiel fabuleux !

  • A capacités égales (son, vidéo, etc...), un système embarqué Arduino + PC revient moins cher qu'un système embarqué Arduino + Shields dédiés. Par exemple, un système avec télémétrie données, reconnaissance visuelle, synthèse sonore, retour vidéo distant, etc... va facilement coûter dans les 300 Euros... On trouve des eeePC neufs pour moins que çà, et même d'occasion sur eBay dès 100 Euros... !
  • Par rapport à une carte avec Linux embarquée classique (base ARM par exemple), la solution eeePC embarqué est nettement plus simple à mettre en oeuvre !! Pas de noyau à configurer, pas de problèmes de drivers (ou presque), batterie, écran, etc... disponibles. Et les premiers eeePC tactiles arrivent sur le marché... donc on aura même l'accès tactile prochainement...
  • Mais l'alliance eeePC + Arduino embarqués offre des possibilités qu'un système Arduino + Shields ne pourra jamais fournir à savoir,l'accès à distance au bureau du PC embarqué et donc LA MAITRISE TOTALE A DISTANCE ET SANS FIL de la programmation de la carte Arduino distante à partir du poste fixe !! Ceci sera loin d'être négligeable si l'Arduino distante se trouve au fond du jardin, sur un robot qui se ballade dans la maison. On aura également le retour vidéo, son, etc... On disposera également sur le eeePC distant de la possibilité d'exécuter des lignes de commande par programmation et donc d'utiliser des logiciels du PC embarqué, tel que la synthèse vocale...
  • De plus, comme on va le voir, il ne sera pas nécessaire de modifier les programmes Arduino pouvant tourner en local pour les adapter sur une communication distante : des interfaces Processing en cascade réaliseront un pont "transparent" permettant d'utiliser un même programme aussi bien en local qu'en distant !
  • A côté du prix, il faut également prendre en compte l'efficacité du développement : grâce au PC embarqué couplé à l'Arduino, on dispose d'une facilité de développement énorme puisque l'Arduino embarqué est accessible "in situ", avec retour de la télémétrie de capteurs par exemple. De plus, le fait d'utiliser une distribution Gnu/Linux standard telle qu'Ubuntu donne accès d'emblée à de nombreux utilitaires et logiciels qui rendent le développement beaucoup plus aisé qu'avec une plateforme de Linux embarqué classique, pour un coût comparable, voire moindre. Et par rapport au nombreux shields, côté Arduino, le codage est simplifié, car on s'épargne l'utilisation de librairies suplémentaires ainsi que la prise en main parfois laborieuse, les tâches évoluées étant confiées au PC (vidéo, analyse visuelle, etc...)
  • Autre point important : toutes les fonctions avancées reportées sur le PC sont développées à partir de ressources libres et vont pouvoir être modifiées par programmation. Par exemple, si on utilise un shield de reconnaissance visuelle, on n'aura pas accès au micrologiciel du shield... alors qu'avec un eeePC embarqué, on va utiliser la librairie OpenCV qui va permettre de programmer ce que l'on veut... Donc, le couple Arduino+eeePC embarqué permet de garder la main au maximum.
  • En bref, que du bon aussi bien en ce qui concerne les coûts, les potentialités de développement, l'efficacité du codage, etc... En quelques heures, vous faîtes ce qui aurait pris des jours voire des semaines avec des shields classiques...

Pleins de questions se posent alors...

Un eeePC embarqué va-t-il fonctionner sur batterie ?

  • si l'utilisation embarquée est de quelques heures, la batterie du eeePC permettra d'alimenter l'ensemble Arduino + eeePC sans difficultés.
  • si l'utilisation embarquée est de plus longue durée, il sera possible d'utiliser une batterie 12V sur laquelle soit on branchera un convertisseur 220V pour alimenter l'alim du eeePC (15% de pertes d'énergie...), soit on pourra utiliser un adaptateur allume-cigare => eeePC pour le modèle utilisé.

Un eeePC embarqué : quel modèle utiliser ?

  • Pour communiquer avec Arduino, on a besoin d'Ubuntu, de Java, de Processing, de IDE Arduino... çà passe sans problème sur un eeePC 904.
  • Après, c'est selon ce qu'on veut faire : pour un projet peu gourmand, un eeePC 700 pourra même suffire !

Pour de la reconnaissance visuelle, etc... un eeePC 904 y arrive très bien !

  • Pour info, le 700 est le premier modèle des eeePC et le 904 un modèle qui a déjà 2 ou 3 ans... Même sur ces modèles là, çà passe bien. Les modèles les plus récents donnent des résultats encore meilleurs. Voir ici pour un comparatif par modèle des eeePC sous Ubuntu : http://doc.ubuntu-fr.org/asus_eee_pc (cette page donne une vue d'ensemble des modèles existants).

Et si je n'ai pas besoin de l'écran, je fais comment ?

  • Sous Ubuntu, il est possible de désactiver la mise en veille du eeePC lors de la fermeture de l'écran : l'écran s'éteint à la fermeture, mais le PC reste actif. On peut également désactiver toutes les mises en veille non souhaitée.
  • Ainsi, le eeePC devient un boitier avec 3 LEDs allumées, tel un serveur embarqué. Et on pourra quand même accéder au bureau à distance et réaliser des opérations sur le eeePC bien que l'écran soit fermé !

Le eeePC nécessitera un login à la mise sous tension...?!

  • Et bien là encore, il est possible de désactiver le login pour un utilisateur et on pourra ainsi avoir un eeePC qui démarrera à la mise sous tension.

La connexion wifi nécessitera un mot de passe utilisateur pour être lancée sous Ubuntu ..?!

  • Normalement, en cas de login automatique, un mot de passe serait effectivement demandé... sauf si la connexion est paramétrée en accès pour tous les utilisateurs, ce qui se fait simplement. Ainsi, pas de problème : la connexion wifi se fera automatiquement à la mise sous tension.

Au total, de la même façon que la carte Arduino démarre toute seule à la mise sous tension, on pourra avoir un eeePC qui démarrera tout seul à la mise sous tension et se connectera tout seul au wifi...

Et çà n'existe pas des petit PC embarqués à part les eeePC ?

  • Et bien si, çà existe... On peut se construire un PC embarqué minimaliste pour 150 euros environ... Voir notamment : http://www.mini-itx.com/
  • Mais bon, là encore on va se rendre compte que le eeePC est un excellent compromis, car la batterie est intégrée, les périphériques sont intégrés, etc... et on est sûr de pouvoir installer Ubuntu !

Comparatif eeePc + Arduino embarqué et Arduino+Shields

FonctioneeePC+Arduino embarquésArduino+shields embarqués
Télémétrie distanteOUI (100m et +)+ shield XBee x 2 (+100E)
Programmation de la carte Arduino à distanceOUI+/- oui si XBee ou équiv
Affichage graphique couleur embarquéOUI+ shield afficheur couleur TFT (50E
Stockage SDCardOUI+ shield SD card (15E)
Disque durOUInon
Capture images/vidéosOUI+ module webcam (+60E)
Retour vidéoOUI+ module vidéo HF (+100E)
Lecture fichiers sonsOUI+ module restitution vocale (50E)
Reconnaissance visuelleOUI+ module CMU CAM
Synthese vocaleOUI+ module synthese vocale (100E)
Réseau EthernetOUI+ module ethernet (40E)
Reconnaissance VocaleOUI sur PC fixe+ module reco vocale (+ 80E)
BatterieOUI+ accus (20E)

Rien que sur ce qui est listé ici, on a pour 300 à 400 Euros de shields pour avoir l'équivalent du couple eeePC + Arduino... à comparer au prix d'un eeePC neuf dès 250 Euros...et même moins d'occasion !

Question : et on les met où tous ces shields ??

On pourra toujours dire que l'on n'utilisera jamais toutes les fonctions simultanément... certes... mais sur un robot un peu évolué, on est bien content d'avoir sous la main toutes ces fonctions sans avoir à modifier le montage... la synthèse vocale, la capture vidéo, la télémétrie des capteurs, c'est loin d'être inutile dans ce cas là.. !!

Donc, pour avoir le maximum de fonctions évoluées au meilleur coût, le couple Arduino/PC embarqué apparaît être une excellente solution !! D'autant que le eeePC qu'on achète pour çà, il pourra toujours servir à autre chose lorsque le robot sera dans le placard... alors que les 400 euros de shields... ils resteront dans le placard... !!.