Contrôle de sonar, 2013/2014, TD2
Sommaire
Rapport du projet Système Communicant : Système de contrôle d'un sonar
L'objectif de ce projet est de réaliser un sous-système de contrôle de sonar ultra-sons. Ce projet se partage en deux partie : une informatique et une électronique.
La partie informatique a pour but de créer une interface Web permettant la communication entre l'utilisateur et le sonar. Par l'intermédiaire de cette page Web, l'utilisateur donne un angle souhaité et le sonar indique la mesure de distance correspondant à la direction demandée.
La partie électronique...
Les participants de ce projet sont YVERNAULT Bertrand et THEBAULT Louis pour la réalisation électronique et SIMON Manouk pour la réalisation informatique.
Partie informatique
Séance 2
L'objectif de cette deuxième séance est de contrôler le servo-moteur à partir de la page Web Acceuil.html. Il nous faut donc créer le fichier de commande du servo-moteur (CommandeServoMoteur.c) et l'adapter à l'interface Web.
Création du fichier de commande du servo-moteur
Nous avons créé un fichier CommandeServoMoteur.c à partir de l'exemple qui contrôle la position du moteur (AdvancedServo-simple.c de la librairie libphidget21).
Configuration du port série
Pour pouvoir communiquer avec le banc de simulation, nous avons dû inscrire les commandes données en (C.2) dans le fichier /etc/rc.local pour configurer le port série à chaque démarrage.
Test du fichier de commande du servo-moteur
Une fois le port configuré, on paramètre le banc de simulation en sélectionnant le mode 5.
Puis, on compile sur le terminal par la commande suivante : gcc CommandeServoMoteur.c -o CommandeServoMoteur -lphidget21
Adaptation du fichier à l'interface Web
Nous avons ensuite adapté le fichier CommandeServoMoteur.c à notre utilisation :
- Suppression des printf pour éviter des perturbations sur la page Web
- Ajout de la bibliothèque cgi.h et adaptation du fichier pour récupérer en paramètre, par un script CGI-BIN CommandeServoMoteur.cgi via l'interface WEB, la valeur de l'angle donnée par l'utilisateur
- Déplacement du fichier dans le répertoire /usr/lib/cgi-bin
- Commande sur le terminal pour obtenir les droits d'exécutions : chmod u+s /usr/lib/cgi-bin/CommandeServoMoteur.cgi
Ajout des fonctions Javascript à la page Web
Enfin, nous avons dû introduire un champ de saisie pour indiquer l'angle et des fonctions d'envoi.
Par la fonction onBlur qui fait appel à la function commandeServoMoteur(), l'angle donné par l'utilisateur est automatiquement envoyé au servo-moteur.
Bilan du projet
Partie informatique
Le système est bien fonctionnel sur l'ordinateur où l'on a développé le programme. Cependant par manque de temps, nous n'avons pas pu vérifier sa fonctionnalité sur la Foxboard.
La réalisation de ce projet fut très enrichissante du fait des nombreux langages à apprendre(PHP, AJAX, JAVASCRIPT, CGI-BIN).
On aurait malheureusement aimé avoir eu plus de temps (malgré les heures prises en dehors des séances) et des cours pour aboutir à un système plus autonome et faire des prolongements.
Difficultés rencontrées
Nous avons rencontré des difficultés au cours de notre projet. Merci à M. Redon pour son aide.
- Obtenir les droits d'exécutions pour commander le servo-moteur par la commande chmod u+s
- Comprendre le fonctionnement du fichier AdvancedServo-simple.c
- Embarquer le système sur la Foxboard
Connaissances acquises
Nous avons été très content d'avoir pu découvrir et nous familiariser avec les différents langages de développement Web (HTML, PHP, JAVASCRIPT, AJAX).
Il a été très formateur de comprendre le fonctionnement d'une Foxboard.