Communication série, groupe A

De Wiki d'activités IMA

Evaluation informatique

Gestion de projet / rédaction Wiki

Description du travail réalisé très précise (cela va jusqu'à l'algorithme des programmes). Orthographe presque acceptable (note 90%).

Test fonctionnels

  • Sous-système : Fonctionnel. Interfaçage avec la nanoboard effectué bien qu'il soit nécessaire d'appuyer sur un bouton pour avoir le retour de l'octet (note 120%).
  • Système : Pas abordé (note 0%).

Qualité de la réalisation

  • Procédure rédigée sur le Wiki : Correct (note 75%).
  • Pages HTML et Javascript : Correct sans plus; adaptation du code donné sans nettoyage (note 60%).
  • Scripts PHP ou programmes C : Correct, minimale et avec de l'aide (note 60%).
  • Installation sur FoxBoard : Très bien (note 90%).

Bilan

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

Note finale : 80%

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. 

Interface.jpg

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.


Ce fichier PHP 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


Unnamed.jpg 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 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 :

~$ ssh 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.