View  Edit  Attributes  History  Attach  Print  Search

PC embarqué

Par X. HINAULT - 2010

1.  L'idée générale

  • Gnu/Linux embarqué sur base ARM s'apparente à mon avis à la croix et la bannière pour un résultat décevant... et chronophage en terme d'installation et de développement, tout du moins avec l'objectif d'utiliser Arduino et Processing en embarqué afin de profiter de tout leur potentiel. (Juin 2011)
  • Pourtant, l'utilisation de Processing et Arduino sur un PC fixe permettent une rapidité de développement et une polyvalence impressionnante pour mettre en oeuvre des fonctionnalités matérielles diverses. D'où l'idée d'embarquer carrément une base x86, autrement dit un PC, pour pouvoir disposer d'Arduino + Processing embarqué afin de disposer de la puissance de développement de cette solution et bénéficier des puissantes librairies de capture vidéo reconnaissance visuelle, etc.. et logiciels performants existants (synthèse vocale, etc..) basé sur une distribution Gnu/linux éprouvée et facile à mettre en oeuvre !
  • En pratique, il se trouve qu'une telle solution est techniquement réalisable de façon acceptable en terme de poids et de taille tout en étant d'un coût comparable (voir inférieur) aux solutions Linux embarqué en vogue (Beagle Board notamment..), sans compter l'énorme gain de temps en terme de mise en oeuvre et de maintenance...
  • En quelques minutes, voire, heures, on dispose d'un système embarqué opérationnel, accessible par wifi, permettant le contrôle de motorisation, etc.. à l'aide d'Arduino !! Difficile de faire mieux... sans compter que l'on dispose du coup d'un nombre de paquets logiciels impressionnants permettant de faire face en quelques minutes à toutes sortes de besoins.
  • L'idée maîtresse ici, c'est de pouvoir faire sur la plateforme embarquée tout ce que l'on fait sur un PC fixe avec Arduino et Processing, sauf qu'on le fera sans fil par wifi. Donc, le plus simple est d'utiliser une base x86 embarquée. Cette idée paraîtra un peu "cavalière" aux puristes de Linux embarqué, mais c'est la méthode qui permet de se concentrer sur l'écriture de code utile, plutôt que de passer son temps à régler des problèmes techniques liés à la gestion des paquets qui n'existent pas où ou de compatibilité logicielle... quand il ne s'agit pas de tout simplement réussir à installer une distribution opérationnelle de base !
  • De plus, l'utilisaton d'Arduino permet d'utiliser immédiatement et rapidement la gestion des E/S matérielles depuis la plateforme Linux embarqué, ce qui simplifie grandement la vie !

La transposition des codes opérationnels en communication PC/Arduino sur un poste fixe est immédiate sur la plateforme embarquée.

En bref, après 1H de manip', on dispose d'une base PC embarquée avec Arduino, Processing, reconnaissance visuelle, synthèse vocale, accès au bureau distant par wifi, programmation distante de la carte Arduino, etc... En comparaison, même après 3 jours ou plus de travail autour d'une base ARM, en faisant de la cross-compilation (compilation croisée) acharnée, en tapant de la ligne de commande comme vous ne l'avez jamais fait... vous n'êtes même pas sûr d'arriver à au même résultat !

PCEMBARQUEReflexionEmbarque

2.  Réflexion autour de l'embarqué

2.1  Définition d'un système embarqué

  • A mon sens, dans un cadre amateur on peut définir un "système embarqué" comme un système qui ne sera pas alimenté par une source de tension 220V classique disponible, mais à partir de batteries 12V (ou autre).

2.2  Les situations concrètes :

Ensuite, on peut distinguer plusieurs situations :

  • "faiblement embarqué" : l'alimentation 12V embarquée est "grosse" ou peut l'être sans problème : ce sont toutes les situations où l'on dispose d'une batterie 12V de plusieurs dizaines voire centaine d'ampères-heure (Ah). C'est le cas dans une voiture, dans un bateau, un camping-car ou encore sous abri. Le poids n'a ici aucune importante. Cette situation est la plus simple à gérer en pratique, le système embarqué pouvant fonctionner plusieurs dizaines d'heures, voire jours sans problème, voire même en continu si on prévoit une recharge régulière par panneau solaire ou alternateur.
  • fortement embarqué : l'alimentation 12V embarquée ne pourra être que d'un poids limité. C'est typiquement la situation d'un robot ludique. Ici, on ne dispose que de quelques Ah. Le poids de la batterie est déterminant. La durée d'utilisation continue ne pourra au mieux être que de quelques heures, à moins de dimensionner le robot à la hausse pour pouvoir embarquer les batteries. On pourra contourner partiellement ce problème en travaillant sur une source de tension fixe en phase de développement et n'utiliser la batterie embarquée que lors des périodes où cela est déterminant.
  • "hautement embarqué" : ici, l'ensemble du système doit être d'un poids le plus faible possible. Ainsi d'un système volant (plateforme cerf-volant ou tricoptère). Dans ce cas, il faudra dimensionner le plus faiblement possible la consommation du système embarqué pour avoir le poids minimal de batterie. Ou alors, il faut redimensionner à la hausse le système volant pour pouvoir embarquer le plus petit système réalisable. Une autre manière de contourner le problème est d'assurer l'alimentation par un système filaire de raccordement à une batterie qui resterait au sol.

3.  Choix de la plateforme embarquée, plateforme testées

PC embarqué

3.1  Le cahier des charges

  • Arguments de choix d'une plateforme :
    • taille,
    • prix,
    • poids,
    • puissance calcul nécessaire,
    • alimentation DC 12V,
    • temps de mise en oeuvre raisonnable,
    • compatible Ubuntu
    • et Arduino/Processing,
    • utilisation de ressources standards par ailleurs (wifi, ethernet, format de fichiers sons, etc... )
  • taille : le plus petit est le mieux. Disons qu'un format embarqué acceptable est grosso-modo la taille d'une demi-feuille A4, soit environ 15cmx21cm sur une épaisseur de 3cm...
    • un eeePC 900 est dans ces dimensions, un eeePC 1001 sera un peu plus grand, de l'ordre de 25cmx20
    • une carte mini-ITX fait 17cm x 17cm, une nano-ITX est plus petite, une pico-ITX fait 7cm x 10cm !
  • prix : le prix doit être le plus bas possible et disons "raisonnable" pour une application dédiée embarquée, et en tout cas, dans le même ordre de grandeur qu'une base embarquée classique type ARM, de l'ordre de 150 €.
    • A titre indicatif, une carte Beagle Board (base ARM) se vend dans les 150 €. 150 € : ceci semble être un prix raisonnable pour le matériel d'un système embarqué complet opérationnel (carte mère + processeur + RAM) sur alimentation DC (12V ou équiv), avec ethernet, USB, carte graphique, carte son, et support de masse (HDD ou SSD) intégrés et accessoires utiles (wifi, webcam).
    • Une autre façon de voir les choses, dans une approche "Arduino" est de considérer le coût cumulé de shields permettant d'obtenir des fonctionnalités comparables (wifi, ethernet, carte SD, audio sons et synthèse vocale, webcam et analyse d'image)... Dans ce cas la facture monte vite, et un système embarqué à 150 € reste largement inférieur à des fonctionnalités équivalentes par shields Arduino.
  • poids : là encore, le mieux est le poids le plus faible. Ici, l'un des objectifs de référence est l'utilisation sur un robot mobile. Un poids de l'ordre du kilogramme semble être un maximum à ne pas trop dépasser. Un autre objectif de référence est l'utilisation à bord d'une plateforme embarquée sur ballon sonde par exemple. Là aussi, on peut difficilement dépasser le kilogramme. L'idée est globalement une mobilisation facile (sur soi, en bateau, en voiture, en camping-car, jardin, etc...) : l'objectif 1Kg semble raisonnable, des poids inférieurs pouvant même être visés, tout en sachant que s'y ajoute le poids de l'alimentation...
  • alimentation DC 12V : il s'agit là d'un point essentiel de la plateforme embarquée : elle doit être alimentée et alimentable sur une source à courant continu (DC) stable, mais pas nécessaire régulée, pouvant délivrer 4 ou 5A environ en pointe. L'exemple type est la batterie 12V de voiture. Exit donc les alimentations sur source 220V vers DC sauf cas particuliers où le 220V est disponible.
  • basse consommation : La plateforme doit également pouvoir être autonome un temps raisonnable, de quelques heures à plusieurs jours, sur sa source d'alimentation ou alimentée par panneau solaire, ce qui suppose une consommation basse. L'objectif est une base embarquée x86 consommant de l'ordre de 20 à 30 W maximum.
  • puissance calcul nécessaire : avec comme projet de référence un PC embarqué sur un robot mobile capable de réaliser de la reconnaissance visuelle et du traitement d'image ou encore de l'affichage permanent de type "oscilloscope", il est nécessaire de disposer d'une puissance de calcul conséquente. Là encore, le plus sera le mieux, dans la limite d'un coût raisonnable. D'après les essais réalisés, un processeur type Atom Intel Dual Core (4 threads) donne de bon résultats (D510 ou D525 ou équiv.. Juin 2011) et reste raisonnable en terme de coût. La fréquence de processeur utilisé ne devra cependant pas être trop élevée sous peine d'avoir une consommation électrique plus importante : 1,6 Ghz est un bon compromis en pratique.
  • temps de mise en oeuvre raisonnable : même si ce point ne semble pas essentiel à première vue, en pratique il est très important. En effet, il suffit d'avoir tenté d'installer une distribution Gnu/linux dite "embarquée" sur une plateforme de type ARM pour comprendre ce que "temps de mise en oeuvre raisonnable" veut dire... Le but premier est de se concentrer sur les développements liés aux fonctions utiles de la plateforme embarquée, pas d'installer le système de base. A ce titre, la distribution Ubuntu et ses variantes donne en pratique d'excellents résultats puisque l'installation du système de base pourra se faire raisonnablement en moins d'une demi-heure sur une plateforme compatible.
  • compatible Ubuntu : dans la lignée du temps raisonnable, le choix se porte tout naturellement sur la distribution Ubuntu et ses variantes qui s'installe simplement à partir d'une clé USB-live. De plus, cette distribution propose une quantité de paquets impressionnante qui permet de faire face en quelques minutes à tous les besoins utiles. Le support de la communauté est par ailleurs très efficace.
  • compatible Arduino/Processing : le système embarqué doit pouvoir supporter l'exécution en embarqué des logiciels Arduino et Processing, ce qui suppose l'exécution embarquée de Java également. Avec les 2 logiciels Arduino et Processing en embarqué, on disposera de fonctionnalités très intéressantes :
    • communication par réseau wifi entre interfaces processing embarquée et fixe
    • programmation de la plateforme embarquée à distance et sans fil via réseau wifi grâce à l'accès au bureau distant du PC embarqué depuis un PC fixe.
    • utilisation des fonctions graphiques propres de Processing (traitement d'image, gestion de fichier et datalogging de donnée) et des librairies avancées de Processing, notamment communication Série avec la carte Arduino, openCV pour la reconnaissance visuelle, gestion réseau, gestion vidéo, la gestion programmée en ligne de commande de programmes système pour la synthèse vocale ou la lecture de fichier sons, etc...
  • supportant logiciels spécifiques utiles : le système embarqué devra pouvoir exécuter en embarqué des logiciels spécifiques utiles tels que la synthèse vocale ou la lecture de fichier sons, donnant accès une utilisation simplifiée sur un robot mobile. L'utilisation de logiciels avancés tel que Blender (3D) devra également être possible...
  • utilisation de ressources standards par ailleurs (wifi, ethernet, format de fichiers sons, etc... ) : l'utilisation des ressources standards devra être supportée, notamment connexion réseau Ethernet, connexion Wifi, lecture des fichiers sons courant, etc... Là aussi, le gain de temps sera appréciable. Par exemple, l'utilisation d'un fichier sonore consistera simplement à télécharger sur internet le fichier voulu et à le lire sur la plateforme embarquée tel quel, sans avoir à l'alléger ou autre...

3.2  EeePC et netbook

  • Modèles testés :
    • eeePC 904 (occaz' - 150 Euros)
    • eeePC 1001PX (250 Euros neuf) (Atom N450 corex1 / threadsx2 | RAM 1Go | DD 160Go | wifi | ethernet 10/100 | USBx2)
    • netbook LDLC (270 € neuf) (Atom N550 corex2/threadsx4 | RAM 1Go | DD 250Go| wifi |ethernet 10/100 | USBx3) Livré sans OS installé - Ubuntu 10.04.2 installée sans problèmes par clé USB-live

3.3  PC embarqué autour d'une carte mini-ITX (17x17cm)

  • carte mini-ITX (160€ neuf avec alim pico PSU 12V + HDD + RAM) (Atom D510 corex2/threadx4 | RAM 1Go | DD 160 Go | ..) à venir

3.4  Autres mini-PC

Voici quelques autres possibilités existantes :

  • Giada PC slim : un miniPC dans un boitier ultra-fin avec USB, wifi, ethernet... 600g... sans OS... vendu 370 € (Juin 2011) - à suivre ...

3.5  Du côté des bases ARM

  • Ubuntu propose uns distribution sur base ARM mais il semble, d'après ce que l'on trouve sur le web, que les tentatives d'exécution de Processing sur ces plateformes se solde par un échec (Juin 2011)
  • une plateforme en vogue sur laquelle Ubuntu semble pouvoir tourner : la Beagle board. A noter 150 € environ... ce qui la place dans les mêmes eaux qu'une base mini-ITX brute opérationnelle. L'avantage par rapport à une base x86 ne semble pas évident d'un point de vue mise en oeuvre...
  • le projet RasberryPi : Un tout mini PC de la taille d'une boite d'allumettes sur base ARM, sous Ubuntu, annoncé à 25 € !! Voir ici : http://www.raspberrypi.org/ ... à suivre également... Octobre 2012 : voir mes pages consacrées au RaspberryPi

3.6  Conclusion provisoire

  • La tendance est là : il devient possible dès à présent d'envisager d'utiliser un PC embarqué pour un robot ou tout autre projet nécessitant de la puissance calcul, pour un coût acceptable
  • L'avenir devrait logiquement mettre à disposition des plateformes x86 de plus en plus petites, de plus en plus performantes... permettant d'embarquer toujours plus de fonctions évoluées basées sur des ressources logicielles libres sur des robots qui seront de véritables compagnons numériques (reconnaissance vocale, visuelle, etc... ).

4.  Comparatif rapide des solutions EeePC/Netbook versus carte ITX embarquée

PC embarqué

Thème EeePC/Netbook Carte ITX
Prix Dès 250€ sans OS avec boitier, écran, clavier, batterie Dès 150€ sans OS sans boitier, sans écran, sans clavier, sans batterie
Alimentation Carte Mère Intégrée, sur batterie via convertisseur 12V/220V + adaptateur 220V-19V/3A ou sur secteur avec adaptateur 220V-19V/3A PicoPSU (alim ATX miniature), sur batterie externe sans adaptateur possible ou adaptateur 220V-12V/2A. A noter certaines cartes

ITX sont alimentables directement via 12V DC, mais souvent surcoût de 30€ euros... Si pb, il faudra changer la carte entière...

Consommation sur 12V 3 à 4 A 1,2A typ.
Ventilateur Oui Non. Totalement silencieux
Clavier Oui Non mais possible. Clavier émulé dispo avec une souris au besoin.
Touchpad / Souris Oui / Non mais possible Non mais possible / Non mais possible.
USB 2 à 3 selon modèle de 4 à 8 typiquement
Sons Oui Oui
Port Parallèle Non Oui (+/- connecteur arrière)
Sortie VGA Oui Oui
Sortie Vidéo Selon modèle ? oui selon modèle.
Boitier Boitier intégré plastique peu modifiable Boitier mini en acier M350 ou autre, idéal et polyvalent pour robot, pouvant même faire office de châssis. Nombreuses possibilités de fixation (sur rail, arrière écran, etc.. ).
  • Conclusion provisoire : un PC embarqué construit sur une carte ITX donne le meilleur prix de départ, le meilleur poids et permet une alimentation 12V sur batterie/accumulateurs, et ne comporte ni clavier, ni écran qui ne sont pas utiles en pratique, tout en laissant la possibilité d'en utiliser au besoin. Côté connectique, on dispose de la plus grande souplesse notamment au niveau des ports USB

5.  Solution base carte mini-ITX (17x17cm)

5.1  Matériel

Boitier

  • Boitier acier M350

Carte Mère mini-ITX

  • la carte mère mini-ITX D510 (Atom x2 (threads x4) - 1,66Ghz )

Alimentations embarquées

  • Alimentation picoPSU 80W

RAM

Disque Dur

5.2  Mise en oeuvre de la carte mini-ITX D510

  • Montage brut et mise sous tension
  • Premier lancement sur clé USB-live
  • Installation Distribution Ubuntu 10.04 LTS
  • Test consommation électrique

Test réalisé avec les programmes de la page suivante :

La consommation de fonctionnement en 12V DC est donc de 1600mA (avec HDD 3"5 7200 tours) soit une puisssance d'à peine 20W ! D'autre part, l'utilisation de cette carte est possible avec une alimentation sur batterie 7Ah avec une autonomie théorique de l'ordre de 3H, ce qui est à priori suffisant pour un robot. L'alimentation est d'autre part possible par transfo 12V/2A.

  • Test capacités graphiques sous Processing (suivi objet, visage...)
  • Test sons
  • Test programmation Arduino
  • Test accès au bureau distant (éthernet et wifi)
  • Montage dans boitier M350

5.3  Montages / applications

cf PCtoArduino et inversement...

6.  Concept de symbiose Arduino/PC

Voir : * Le concept de "symbiose numérique" Arduino / PC

Exemple type d'utilisation potentielle avancée avec "serveur" Arduino/PC embarqué :

Voir également : Principe général de déploiement d'un programme Arduino utilisant le port Série en local vers un réseau (boucle locale, ethernet ou wifi)

PCEMBARQUEPreparationNetbook

7.  Préparer un eeePC ou un netbook ou une carte mini-ITX embarqué sous Ubuntu.

PC embarqué

Il faut bien comprendre tout l'intérêt d'un eeePC/netbook ou carte mère mini-ITX embarqué accessible sans fil par réseau wifi : il devient dès lors possible de programmer, exécuter, tester, afficher, etc... ce que l'on souhaite sur le eeePC/netbook ou carte mini-ITX embarqué à partir du PC fixe local, sans aucune intervention manuelle côté PC embarqué, avec une portée standard de 50 à 100m, pouvant aller jusqu'à plusieurs centaines de mètres au besoin.

7.1  Introduction

Les étapes préparatoires nécessitent d'avoir :

  • un clavier et souris opérationnels,
  • un écran connecté
  • une clé wifi ou une carte wifi active sur le PC
  • une connexion réseau éthernet avec accès internet ou wifi active

Une fois que la procédure pour rendre le PC embarqué sera terminée, il sera possible de déconnecter clavier, écran, souris. Le PC embarqué sera autobootable (sans login), autoconnectable au réseau wifi (sans login) et sera directement accessible par VNC depuis un PC fixe !

Voici les étapes en partant de zéro (du eeePC "brut" au eeePC embarqué opérationnel) :

Etapes manuelles

Installation des paquets utiles

  • Installation de logiciels systèmes utiles :
    • Activer le dépot Partner
    • +/- Speed dial avec lien Arduino, Processing, Mon club elec, Reference, Google, Routeur
    • +/- installer clavier visuel onboard avec raccourci dans tableau de bord pour contrôle à la souris seule
    • pas avec XFCE ? - Screenlets : notamment meter CPU et RAM +/- tempet cpu
    • logiciel guvcview (test webcam)
    • Contrôleur de volume PulseAudio (pavucontrol) (test audio)
    • +/- installer le plugin flash
    • +/- installer plugin mp3 gstreamer
    • +/- avant Window avec 3D + projecteur réactiver effet visuels si utilisé pas top en pratique ! = NON !
    • +/- nmap et zenmap
    • +/- serveur ssh
    • +/- bmon et/ou cbm (mieux) pour visualiser le débit réseau
    • +/- Ekiga pour retour vidéo ET son à distance
    • +/- scilab
    • + gedit sous Xfce
  • Installation de logiciels systèmes utiles pour le système embarqué :
  • Installer paquets nécessaires pour Arduino/Processing :

Installation IDE développement

Procédures utiles pour le développement

7.2  Exemple de développement à distance via réseau wifi :

Il faut bien comprendre tout l'intérêt d'un eeePC/netbook embarqué accessible sans fil par réseau wifi : il devient dès lors possible de programmer, exécuter, tester, afficher, etc... ce que l'on souhaite sur le eeePC/netbook embarqué à partir du PC fixe local, sans aucune intervention manuelle côté PC embarqué, avec une portée standard de 50 à 100m, pouvant aller jusqu'à plusieurs centaines de mètres au besoin.

  • Exemple 1 : Développement sur PC local d'un programme Arduino, copie via réseau wifi sur le eeePC embarqué et exécution/test à distance par accès au bureau du PC embarqué via réseau wifi
  • Exemple 2 : Développement et exécution d'un programme Arduino sur le eeePC/netbook embarqué par accès au bureau du PC embarqué via réseau wifi
  • Exemple 3 : Retour vidéo et affichage graphique résultat de mesure analogique sur le PC local par accès au bureau à distance du eeePC/netbook embarqué.

PCEMBARQUEInfosEnVrac

8.  Informations utiles en vrac

PC embarqué

  • on voit des cartes ITX VIA à base de processeur C7 et autres :
    • VIA est un fabricant taïwanais de cartes mères, fondé par un ex- de chez Intel
    • a lancé les formats mini-ITX (17x17cm), puis nanoITX (12x12cm) puis picoITX (10x7cm)
    • fabrique des processeurs sur base x86 (idem Intel)
    • les cartes graphiques VIA semblent poser des problèmes sous Linux (lu sur le web) malgré une volonté afficher de faire des drivers ouverts
  • Intel :
    • s'est mis à faire des cartes ITX sur base Atom en 2008
    • à une politique affichée d'ouverture de ses drivers sous licence open-source dès 2006...
    • aurait même lancé une distribution Linux Intel ?

PCEMBARQUEMiniITXFournisseurs

9.  Fournisseurs de cartes Mini-ITX et accessoires

PC embarqué

  • http://www.cartft.com/
    • site allemand - traduction anglais dispo
    • spécialisé dans le PC embarqué de voiture
    • propose :
      • carte ITX fanless
      • alim picoPSU et autres
      • RAM
      • HDD et SSD
      • boitiers
      • accessoires en tout genre
    • meilleurs prix observés - paiement par CB
    • stock et réactivité
    • frais de port = 14€ - UPS 3 jours pour la France avec suivi géographique colis ++
    • service nickel ++
  • http://www.mini-itx.com/
    • site anglais
    • site d'information et boutique en ligne
    • propose :
      • carte ITX fanless
      • alim picoPSU et autres
      • RAM
      • HDD et SSD
      • boitiers
    • prix semblent élevé
    • frais de port ?
    • non testé
  • http://www.mini-box.com/
    • site américain du fabricant des alim picoPSU
    • frais de ports pour la France prohibitifs (>100€!!)

PCEMBARQUEVeilleTechnologique

10.  Veille technologique

PC embarqué

PCEMBARQUERessourcesUtiles

11.  Fournisseurs de PCembarqués en France :