Echange d'informations en temps réel entre applications windows et couplage à MySQL en utilisant l'API C pour le renseignement de données sur un serveur distant.
Présentation :
Développement d'une séquence pédagogique sur les échanges avec une BD MySQL via une API en C, d'information provenant de robots réels Khepera et de versions virtuelles.
Les éléments de l'étude sont disponibles sur notre plateforme d'échange :
http://arche.uhp-nancy.fr/course/view.php?id=1703&topic=3.
On veut que les étudiants apprennent à transmettre des informations entre 2 applications Windows écrites en C++.
Nous prenons comme support la transmission des commandes de mouvement à un robot Kheprea virtuel qui se promène dans l'environnemment 3D que nous fournissons (mfc_gl).
Ces informations peuvent également être transmises à un robot Khepera réel par le biais d'une liaison série (port COM physique ou Bluetooh en protocole SPP).
Les ordres envoyés sont typiquement ceux du vrai robot Khepera. Nous avons retenu un sous ensemble qui permet d'imposer des vitesses aux roues droite et gauche ainsi que de pouvoir récupérer les informations des capteurs de proximité, de la position et de la vitesse.
Ces informations seront ensuite envoyées à une base de données (MySQL ou Microsoft SQLserver) sur un serveur distant, via une API en langage C, liée au programme KheperaVR.
Les étudiants développent, à la fin de TP, un petit programme PHP qui permet d'interroger la base de données MySQL et d'afficher les résultats des robots, en temps réel sous forme de tableau ou graphique.
Diagramme des interactions.
Les * marquent les endroits où les étudiants doivent contribuer pour faire aboutir l'étude.
Robot virtuel (RobotK)
Robot réel (Khepera)
Le robot virtuel (RobotK) au sein de l'environnement 3D OpenGL mfc_gl.
Visualisation sur un navigateur Web des 5 dernières positions du robot Khepera
à partir de données lues en temps réel de la base de données MySQL, à l'aide d'un script PHP.
KheperaVR : le programme de pilotage des robots virtuel (dans mfc_gl) et réel (Khepera).
On remarque l'interface d'action sur la vitesse des roues left et right, ainsi que celle qui permet de rapatrier les informations du robot.
On peut choisir entre piloter le robot virtuel ou un vrai Khepera à travers le port série du PC.
L'envoi des informations au serveur distant peut se faire de manière automatique ou manuelle.
Visualisation de l'ensemble des 3 éléments interagissant entre eux en temps réel :
KheperaVR, mfc_gl et le serveur PHP/MySQL à travers un navigateur Web.
Ce dernier charge la page qui se crée dynamiquement (PHP->HTLM) par le serveur et permet une représentation sous forme de tableau et de graphique animé.
La période de rafraichissement est de 1 seconde.
Nous avons développé une plateforme d'étude attrayante pour les étudiants (visualisation 3D, pilotage à distance...).
Elle nous permet de leur apporter du savoir en terme de programmation C++, communication par messages Windows, Bases de données, API C pour MySQL, liaison série, programmation PHP, HTML...
On peut reprendre cette étude pour réaliser de la surveillance à distance de processus qui réalisent des accès en lecture et/ou écriture de données sur des serveurs distants.
L'intérêt du couplage API C - MySQL - PHP - SERVEUR, c'est que les systèmes peuvent être distants, mobile (liaison Wifi) ou fixe (liaison filaire ethernet).
Les informations, datés, sont stockés en temps réel sur un serveur et peuvent être utilisées par l'un ou l'autre des éléments du système.
Ce qui ouvre un champ d'investigation dans le travail collaboratif et la surveillance à distance.