Contrôle de sonar, 2013/2014, TD2

De Wiki d'activités IMA
Révision datée du 21 avril 2014 à 19:48 par Msimon1 (discussion | contributions) (Séance 3)

Rapport du projet Système Communicant : Système de contrôle 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 1

Dans un premier temps, cette première séance a surtout été dirigé sur la compréhension du sujet :

  • Mise à jour des connaissances sur les différents langages à employer (HTML, PHP, AJAX, JAVASCRIPT, C, CGI-BIN)
  • Etude des exemples fournis pour contrôler le servo-moteur.
  • Réflexion sur l'architecture du projet :


Dans un second temps, nous avons installé les bibliothèques Phidget pour commander le servo-moteur et jQuery pour l'interface Web.


Dans un troisième et dernier temps, nous avons commencer la rédaction de la page html de contrôle du Sonar dans le fichier Acceuil.html situé dans le répertoire /var/www de l'ordinateur.

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 (grâce à l'intervention de M. Redon)


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.

Séance 3

Le but de cette séance est de récupérer la valeur de la distance mesurée par le sonar ainsi que d’implémenter le projet embarqué sur la Foxboard.


Création du fichier de lecture de la distance mesurée par le Sonar

A l'aide de l'exemple qui utilise le port série (C.5), nous avons créer un fichier LecturePortSerie.php.

Le sonar envoi plusieurs valeurs à la liaison série qui est continuellement ouverte à chaque exécution du script LecturePortSerie.php.

Nous avons du adapter ce script afin qu'il ne récupère que la dernière valeur mesurée par le sonar par l'ajout d'une condition while ($byte!=" ").


Ajout des fonctions Javascript à la page Web

Pour finir, nous avons dû coder une fonction Javascript de récupération de la valeur envoyé par le Sonar et une autre fonction Javascript qui affiche cette valeur :

  • function lectureDistance()
  • function afficherDistance (distance)


Implémentation des fichiers sur la Foxboard

Il nous aura fallu une séance supplémentaire pour finir le transfère du projet sur la Foxboard mais malheureusement les tests n'ont pas été concluant par manque de temps.

Séance supplémentaire