Communication série, groupe A : Différence entre versions

De Wiki d'activités IMA
Ligne 179 : Ligne 179 :
  
  
'''troisième séance'''
+
'''Troisième séance'''
  
  
  
'''partie électronique:'''
+
'''Partie électronique:'''
  
  

Version du 30 mai 2011 à 15:55

Première séance:


Partie électronique:


- résolution du cablage électronique à exécuter pour passer d'une liaison série à une liaison parallèle sur papier.

- Tout les composants nécessaire au cablage pour la réalisation ont été trouvés.


Partie informatique:


OBJECTIFS:

-Création de la page d'accueil du site internet (HTML) qui permet de saisir et d'afficher une chaîne de caractères.

-Début de la réalisation des deux fichiers PHP permettant de transmettre et de recevoir une chaîne de caractères.

-Test de la fonction démon permettant de communiquer avec le port série.


I)- Création de la page d'accueil


Le rôle de ce fichier HTML est d'acquérir et d'afficher un message.

 Pour cela on utilise quartes fonctions scripts : 
      -Envoyer: 
            fait appel au fichier PHP (fileaccess.php) => transmission du message saisi sur la page html au fichier php.   
  
      -Charger: 
            fait appel au fichier PHP (fileread.php) =>  réception du message transmit sur le port série.          
      -Afficher: 
            fait appel à la fonction charger qui retourne le message reçu pour ensuite l'afficher. 


II)- Début de la création des fichiers PHP


Les deux fonctions PHP ont pour rôle de récupérer caractère par caractère le message saisi sur la page HTML ,le transmettre sur la liaison série pour ensuite le recevoir et l'afficher sur la page HTML.

Durant cette première séance on a réalisé la fonction fileaccess.php

fileaccess.php :

fonction fileaccess.php | | Constantes: | DIR : contient la location du fichier teste | Variables: | message:tableau contenant la chaîne de caractères | | Pour i = 0 à taille_de (message) faire : | | | | byte <- convertir message[i] en ASCII | | ecrire la variable byte dans le fichier de nom : DIR/send(i) | | | fin du pour | fin fonction

*les fonctions php utilisées :

          strlen()				retourne la taille d'un string
          file_put_contents()		        écrit dans un fichier 
          ord()				retourne la valeur ASCII d'un caractère


III)- Teste du démon:


  	Après avoir récupéré et compilé le fichier demon.c on l'exécute dans un dossier test.
Le dossier test va recevoir les fichiers contenant les caractères  reçus et à transmettre via la liaison série.    


Deuxième séance:


Partie électronique:


Objectifs de la seconde séance:

- terminer la partie électronique du sujet et des fonctions de lecture et d'écriture.


Pour cette 2ème séance, nous avons réussi à concevoir la partie émission du message binaire (conversion parallèle / série). Nous avons testé notre montage d'émission sur la carte et visualisé le signal reçu sur un osciloscope numérique ( les tests sont Ok , signal bien reçu à la bonne frèquence ) nous avons également terminé la parie réception à quelques détails près, un problème de gestion du démarage de la lecture de la donnée série est à revoir, en effet notre système de "comptage" ( voir schéma pour plus de détails ) ne doit démarrer que lors de la prèsence du bit de start.


objectif de la 3ème séance: nous allons donc terminer la partie réception et relié la partie informatique et électronique.

schéma de la partie émission Émission.jpg

schéma de la partie réception: Réception.jpg

schéma global: Sheet3.jpg


Partie informatique :


OBJECTIFS:


-Réaliser la fonction fileread.php qui a pour rôle de lire les caractères reçu via la liaison série et de les transmettre à la page HTML qui se chargera de les afficher.

-Teste de l'ensemble de l'interface en établissant une liaison série avec la carte électronique Arduino.


I)- Réalisation de la fonction fileread.php


fonction fileread.php | | Constantes: | DIR : contient la location du fichier teste | Variables: | files:contient tt les noms des fichiers existants dans le dossier teste | | Pour i = 0 à nombres de (files) faire : | | | | si ( les 5 première lettres du nom de files[i] == 'recv-') alors | | | | | | tab[]= le contenu du fichier en décimal | | | retourne tab | | fin | | | | | fin du pour | fin fonction

*les fonctions php utilisées :

            count() 	         compte tous les éléments d'un tableau.
            substr() 	         retourne une partie d'un string.
            trim() 		 rajoute des espaces entre les caractères d'un string. 
            file_get_contents() récupère le contenu d'un fichier.


Cette fonction retourne la valeur du caractère lu (reçu) en décimale.

       La conversion décimal -> caractère se fera au  niveau de l'HTML dans la fonction afficher .

Pour i=0 à taille du message reçu alors | | Affichage de ( conversion_décimal_caractère de ( message_reçu[i] ) ) | fin

* fonction java script :

             String.fromCharCode()  	convertion décimal caractére  


II)-Teste de l'interface à l'aide de la carte Arduino :


Après avoir télécharger le code du demon, on compile le fichier demon.c pour ensuite l'exécuter dans le dossier teste.

~$ gcc -o demon demon.c ~$ ./demon test

après avoir établie la connection série avec la carte Arduino on a lancé notre interface web.


Troisième séance


Partie électronique:


Pour cette dernière séance, nous avons terminé la partie réception en réglant le problème rencontré précèdement ( départ du système de comptage de bit sur 9600Hz a partir du bit de start ) Ensuite nous avons testé notre système à l'aide de l'hyperterminal d'un ordinateur relié à la nanoboard )

test de la partie émission: on envoie le code binaire corespondant à une lettre et l'on reçoit la lettre corespondante sur le terminal. test de la partie réception: on envoie une lettre à l'aide de l'hyperterminal et on l'a visualise sur la nanoboard grâce aux leds, le code corespondant.

Une fois les tests réalisés avec succès, nous avons rélié la partie informatique et électronique en reliant la foxboard avec la nanoboard.


Voici les schémas électronique finale de la partie réception émission et de l'ensemble.

partie émission: I1.jpg partie réception: I2.jpg schéma global: I3.jpg


Partie informatique :


Objectifs :

-Paramétrage de la Foxboard. -tester la communication avec la foxboard & la nanoboard.


I)-Paramétrage de la Foxboard :


Après avoir copié les fichiers php et html sur le répertoire var/www de la carte mémoire de la foxboard.

On a modifié l'adresse IP pour cela il suffisait se modifier le fichier /etc/network/interfaces en rajoutant l'adresse IP souhaitée.

On a modifié l'adresse du serveur existant pour le remplacer par celui de Polytech'Lille. Dans le fichier /etc/apt/sources.list on a remplacé la ligne deb http://ftp.it.debian.org/debian lenny main par deb http://ftp.polytech-lille.fr/debian lenny main contrib non-free.


II)- Teste de la communication avec la nanoboard


On relie la foxboard à l'eeePC et à la nanoboard.

-On se connecte à la foxboard :

~$ root@172.26.79.102

-Pour ensuite compiler et lancer le demon :

foxboard~$ gcc -o demon demon.c foxboard~$ ./demon test

Après avoir établie la connection, on lance l'interface web sous un navigateur sur l'eeePC et là on est prêt à saisir notre chaîne de caractère à transmettre.