Contrôle de sonar, 2012/2013, TD3
Sommaire
Evaluation informatique et électronique
Gestion de projet / rédaction Wiki
- Informatique : Rapport sur le Wiki minimal, pas plus de 15 lignes. Aucune illustration. Le rapport ne correspond pas aux tests effectués par l'enseignant. Note 40%.
- Electronique :
Note .
Test fonctionnels
- Sous-système.
- Sous-système informatique : Une page Web quasi-vierge, le servo-moteur est difficile à faire fonctionner (pas de test des limites, ne tourne pas franchement), une distance affichée au rechargement de la page seulement. Note 25%.
- Sous-système électronique :
Qualité de la réalisation
- Informatique : Note 20%.
- procédure de test : Pas de fichier LisezMoi, rien sur le Wiki. Pas de test effectué par les élèves devant l'enseignant. Le test par l'enseignant est très peu concluant. Note 25%.
- pages HTML et Javascript : Pas de fichier remis, un fichier index.php sur zabeth12 avec 3 fonctions Javascript dont une avec une portion de code supprimée. La fonction à moitié détruite semble être utilisée pour afficher une barre de couleur (mesure de la distance ?). Une récupération de distance de sonar directement dans index.php en PHP (pas de récupération à intervalle régulier). Un fichier barre.php qui bloque le navigateur. Note 35%.
- scripts PHP ou programmes C : Un fichier de récupérateur de valeurs du sonar rec.php dont le commentaire ne correspond pas au code. Un fichier C mv.c retrouvé au hasard sur zabeth12 implantant un cgi-bin capable de bouger le servo. Note 50%.
- installation sur FoxBoard : Rien, aucune FoxBoard au nom des élèves, rien à ce sujet dans le Wiki. Note 0%.
- Electronique : Note .
- qualité de la réalisation :
- tests autonomes :
Bilan
Note finale :
Rapports des élèves
1ère séance
- Partie Electronique
Nous avons mis en place un plan de travail en décomposant le système en deux parties. Une partie numérique, ayant comme rôle la conception et la réception du signal, intégrant à celui-ci un compteur afin de mesurer la distance parcourue. La deuxième partie est numérique et s’occupe de l’amplification du signal reçu et émis.
La partie numérique est composée de deux sous-systèmes, l’un s’occupant de générer le signal grâce à une horloge qu’on lie à un compteur s’incrémentant à chaque front montant de l’horloge auquel on ajoute un comparateur afin de comparer avec trois afin d’arrêter l’émission après trois impulsion. D’un autre côté on pose une autre horloge avec une fréquence plus faible afin d’avoir une période plus grande et d’espacer les fronts montants et ainsi incrémenter plus longuement afin de pouvoir calculer une durée de 1 secondes et ainsi pouvoir emmètre à nouveau.
- Partie Informatique
Durant cette première séance on a essayé de comprendre le fonctionnement du sonar, en le contrôlant grâce à une liaison série, qui est un câble USB contrôlé par l’ordinateur. Un programme C nous a permis de comprendre les différentes commandes permettant de pivoter le sonar, et d’acquérir la position actuelle. Pour faire cela on a installé la bibliothèque de programmation Phidget . Ensuite on a crée une page web dynamique en PHP et en JavaScript qui permet de changer la position du sonar grâce à la fonction onblur de la bibliothèque « Jquery ».
2eme séance
- Partie électronique
Nous avons terminé la partie numérique (compilé)mais nous n'avons pas eu le temps de réaliser les tests.
- Les modifications mise en place:
->Mise en place du système de réception: Ajout d'un compteur calculant la durée du trajet de l'onde, liée avec la partie d’émission afin de permettre l'initialisation de l’envoie mais aussi avec le capteur de réception afin d’arrêter le compteur et d'envoyer la valeur.
->Ajout d'un compteur et un comparateur a la sortie qui nous permet de bloquer la réception pendant l’émission du signal.
->Ajout d'un compteur/comparateur a l’entrée de la réception afin de détecter l’arrivée du signal et permettre l’arrêt de l’incrémentation du compteur et l'envoie de la valeur.
- Partie informatique
Nous avons mis en place une interface web capable d’interagir avec le sonar, à savoir le faire tourner vers un angle que l'utilisateur peut changer à partir de la page web. Nous avons aussi mis en place une barre interactif réalisé en Javascript qui permet de changer de taille et de couleur proportionnellement à la distance envoyée par le sonar. Il faut préciser que l'interface web permet de commander le servomoteur à travers un script CGI-BIN écrit en C.
3eme séance
- Partie électronique
La partie Numérique a été finie et testée(fonctionne comme souhaité):
-Envoie de 7 impulsion et enregistrement de la valeur du compteur a la réception d'une impulsion en entrée, le test a été fait en simulant le signal reçu grâce a un interrupteur.
La partie Analogique finie mais non testé:
-Utilisation de quatre amplificateur, deux d'entre eux pour amplifier le signal reçu et émis, un autre comme suiveur afin de protéger la Partie numérique et un en tant que comparateur afin de transformé le signal reçu en un signal numérique.
- Partie informatique
Lors de cette 3ème séance on a confectionné notre page web en y rajoutant une représentation graphique des distances retournées par le sonar, en utilisant le système canvas intégré à HTML5. On stocke les valeurs retournées par le sonar dans un tableau Javascript en fonction de l'angle. Ensuite on construit le dessin grâce à une fonction d'affichage qui utilise canvas en fonctions des valeurs stockées dans le tableau.
Bilan du Projet:
Partie informatique:
La page web permettant de contrôler le sonar est composée :
- Un champ qui permet d’envoyer la valeur de l’angle désirée à un script CGI. Ce dernier fait tourner le servomoteur suivant la valeur qui lui a été transmise.
- La distance envoyée par le sonar est récupérée par ce même script, ensuite récupérée par notre script PHP et affichée sur la page.
- Une barre interagit avec la distance renvoyée par le sonar et change de taille proportionnellement à la distance maximale qui peut être envoyée par le sonar.
- Un script permet de construire un dessin à partir des données retournées par le sonar, est construit à partir de canvas qui est un outil intégré à PHP5.
Partie électronique:
Le but du système électronique mise en place est de calculer la distance entre celui-ci et un objet et cela en mesurant le temps de parcours d’une onde ultrasonore émise puis reçu par un capteur après réflexion sur un obstacle. Le système est composé d’une partie numérique mise en place grâce a une carte FPGA de la NanoBoard et une partie analogique.
Partie FPGA :
Cette partie a pour rôle d’envoyer 7 impulsions d’un signal carrée à une fréquence de 40 KHz tout en lançant un compteur qui s’arrêtera à la réception du signal ou se remettra à zéro à l’envoie d’un nouveau signal. La valeur obtenue par le compteur lors de la réception du signal nous donnera la distance parcouru ainsi la distance qui sépare le sonar de l’obstacle.
Afin de mieux comprendre le fonctionnement du système celui-ci a été décomposé en plusieurs sous partie dans le schéma ci-contre.
- Émission du signal :
Partie 1 : Compteur d’une seconde
L’utilisation d’un compteur 8 bit nous permet d’incrémenter 255 fois (1111 1111 en binaire). Additionner ce compteur avec une horloge émettant un signal carré d’une fréquence de 255 Hz nous permet de compter une seconde et d’envoyer grâce à un comparateur un signal à la 255eme incrémentation. Et cela car avec une fréquence de 255Hz permet d’avoir une impulsion toute les T=1/255 ce qui nous fait un total de t=255*T=1s
Partie 2 : Contrôle du signal émis
Une horloge nous permet de régler le signal d’émission à 40KHz et une porte logique et nous permet d’envoyer le signal à l’arrivée du compteur de la partie une a 255. Celui-ci restant pendant T=3.921 ms sur la valeur binaire 1111 1111 l’horloge arrive à envoyer pendant cette période 156 impulsion car sa fréquence est de 40 KHz. Avec une telle fréquence, elle arrive à envoyer une impulsion toute les 0.025ms alors que le front montant du premier compteur dure 3.921ms.
Partie 3 : Contrôle du nombre d’impulsion envoyé
Un deuxième compteur nous permet de compter 7 impulsions avant d’envoyer un signal qui permet d’arrêter l’envoie. Un comparateur permet d’envoie un signal continue dès que la valeur dépasse 7. Une porte logique et dotée d’une entrée inverses permettant de transformer le signal reçu du comparateur en un nul qui permet d’annuler le signal émis. Problème : La réinitialisation du compteur n’est pas faite à chaque envoie mais cela n’engendre qu’une attente d’une autre seconde avant un nouveau envoie. Cela conduit à l’attente d’une durée de deux secondes au lieu d’une avant l’envoi d’une nouvelle série d’impulsion.
Partie 4 : Confirmation d’envoi du signal
Un compteur et un comparateur 3 bit permettent d’envoyer un signal après l’envoi de la série d’impulsion afin de réinitialiser tous les compteurs de la partie réception et de recommencer une nouvelle réception, mais aussi d’annuler toute réception avant envoie total du signal et ainsi éviter la réception du signal tout juste envoyer.
- Réception du signal :
Partie 5 :
Le système mise en place a pour limite de mesurer une distance de deux mètre, pour cela on utilise un compteur 8 bit alimenté par un signal d’une fréquence de 22Khz : Avec cette fréquence on a une impulsion toutes les 0.045ms ce qui nous donne une durée maximum de 255x0.045=0.12ms. Etant donné que la vitesse de propagation d’une onde dans l’air est de 340m/s cela nous donne donc une distance parcouru de d=3.9m, ce qui nous permet d’avoir approximativement une distance limite de 2m entre l’émetteur et l’obstacle. La faible distance maximum parcourue nous permet en contre partit d’avoir une plus grande précision (+ou-0.153cm)
Partie 6 :
Le compteur utiliser dans cette partie nous permet une fois un front montant reçu d’envoyer grâce à un comparateur (comparant avec la valeur1) un signal, mise à zéro à l’aide d’un inverseur, puis envoyer vers l’entrée CE du compteur de la partie 5 afin d’enregistrer la valeur obtenue lors de la réception du signal.
Le circuit analogique comprend deux parties (émission/réception) permettant d’amplifier le signal émis mais aussi de transformer celui reçu en un signal numérique (0-5v).
Le bloc P1 du schéma ci-contre est un suiveur ayant pour rôle de protéger la partie numérique du système, alors que le P2 permet d’amplifier le signal émis et reçu avec un coefficient de 10. Le bloc P3 quand à lui est un comparateur nous permettant de transformer le signal en sortie du premier AO en un signal numérique.