Contrôle de sonar, 2011/2012, TD2
Sommaire
Evaluation informatique et électronique
Gestion de projet / rédaction Wiki
La coopération entre la partie informatique et la partie électronique n'est pas claire. Pas d'interconnexion.
- Informatique : Rédaction baclée (reprise d'une photo du TD3 à peine annotée). Note 50%.
- Electronique : La rédaction est correcte, des efforts ont été faits pour expliquer le fonctionnement même si ça reste relativement désordonné. Note 80%.
Note 65%.
Test fonctionnels
- Sous-système. Note 77.5%.
- Sous-système informatique : Pas d'interconnexion FoxBoard / NanoBoard. Coté informatique fonctionnel sur PC mais pas sur FoxBoard. Note 75%.
- Sous-système électronique : Le schéma est réfléchi, mais au prix de beaucoup d'aide. La fonctionnalité n'est pas assurée. Note 80%.
Qualité de la réalisation
- Informatique. Note 65%.
- procédure de test : Aucune instruction pour le test que ce soit sur la FoxBoard ou sur le Wiki. Non fonctionnel (CGI-BIN en C non installé dans le bon répertoire). L'affichage de la distance trouvée par le sonar fonctionne. Note 60%.
- pages HTML et Javascript : Page HTML et script JS corrects mais sans aucune avancée par rapport au premier groupe. Note 66%.
- scripts PHP ou programmes C : Idem. Note 66%.
- installation sur FoxBoard : Installation incomplète, pas de lancement automatique du démon série, pas de CGI-BIN. Note 60%.
- Electronique. Note 75%.
- qualité de la réalisation : Des erreurs de calcul sur la partie analogique (calcul des gains à revoir), le schéma électrique de partie numérique est correctement conçu. Note 80%.
- tests autonomes : L'insertion de la copie d'écran est une bonne chose même si on reste un peu sur notre faim (manque d'explication) ; des tests sur la partie analogique réalisée auraient été un gros plus. Note 70%.
Bilan
Note finale : 71% => 14/20
Présentation
Projet Sonar
Objectif principal :
Le but de notre projet est de réaliser un sonar qui transmet des trains d'ondes à 40Khz et qui les reçoit à l'aide de capteurs ultrasons pour traduire une information qui sera traitée par la NanoBoard (calcul de la distance entre lui et un objet par exemple). Pour communiquer avec ce sonar par le protocole série, nous utiliserons la FoxBoard qui permet d'afficher sous forme d'une image l'environnement détecté par le sonar.
Objectif et bilan des séances :
Objectif de la séance n°1 :
Dans cette première séance, nous avons essayé de bien assimiler le sujet pour éviter les lacunes et pour avancer progressivement dans notre travail . Puis, nous nous sommes donnés des rôles afin qu'on puisse mieux avancer et mieux s'organiser. Pour la partie électronique, nous devons générer des trains d'ondes à la fréquence de 40KHz et les amplifier pour ne pas les perdre. Ces trains d'onde vont parcourir 4m aller retour.
Partie informatique :
Analyse de matériel utilisé, comprendre le fonctionnement générale du système et des outils de commande et récupération de données.
Essai de commande de servomoteur avec terminale
Tester la communication avec le phidget
Bilan de la séance n°1 :
Partie électronique :
Nous avons réussi à implanter la partie d'émission du FPGA sur Altium en utilisant un signal carré à la fréquence de résonance, un compteur 6 bits et un comparateur qui permet d'arrêter le compteur, donc d'annuler les fronts montants, et c'est ce qui va donner des trains d'ondes. Pour la partie analogique, nous avons fait théoriquement un montage (Amplificateur et résistances) qui nous permettra d'amplifier le signal transmis d'un gain de 3.Comme on veut G = 3 , on a pris R1=10KOhms et R2=4.7KOhms car G=(R2*R1)/(R1+R2)
Partie informatique :
1/le servomoteur : Contrôlé à l'aide de la carte de liaison série Phidget
Ce servomoteur est branché sur l’interface Phidget , qui communique grâce à un port USB avec l’ordinateur en premier lieu , puis avec la foxboard plutard .
Lors de cette première séance, la foxboard est commandée avec le Terminal. A l’aide du binaire PART2
Mais pour avoir ce binaire , il faut : Télécharger la librairie du Phidget, décompresser , configurer, installer , faire un Makefile , puis compiler le tout .
A la fin de cette séance, on a réussi à comprendre le fonctionnement du servomoteur ainsi que l’utilisation de la fonction qui réalise le mouvement du servomoteur.
La fonction utilisée est la suivante : « CPhidgetServo_setPosition (servo, 0, position); »
Avec position est proportionelle à l’angle comme illustré sur l’image ci-dessous:
Objectif de la séance n°2 :
Dans cette deuxième séance, nous devons réaliser la partie de réception qui consiste à recevoir les trains d'ondes et à les ré-amplifier puisqu'ils sont légèrement modifiés et bruités par le trajet.
Pour la partie informatique , il était temps d'avancer plus rapidement sur le projet :
Création de la page Html , des requetes Ajax et commander le servomoteur avec un protocole .
Bilan de la séance n°2 :
Partie électronique :
Nous avons réussi à implanter la partie de réception du FPGA sur Altium en simulant le retour des trains d'ondes (Configure Digital) et en utilisant un deuxième compteur (pour calculer la durée entre l'émission et la réception des trains d'ondes). Et pour stopper ce 2ème compteur, on l'a relié avec le comparateur de la partie d'émission puisque quand LT se met à 1, le 2ème compteur s'arrête et s'initialise à 0 (CLR=1). En outre, on utilise le diviseur de fréquence(CDIV20DC50) pour que les trains d'onde aient suffisamment de temps pour parcourir 4m avant que le second compteur n'atteigne sa valeur maximale. Pour la partie analogique, nous avons réalisé théoriquement un montage qui permettra d'amplifier le signal reçu d'un gain de 30 puisque le signal de retour n'est que de quelques millivolts. On a pris alors R1=120KOhms et R2=40KOhms
Partie informatique :
Avancement :
Création du l’interface HTML gérant l’entrée ( Sonnar) et la sortie (Servomoteur) :
Fonction d’affichage
Fonction de lecture de valeur de l’angle voulue
Fonction d’envoi de commande au servomoteur
Compilation et exécution du DEMON , pour activer la liaison avec le Sonnar .
Les scripts CGI compilés pour la liaison série fonctionnent comme il faut .
Objectif de la séance n°3 :
L'objectif de cette troisième séance est de pouvoir mémoriser les données par le 2ème compteur qui calcule la durée entre l'émission et la réception du signal. Il faut aussi terminer la partie analogique qui servira à amplifier le signal transmis et reçu.
Bilan de la séance n°3 :
Partie électronique :
Quand on aura un front montant (c'est-à-dire quand le capteur ultrason détectera les trains d'onde), la bascule D va mémoriser les données de 6 bits. Puis, le 2ème compteur se remettra en marche une nouvelle fois puisqu'au moment où le signal sera reçu, un nouveau signal va être généré. Pour la partie analogique, on a fait le câblage nécessaire qui permettra d'amplifier les trains d'ondes lors de l'émission et de la réception.
De haut en bas :
-Le premier tracée représente l'initialisation du 2ème compteur.
-Le second tracée représente les trains d'ondes émis.
-Le troisième tracée représente le diviseur de fréquence utilisé par le deuxième compteur.
-Le dernier tracée représente la fréquence de l'entrée du système (CLK : l'horloge).
Partie informatique : La dernière partie consiste à transférer tout ce qui a été fait sur Ordinateur sur la Foxboard . installation des librairies et la recompilation des binaires utilisés .
Schéma final de la partie électronique :