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 |

Imaginez le shield (carte d'extension) Arduino idéal...

Par X. HINAULT. Le 06/04/2011.

"I've made a dream..." ou le shield arduino qui fait rêver...

Allez, on se lâche... Imaginons le "shield" Arduino idéal... le shield qui fait un maximum de trucs... à priori inaccessibles ou alors qui existe mais c'est si cher qu'on n'ose pas se lâcher... Imaginons le shield qui permettrait de faire un robot ou des applications qui font vraiment envie...

Bon, je me lance dans mon listing de "rêve"... Mon shield idéal, voilà ce qu'il ferait :

  • affichage graphique couleur, pour affichage "d'expressions" du visage du robot et mouvement de lèvres graphique lorsqu'il parle (idéalement avec touchpad intégré, mais c'est un plus )
  • acquisition vidéo embarquée, avec retour vidéo vers mon PC fixe
  • possibilité de reconnaissance visuelle, détection de visage, suivi d'objet
  • synthèse vocale et/ou génération de sons, messages sonores de bonne qualité
  • possibilité de reconaissance vocale (quitte à ce que çà soit à partir du PC fixe de contrôle)
  • communication sans fil avec envoi de commandes de contrôle à distance
  • mesures analogique à distance avec retour sans fil du résultat des mesures
  • et un truc qui serait vraiment top : la programmation à distance sans fil de la carte Arduino embarquée pour pouvoir coder en direct sur l'Arduino embarquée... et gagner un temps précieux.

Bon, tout çà, çà serait déjà pas mal... et puis aussi :

  • communication et interfaçage avec la carte Arduino simple
  • shield "embarquable" sur un robot (poids correct demandé...)
  • avec autonomie conséquente en énergie (plusieurs heures idéalement)

Tout çà couplé aux possibilités habituelles de la carte Arduino (commandes des moteurs, mesures analogiques, etc..), çà serait vraiment le pied !!

Mais bon, là je rêve... ou alors çà va me coûter un max.... c'est ce que je me disais encore il n'y a pas si longtemps...

Mais en fait, ce "shield de rêve" il existe !! Et en plus c'est abordable : il suffit d'utiliser un PC netbook de petite taille (genre eeePC) (sous Ubuntu) ou un mini-PC embarqué "fait maison" qui pourra faire tout çà et permettra la communication wifi avec le PC fixe... et côté coût, c'est tout à fait correct : on trouve des eeePC neufs dès 250 euros et d'occasion dès 150 Euros sur eBay ! Pour avoir l'équivalent avec des shields dédiés... au bas mot, cela reviendrait à 300 voire 400 euros...

En ce qui concerne un mini-PC embarqué "home-made", on peut en faire un tout à fait honorable pour 150 € : voir GLAPBOX

un mini-PC embarqué "fait maison"

Un eeePC embarqué, on peut encore appeler çà un shield ?

  • Bon, c'est sûr que c'est une carte d'extension un peu plus grosse que les shields classiques, mais sur un robot, çà fera très bien l'affaire, en dimensionnant bien ses moteurs. Je l'ai fait, et çà roule bien, batterie 12V incluse. En plus, on n'est pas obligé de laisser l'écran ouvert (si, si, c'est possible et le PC ne se met pas en veille... bien mieux, le bureau à distance reste opérationnel bien que l'écran soit fermé !!) : une fois fermé, le eeePC n'est qu'une "grosse boite" avec 3 Leds allumées... Un shield donc...
  • La grande idée ici, c'est de considérer le eeePC comme un véritable shield d'un point de vue fonctionnel : autrement dit, le coeur du programme se passe côté Arduino qui commande les moteurs, surveille les capteurs, etc... Et lorsque l'Arduino veut parler, il envoie une chaine vers le eeePC qui déclenche la lecture d'un son ou une synthèse vocale.
  • Idem pour la reconnaissance visuelle : le eeePC gère toute la partie complexe de la reconnaissance et envoie à la carte Arduino uniquement l'information utile, à savoir la position de l'objet dans l'image webcam par exemple.
  • Ou encore, si Arduino souhaite une capture photo ou vidéo à un moment précis, il envoie la demande au eeePC qui s'exécute...
  • Donc, tout se passe comme si d'un point de vue fonctionnel, le eeePC était bel et bien un shield que l'Arduino peut utiliser pour de nombreuses fonctions complexes !

Un eeePC embarqué sous Ubuntu.... et pourquoi pas plutôt une carte avec Linux embarqué ?

  • Pour tout vous dire, j'avais imaginé au départ utiliser une carte avec un Linux embarqué... mais pour faire simple, c'est globalement la galère... L'installation d'une distribution opérationnelle, d'un noyau opérationnel, etc... c'est très très chronophage... et pour arriver à faire clignoter une LED, c'est tout une histoire...
  • Du coup, je me suis dit que ce qui serait bien, c'est la facilité d'une distribution Ubuntu (t'installes et çà marche tout de suite...), la simplicité de mise en oeuvre de l'Arduino et de Processing mais en embarqué (nécessite un système avec java)... Et du coup j'ai pensé au netbook... d'autant que j'avais plusieurs eeePC sous la main que j'avais mis sous Ubuntu et qui marchaient très bien... D'où l'idée : il n'y a qu'à embarquer le eeePC sur le robot couplé avec une carte Arduino !!
  • Puis j'ai gratté un peu l'idée :
    • était-il possible d'accéder au bureau distant du PC embarqué depuis le PC fixe et par wifi ? La réponse est oui, et c'est assez simple car les logiciels pour le faire sont fournis en standard avec Ubuntu... En prime, j'ai vu que j'avais également le retour de la vidéo du eeePC embarqué qui fonctionne... et également la possibilité de faire de la synthèse vocale assez simplement avec gspeaker...
    • ayant accès au bureau distant, j'ai voulu trouver une solution pour envoyer des chaines de caractères du PC fixe vers le PC embarqué pour pouvoir envoyer des commandes à l'Arduino embarqué à partir du PC fixe... était-ce possible ? et comment ? je n'ai pas trouvé tout de suite... puis j'ai réalisé que l'interface Processing avait une librairie réseau : du coup en combinant astucieusement les librairies série et réseau dans une interface Processing côté PC embarqué et côté PC fixe, j'ai réussi à envoyer des chaines par wifi interposé vers mon robot...
  • Au final, j'ai donc la possibilité, en wifi (sans fil donc !) :
    • de contrôler mon robot à distance par Joystick ou reconnaissance vocale depuis le PC fixe
    • de récupérer et visualiser sur le PC fixe les données issues des capteurs du robot à distance
    • d'avoir le retour vidéo issu du robot !!
    • de reprogrammer la carte Arduino embarquée à distance y compris en cas de plantage de la communication série de la carte Arduino !! (l'accès au bureau distant reste actif et permet d'agir sur le PC embarqué même si la communication série via wifi n'est plus opérationnelle - techniquement on utilise 2 ports de communication différents sur le réseau wifi).
    • de disposer sur le PC embarqué de toutes les possibilités de Processing, notamment :
      • gestion des sons (lecture de fichier sons et donc bruits de r2d2 et sabre laser si on veut sur le robot !)
      • reconnaissance visuelle et capture vidéo
      • traitement d'image
      • déclenchement d'application par ligne de commande programmée depuis Processing,
  • un autre gros intérêt de cette formule du eeePC embarqué, c'est que tous les programmes Arduino développés en local sont utilisables sans autre modification sur le PC embarqué et pourront communiquer via le réseau wifi avec le C fixe. Le gain en temps de développement est énorme !
  • Enfin, les ressources libres utilisées sur le PC embarqué sont robustes, sans adaptation particulière (on peut lire tels quels des fichiers mp3 par exemple sur le eeePC embarqué)..
  • Les connaisseurs apprécieront... Mais trêve de blabla... passons à l'action ! Je vous propose de découvrir sans plus tarder la "symbiose numérique Arduino PC" !!