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 |

La petite histoire du concept de GLAP-Box...

GLAPBOX

  • Cela fait une bonne dizaine d'années que je triture en tant qu'amateur ces petites bêtes programmables que sont les micro-contrôleurs. J'ai fait mes premières armes sur des PIC programmés en Basic avec un compilateur propriétaire. Premières émotions, premières satisfactions étaient au rendez-vous : contrôler des LEDs, des moteurs, utiliser afficheur LCD et clavier... Après la déconvenue d'un arrêt pur et simple du développement de la plateforme que j'utilisais, j'étais très décidé à trouver un système de développement libre et opensource. C'est naturellement que je suis passé au langage C compilé par un logiciel libre et opensource, toujours sur PIC... Là aussi, la satisfaction fut au rendez-vous, mais les choses restaient parfois laborieuses lorsqu'il fallait écrire les librairies complètes pour afficheur LCD... Et puis il fallait faire soi-même ses cartes... les commerciales étant tout de même assez chères...
  • Il y a 2 ans, en faisant ma "veille technologique", j'ai découvert la plateforme Arduino que j'ai testé et là ce fut le coup de foudre pour ces petites cartes programmables en langage Arduino qui est une sorte de langage C amélioré. J'ai pu faire en quelques mois ce que j'avais cherché à faire depuis près de 10 ans : nombreuses librairies disponibles, fonctions puissantes incluses dans le langage Arduino (par exemple analogWrite() ), fonctions mathématiques avec virgule flottante, nombreux shields et modules... Tout çà sous licence opensource tant logicielle que matérielle : le pied ! Les ressources de la communauté sont très nombreuses et très utiles : il y a toujours quelqu'un quelque part qui essaie de faire la même chose que vous ou l'a déjà fait !
  • Parallèlement, dès 2007, j'ai fait mes premiers pas avec la distribution Gnu/Linux Ubuntu : prise en main progressive de ce système d'exploitation libre et gratuit qui est facile à prendre en main, nécessite cependant un temps d'adaptation lorsque l'on vient du monde Windows. Je n'ai depuis cessé d'approfondir et de mieux connaître le monde de Gnu/Linux, la structure du système,j'ai pris le temps d'apprendre à utiliser la ligne de commande... Depuis près de 2 ans, j'utilise d'ailleurs exclusivement des ressources libres, notamment pour faire ce site. Gnu/Linux est un véritable "Lego" logiciel qui permet de se faire le système dont on a besoin : c'est ce qui m'a conduit à explorer des possibilités très intéressantes disponibles. Ainsi, j'ai appris à utiliser l'accès au bureau distant, à utiliser la synthèse vocale, etc...
  • Une vieille idée que j'avais m'est alors revenu : utiliser un PC en tant que plateforme embarquée pour pouvoir disposer dans mes applications de tout ce dont je dispose avec un PC. Il y a quelques mois, les prix étant relativement abordables, j'ai eu envie de tester çà avec Gnu/Linux : j'ai donc acheté une carte pour Gnu/Linux embarqué à un prix intéressant (dans les 120 €uros...) et j'ai voulu y installer mon propre système. Il s'agissait d'une base ARM... Autant l'utilisation de Gnu/Linux sur PC m'avait séduite en raison de la simplicité d'installation et d'utilisation, autant ma tentative de réaliser une installation sur base ARM m'est apparue complexe. J'étais prêt pourtant à mettre les mains dans le camboui, à taper de la ligne de commande... et je l'ai fait, des jours durant, des soirées tard dans la nuit... J'ai d'ailleurs eu l'occasion à ce moment là de découvrir des concepts qui ne m'étaient pas familiers : mise emplace d'un partage de fichier NFS, gérer et installer un système Gnu/Linux à partir d'un premier système opérationnel, etc... Au final, j'ai tout de même eu le sentiment de n'avoir rencontré que des problèmes techniques à résoudre... avec à chaque étape un grain de sable (problème de driver, problème de paquet incompatible, etc....)... et au final, je n'ai rien réussi à faire de probant à part d'installer une image système "clé en main" fournie par le fabricant de la carte... J'en suis resté là... J'ai réussi également à installer une Debian à partir d'une carte Flash, mais dès qu'il s'est agit d'ajouter des paquets ou de faire fonctionner le matériel, ce fut encore une belle galère...
  • J'ai ensuite laissé en suspens de projet, et j'ai poursuivi ensuite ma découverte et approfondissement de Processing, interface graphique programmable (écrite en Java), et ses nombreuses fonctions. Et là je me suis vraiment éclaté : Processing est un véritable couteau-suisse logiciel qui permet de programmer simplement des applications sur un PC, à la façon Arduino. Les possibilités sont très impressionnantes : réseau ethernet ou wifi, sons, traitement d'image, 3D, gestion de la souris, du clavier, communication série avec une carte Arduino... Je me suis fait plaisir en créant des interfaces graphiques de type "oscilloscope" multivoie, en apprenant à utiliser et modifier des images par programmation, à gérer les sons par programme, à créer des interfaces graphiques avancées, à faire de la capture vidéo, du traitement d'image, de la reconnaissance visuelle, du suivi d'objet dans une image webcam, de la reconnaissance vocale... Bref, plein, plein de choses sympas et relativement accessibles.
  • Ma "vieille idée" a alors ressurgit : et si je faisais carrément un PC embarqué sous Ubuntu, avec à bord Arduino et Processing ? Ainsi, tout ce que je fais en local sur mon PC, je pourrais le faire sur un robot, une plateforme embarquée... Coupler la facilité d'utilisation d'Ubuntu avec la puissance d'Arduino et de Processing dans une même plateforme embarquée, çà serait le pied.... Mais était-ce possible ? à quel prix ? était-ce abordable ? Alors je me suis mis à chercher des solutions
  • Tout d'abord j'ai pensé aux eeePC : c'est un vrai PC, petit, pas trop lourd (1,3Kg environ ou moins selon le modèle), ayant une autonomie de plusieurs heures. J'en ai acheté plusieurs modèles différents (le 700, le 900, le 1001,...) pour voir, tester sous Ubuntu, tester les possibilités d'accès au bureau distant, etc... J'ai écrit alors tous les codes Arduino et Processing permettant de transmettre une chaîne de caractère sur le réseau, ce qui m'a permis de tester le contrôle à distance du PC embarqué, la télémétrie distante. J'ai aussi testé le retour vidéo embarqué... J'ai testé le suivi d'objet, la reconnaissance de visage par le PC embarqué... J'ai appris à contrôler les applications du système à partir d'un programme Processing, ce qui m'a permis d'utiliser la synthèse vocale, les sons... Bref, j'ai posé les bases de la GLAP-Box. Ces essais avec les eeePC m'ont aussi permis de voir ce que les processeurs utilisés pouvaients faire, quel modèle pouvait "assurer" correctement pour la reconnaissance visuelle, etc.. J'en ai conclu qu'un bon choix serait un processeur dual core Atom qui offre des résultats corrects.
  • Puis plus récemment, j'ai regardé du côté des cartes mini-ITX... Une véritable carte mère de PC, au format 17cm x 17cm, et qui existe même en taille encore plus réduite (nano ITX en 12x12 et pico ITX en 10x7cm) ! Côté prix, des modèles tels que la D510 MO d'Intel semblait abordable : dans les 75 € avec processeur intégré... un Atom dual core cadencé à 1,66 Ghz, pile poil ce qu'il me faut ! Une fois que j'avais la carte mère, je me suis demandé comment résoudre le problème de l'alimentation si particulière d'une carte mère. J'ai cherché et trouvé les alimentations miniatures pico PSU autres qui permettent d'alimenter un PC à partir du 12V ou pour certaines à partir d'une batterie. Là encore, les coûts étaient raisonnables, de l'ordre de 40€... Il existe également des cartes-mères alimentables directement en 12V, plus chères, mais qui évitent l'achat d'une alimentation miniature ATX... A ce stade, j'avais l'essentiel : un disque dur 2.5" et une barrette de RAM... et je pouvais faire mes premiers essais...
  • Les premiers essais concrets se sont avérés immédiatement concluants : j'ai installé Ubuntu sans problèmes, installé Arduino, Processing, testé l'accès au bureau distant, fait des tests de consommation (j'arrive à 1.2A sous 12v soit 14W... un très bon résultat je trouve pour un dual-core embarqué !)... J'ai également testé le son, la synthèse vocale, la programmation de la carte Arduino...
  • Cette fois, le concept de GLAP-Box était né et opérationnel !

La suite :

Février 2012 :

  • Depuis ma première version de la GLAP-Box sur base mini ITX, avec une carte D510 MO, une nouvelle carte est sortie chez Intel, la carte mini-ITX DN2800 MT, avec plusieurs atouts indéniables :
    • alimentation intégrée, et alimentable en 10-19V DC directement !! Plus besoin d'alim mini ATX ! Une carte mère de PC qui s'alimente en quelque sorte comme une "grosse carte Arduino"...
    • et consommation réduite, à 750mA seulement en 12V pour le système complet en régime stationnaire ! (soit 9W)
    • fanless (pas de ventilateur) et demi-hauteur (2cm d'épaisseur !)
    • le tout pour un prix correct (95€ TTC)

Juin 2012 :

  • Sortie de la distribution Ubuntu 12.04 LTS : j'ai choisi la version Xubuntu pour la GLAP-Box. Cette distribution permet notamment l'utilisation Out Of The Box de la webcam EyePS3 avec des captures jusqu'à 125 fps

Juillet 2012 :

  • J'ai découvert un peu par hasard que la voix "pico" d'Android est implémentée sous Ubuntu : une belle voix pour la GLAP-Box !
  • Les prix des SSD baissant (50€ pour un SSD de 30Go contre 40€ pour un HDD de 40GO), j'ai testé le SSD sur la GLAP-Box pour permettre une robustesse plus grande et une réduction de la consommation.

Aout 2012

  • La mise en place "from scratch" d'une GLAP-Box étant assez longue et fastidieuse, j'ai donc logiquemen cherché la possibilité de faire directement une distribution GLAP-Box. C'est chose faite : j'ai créé la première image ISO du système GLAP-Box complet utilisable aussi bien avec une clé live USB (pour faire de n'importe quel PC une GLAP-Box) ou pour l'installer en quelques minutes sur n'importe quel PC, netbook et bien sûr sur la carte DN2800MT d'Intel.
  • A ce stade, la reconnaissance visuelle, la synthèse vocale, le suivi d'objet, la reconaissance de Marker, etc... sont opérationnels en quelques minutes !!
  • J'ai également commencé l'écriture d'une librairie "GLAP-Box" pour Processing qui simplifie l'utilisation des fonctions fondamentales de gestion du système : lecture de fichiers sons, synthèse vocale, etc...