Controle de sonar : Différence entre versions

De Wiki d'activités IMA
(Avancement du projet :)
 
(35 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
=Avancement du projet :=
+
= Evaluation informatique =
  
==Première Séance (06/05/2011) -- 4h ==
+
== Gestion de projet / rédaction Wiki ==
  
===objectifs :===  
+
Objectifs clairs, réalisations détaillées (note 100%).
 +
 
 +
== Test fonctionnels ==
 +
 
 +
* Sous-système : Le servo-moteur est bien commandé, la distance est bien récupérée mais non affichée (note 90%).
 +
* Système : Une tentative de création assez avancée de l'image en PHP (note 25%).
 +
 
 +
== Qualité de la réalisation ==
 +
 
 +
* Procédure rédigée sur le Wiki : incomplète (mkdir, touch, chown, etc) mais l'essentiel y est (note 66%).
 +
* Pages HTML et Javascript : code mort, minimal mais ça fonctionne (note 75%).
 +
* Scripts PHP ou programmes C : de l'aide, ça fonctionne (66%).
 +
* Installation sur FoxBoard : non réalisé (note 0%).
 +
 
 +
== Bilan ==
 +
 
 +
Tous les points ont un poids équivalent (sauf "système" qui est un bonus).
 +
 
 +
Note finale :  75%
 +
 
 +
= Sujet =
 +
 
 +
Le sujet se trouve à la page [http://rex.plil.fr/Enseignement/Systeme/Projet.IMA3/systeme009.html http://rex.plil.fr/Enseignement/Systeme/Projet.IMA3/systeme009.html]
 +
 
 +
=Avancement du projet =
 +
 
 +
==Première Séance (06/05/2011)==
 +
 
 +
===Objectifs :===  
 
* établir le cahier des charges technique
 
* établir le cahier des charges technique
 
* répartir les tâches au sein du binôme
 
* répartir les tâches au sein du binôme
Ligne 13 : Ligne 41 :
 
* Elaboration du compteur mesurant le temps sous Altium
 
* Elaboration du compteur mesurant le temps sous Altium
  
==""Deuxième Séance (11/05/2011) -- 4h==
+
==Deuxième Séance (11/05/2011)==
  
===objectifs :===  
+
===Objectifs :===  
 
* Continuer la partie électronique en résolvant les derniers problémes
 
* Continuer la partie électronique en résolvant les derniers problémes
 
* Commencer la partie informatique en élaborant la structure du programme et sous programmes
 
* Commencer la partie informatique en élaborant la structure du programme et sous programmes
  
 
===Réalisations concrètes :===
 
===Réalisations concrètes :===
*
+
Partie informatique :
 +
* Installation des librairies nécessaires pour piloter le servo moteur
 +
* Modification du programme c pour pouvoir entrer un angle en paramétre et ainsi placer le sonar à l'angle indiqué
 +
* Création du site Web 2.0 avec un champ texte pour entrer un angle et placer le sonar au bon angle, grâce à une intéraction entre le javascript et le programme c précédemment créé.
 +
 
 +
Partie électronique :
 +
 
 +
== Troisième Séance (13/05/2011)==
 +
 
 +
===Objectifs :===
 +
* Avant la séance, avancer la partie informatique en continuant sur le site web :
 +
** Élaboration de la requête Ajax envoyée vers un script PHP qui récupère la distance mesurée par le sonar par scrutation et les renvoie vers la page Web 2.0(donnees.php)
 +
** Élaboration de la page Affichage.php qui récupère une série de distance et un angle. Cette page utilise GD en affichant un cercle vert ainsi que les axes X et Y en coordonnées cartésienne
 +
** Modification de la page Web 2.0 avec l'ajout un script sous javascript qui lance Affichage.php par une requête Ajax en ajoutant à l'adresse de l'url, les valeurs mesurées par le radar ainsi que l'angle associé
 +
* Test de toutes les pages créées chez nous et résolution des bugs si nécessaire
 +
===Réalisations concrètes :===
 +
Partie informatique :
 +
* Compilation du programme permettant de lire les données renvoyées par le sonar par la liaison série
 +
* Modification des pages Web 2.0 et donnees.php pour récupérer les données du sonar
 +
* Modification de la page Web 2.0 et affichage.php qui pour résoudre le problème de l'affiche de l'image permettant d'afficher la cible du radar qui ne s'affichait pas
 +
 
 +
Malheureusement, afficher le point devant indiqué la distance de l'obstacle par rapport au sonar a été plus difficile que l'on ne pensait et faute de temps, nous n'avons pas réussi à finir cette partie.
 +
 
 +
Partie électronique :
 +
* Réalisation des différentes horloges utiles
 +
* Création du signal pilotant le Module à ultrasons
 +
 
 +
 
 +
=Partie informatique =
 +
* Machine utilisée : TUTUR01
 +
* /home/pifou/sonar/ contient entre autre fileaccess2.c qui selon un angle fait faire une rotation au robot de l'angle en question
 +
* /var/www contient :
 +
**web2.html : Page principale Web 2.0
 +
**prototype.js
 +
**donnes.php
 +
**affichage.php
 +
 
 +
* Les commandes :
 +
** su (mdp : glopglop) : Mode superutilisateur
 +
** su www-data  : Permet de prendre l’identité de www-data
 +
** /root/serie : permet de lancer la liaison série
 +
 
 +
* lancer correctement la page Web 2.0 :
 +
# su www-data
 +
# /root/serie
 +
# lancer un navigateur internet et lancer la page [http://localhost/web2.html http://localhost/web2.html]
 +
# entrer un angle
 +
# l'image de la distance se lance
 +
 
 +
=Partie électronique =
 +
* Réalisation  du bit de sortie permettant l'envois de l'octet
 +
* Réalisation du rafraîchissement toutes les secondes
 +
* Réalisation de la parte analogique + tests effectués
 +
 
 +
Schéma :
 +
[[Fichier:Schema.png]]
 +
 
 +
 
 +
 
 +
 
 +
= Rapport =
 +
I) Cahier des charges
 +
 
 +
La carte FPGA mesure en permanence la distance avec l'obstacle le plus proche. La mesure de distance est basée sur la mesure du décalage entre l'émission d'un signal ultrason et sa réception, après rebond sur l'obstacle. La valeur de ce temps sera codée sur huit bits (1 octet). Le taux de rafraîchissement de la mesure sera fixé à 1 seconde. La vitesse du son sera considérée comme égale à 340 m/s.
 +
 
 +
 
 +
II) Résolution du CDC partie numérique
 +
 
 +
1)Les différentes horloges
 +
 
 +
Nous avons décidé pour faciliter le câblage des différents composant du FPGA et de la propreté du signal de sortie de la partie analogique d’avoir une distance maximale de mesure de 1,80 m pour un mot de 254, en cas d’absence d’objet nous prendrons la valeur 255.
 +
Ainsi nous avons les relations suivantes:
 +
 
 +
                                  f=1/T
 +
                                         
 +
 
 +
                                  v=d/t
 +
 
 +
                          D’où    t=d/v=(2×1,8)/340=10,588 ms
 +
 
 +
Où t est le temps totale que met l’onde pour faire l’aller-retour à une distance de 1,80m 
 +
Donc on a une résolution de (10,588×〖10〗^(-3))/255 =41.52 µs qui correspond a 7mm pour un bit d’écart
 +
Ainsi on a la fréquence d’entrée du compteur 8 bits qui nous donnera le mot image de la distance.
 +
 
 +
 +
                              f=1/T=1/(41.52 µs )≈2400
 +
 
 +
Nous allons donc divisé la fréquence par 2400 (U3, U4 et U6)
 +
Les autres diviseurs (U7, U8, U13 et U14) sont présents pour avoir une période 40khz pour le signal d’entrée de la partie analogique pour le module à ultrasons.
 +
Le compteur (U1) permet de diviser la fréquence pour avoir une période de 1s avec un petit temps à l’état haut.
 +
 
 +
2)liaison entre le MU et la nanobord
 +
 
 +
Le compteur (U11) permet de compter le nombre de période envoyé au MU est de s’arrêter à dix grâce aux NANDs et ANDs (U10, U12 et U15) information appelé « fin  transmission »  puis repart dans un OR avec l’information de « réinitialisation nouvelle séquence » la sortie commande la remise a zéro du compteur mais aussi dans la commande de la bascule  JK qui commande le blocage du compteur
 +
Table de vérité du blocage du compteur.
 +
 
 +
 
 +
[[Fichier:Tableverite.png]]
 +
 
 +
Quand CE=1 alors le compteur est bloqué et arrête d’envoyer la transmission sinon il continu de compter.
 +
<br>
 +
J= Réinitialisation nouvelle séquence
 +
<br>
 +
[[Fichier:Formule.png]]
 +
 
 +
Le signal provenant de l’émetteur MU entre dans une bascule D qui sera remis à zéro lors de l’information « réinitialisation nouvelle séquence » et la sortie commandera le blocage du compteur qui donne l’image de la distance en pilotant le bit CE.
 +
<br>
 +
[[Fichier:Chronogramme.png]]
 +
<br>
 +
III) Résolution du CDC partie analogique
 +
<br>
 +
 
 +
La partie analogique est divisée en deux parties :
 +
- L’émission du signal
 +
- La réception du signal
 +
 
 +
1) L’émission du signal
 +
 
 +
Nous avons choisi de prendre un AOP en montage suiveur pour évité de demander trop de courant de la carte vers le MU (voir schéma)
 +
 
 +
2) La réception du signal
 +
 
 +
Pour la réception du signal dans un premier temps le signal est d’abord amplifier grâce a un non inverseur avec un gain de 101 puis ce signal est comparé à une tension de 4V pour éliminer touts les parasites qui ont été trop amplifiés.
 +
<br>
 +
 
 +
[[Fichier:Analogique.png]]
 +
<br>

Version actuelle datée du 17 mai 2011 à 10:13

Evaluation informatique

Gestion de projet / rédaction Wiki

Objectifs clairs, réalisations détaillées (note 100%).

Test fonctionnels

  • Sous-système : Le servo-moteur est bien commandé, la distance est bien récupérée mais non affichée (note 90%).
  • Système : Une tentative de création assez avancée de l'image en PHP (note 25%).

Qualité de la réalisation

  • Procédure rédigée sur le Wiki : incomplète (mkdir, touch, chown, etc) mais l'essentiel y est (note 66%).
  • Pages HTML et Javascript : code mort, minimal mais ça fonctionne (note 75%).
  • Scripts PHP ou programmes C : de l'aide, ça fonctionne (66%).
  • Installation sur FoxBoard : non réalisé (note 0%).

Bilan

Tous les points ont un poids équivalent (sauf "système" qui est un bonus).

Note finale : 75%

Sujet

Le sujet se trouve à la page http://rex.plil.fr/Enseignement/Systeme/Projet.IMA3/systeme009.html

Avancement du projet

Première Séance (06/05/2011)

Objectifs :

  • établir le cahier des charges technique
  • répartir les tâches au sein du binôme
  • brainstorming

Réalisations concrètes :

  • Tutoriel Altium effectué
  • Elaboration du compteur mesurant le temps sous Altium

Deuxième Séance (11/05/2011)

Objectifs :

  • Continuer la partie électronique en résolvant les derniers problémes
  • Commencer la partie informatique en élaborant la structure du programme et sous programmes

Réalisations concrètes :

Partie informatique :

  • Installation des librairies nécessaires pour piloter le servo moteur
  • Modification du programme c pour pouvoir entrer un angle en paramétre et ainsi placer le sonar à l'angle indiqué
  • Création du site Web 2.0 avec un champ texte pour entrer un angle et placer le sonar au bon angle, grâce à une intéraction entre le javascript et le programme c précédemment créé.

Partie électronique :

Troisième Séance (13/05/2011)

Objectifs :

  • Avant la séance, avancer la partie informatique en continuant sur le site web :
    • Élaboration de la requête Ajax envoyée vers un script PHP qui récupère la distance mesurée par le sonar par scrutation et les renvoie vers la page Web 2.0(donnees.php)
    • Élaboration de la page Affichage.php qui récupère une série de distance et un angle. Cette page utilise GD en affichant un cercle vert ainsi que les axes X et Y en coordonnées cartésienne
    • Modification de la page Web 2.0 avec l'ajout un script sous javascript qui lance Affichage.php par une requête Ajax en ajoutant à l'adresse de l'url, les valeurs mesurées par le radar ainsi que l'angle associé
  • Test de toutes les pages créées chez nous et résolution des bugs si nécessaire

Réalisations concrètes :

Partie informatique :

  • Compilation du programme permettant de lire les données renvoyées par le sonar par la liaison série
  • Modification des pages Web 2.0 et donnees.php pour récupérer les données du sonar
  • Modification de la page Web 2.0 et affichage.php qui pour résoudre le problème de l'affiche de l'image permettant d'afficher la cible du radar qui ne s'affichait pas

Malheureusement, afficher le point devant indiqué la distance de l'obstacle par rapport au sonar a été plus difficile que l'on ne pensait et faute de temps, nous n'avons pas réussi à finir cette partie.

Partie électronique :

  • Réalisation des différentes horloges utiles
  • Création du signal pilotant le Module à ultrasons


Partie informatique

  • Machine utilisée : TUTUR01
  • /home/pifou/sonar/ contient entre autre fileaccess2.c qui selon un angle fait faire une rotation au robot de l'angle en question
  • /var/www contient :
    • web2.html : Page principale Web 2.0
    • prototype.js
    • donnes.php
    • affichage.php
  • Les commandes :
    • su (mdp : glopglop) : Mode superutilisateur
    • su www-data  : Permet de prendre l’identité de www-data
    • /root/serie : permet de lancer la liaison série
  • lancer correctement la page Web 2.0 :
  1. su www-data
  2. /root/serie
  3. lancer un navigateur internet et lancer la page http://localhost/web2.html
  4. entrer un angle
  5. l'image de la distance se lance

Partie électronique

  • Réalisation du bit de sortie permettant l'envois de l'octet
  • Réalisation du rafraîchissement toutes les secondes
  • Réalisation de la parte analogique + tests effectués

Schéma : Schema.png



Rapport

I) Cahier des charges

La carte FPGA mesure en permanence la distance avec l'obstacle le plus proche. La mesure de distance est basée sur la mesure du décalage entre l'émission d'un signal ultrason et sa réception, après rebond sur l'obstacle. La valeur de ce temps sera codée sur huit bits (1 octet). Le taux de rafraîchissement de la mesure sera fixé à 1 seconde. La vitesse du son sera considérée comme égale à 340 m/s.


II) Résolution du CDC partie numérique

1)Les différentes horloges

Nous avons décidé pour faciliter le câblage des différents composant du FPGA et de la propreté du signal de sortie de la partie analogique d’avoir une distance maximale de mesure de 1,80 m pour un mot de 254, en cas d’absence d’objet nous prendrons la valeur 255. Ainsi nous avons les relations suivantes:

                                 f=1/T
                                         
                                 v=d/t
                         D’où    t=d/v=(2×1,8)/340=10,588 ms

Où t est le temps totale que met l’onde pour faire l’aller-retour à une distance de 1,80m Donc on a une résolution de (10,588×〖10〗^(-3))/255 =41.52 µs qui correspond a 7mm pour un bit d’écart Ainsi on a la fréquence d’entrée du compteur 8 bits qui nous donnera le mot image de la distance.


                              f=1/T=1/(41.52 µs )≈2400

Nous allons donc divisé la fréquence par 2400 (U3, U4 et U6) Les autres diviseurs (U7, U8, U13 et U14) sont présents pour avoir une période 40khz pour le signal d’entrée de la partie analogique pour le module à ultrasons. Le compteur (U1) permet de diviser la fréquence pour avoir une période de 1s avec un petit temps à l’état haut.

2)liaison entre le MU et la nanobord

Le compteur (U11) permet de compter le nombre de période envoyé au MU est de s’arrêter à dix grâce aux NANDs et ANDs (U10, U12 et U15) information appelé « fin transmission » puis repart dans un OR avec l’information de « réinitialisation nouvelle séquence » la sortie commande la remise a zéro du compteur mais aussi dans la commande de la bascule JK qui commande le blocage du compteur Table de vérité du blocage du compteur.


Tableverite.png

Quand CE=1 alors le compteur est bloqué et arrête d’envoyer la transmission sinon il continu de compter.
J= Réinitialisation nouvelle séquence
Formule.png

Le signal provenant de l’émetteur MU entre dans une bascule D qui sera remis à zéro lors de l’information « réinitialisation nouvelle séquence » et la sortie commandera le blocage du compteur qui donne l’image de la distance en pilotant le bit CE.
Chronogramme.png
III) Résolution du CDC partie analogique

La partie analogique est divisée en deux parties : - L’émission du signal - La réception du signal

1) L’émission du signal

Nous avons choisi de prendre un AOP en montage suiveur pour évité de demander trop de courant de la carte vers le MU (voir schéma)

2) La réception du signal

Pour la réception du signal dans un premier temps le signal est d’abord amplifier grâce a un non inverseur avec un gain de 101 puis ce signal est comparé à une tension de 4V pour éliminer touts les parasites qui ont été trop amplifiés.

Analogique.png