Introduction
Dans ce projet, la tâche qui m’a été confiée était de développer sur un poste distant une
Interface Homme-Machine (IHM) de contrôle et de test des différentes fonctionnalités du
robot, telles que :
L’asservissement numérique de position et de vitesse d'un moteur à courant continu
L’asservissement de position et de vitesse d'un moteur pas-à-pas
Le contrôle d'une caméra intelligente
Le pilotage d'un télémetre Infra-Rouge
Le pilotage d'une récepteur-démodulateur Infra-Rouge
Le pilotage d'un modulateur-émetteur Infra-Rouge
Chacun de ces modules correspond à un ensemble de classes développées en C++ par les six
autres étudiants de ce projet.
Choix logiciels (langage et environnement de
développement)
Dans un premier temps, le choix du format de développement de l’IHM s’orientait vers MFC
(Microsoft Foundation Class) sous Visual Studio 6.0, ou à l’aide des librairies Qt sous linux ,
avec une programmation en C++ dans les deux cas. L’application aurait donc été stockée sur
un poste distant, avec une connexion au robot à l’aide du serveur web embarqué, en
l’occurrence BOA, package de µClinux (version embarquée de linux), système d’exploitation
utilisé sur les cartes ColdFire.
L’utilisation du CGI aurait donc été nécessaire pour permettre la communication entre les
programmes fonctionnant sur le robot et l’IHM. La Common Gateway Interface est une
technologie standard implémentée sur tous les serveurs Web. Elle permet l'échange de
données (dans les deux sens) entre un programme de votre cru et le contenu d'une page Web
visualisée par un internaute distant. Par extension, on appelle aussi "CGI" les programmes
utilisant cette interface. Un tel programme peut être écrit à l'aide de n'importe quel langage de
programmation : les plus utilisés sont C, Perl ou encore python. A la différence d'un script
Java, le programme CGI sera exécuté sur la machine hébergeant le serveur Web, et non sur la
machine du client.
Mais cette méthode impliquait un choix de système d’exploitation unique, et une application
stockée hors du robot, nécessitant de la transporter séparément et de l’installer avant chaque
utilisation. Java s’est donc imposé comme langage nécessaire à ce projet, puisqu’ étant multi-
plateformes, et portable si l’on utilise la méthode des applets stockées sur le robot et
téléchargées chez le client par l’intermédiaire du serveur web.
Une fois l’applet téléchargée, celle-ci communique avec les programmes exécutés sur le robot
via le réseau TCP/IP câblé (puis sans-fil WIFI par la suite), par l’intermédiaire d’une socket,
sorte de conduit qui permet la communication entre deux processus, ceux-ci pouvant être
actifs sur des machines différentes.