Communication série, groupe A : Différence entre versions
(17 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | == 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. | - 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 | + | - 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. | ||
+ | [[Fichier: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 | ||
[[Fichier:émission.jpg]] | [[Fichier:émission.jpg]] | ||
+ | |||
+ | schéma de la partie réception: | ||
+ | [[Fichier:réception.jpg]] | ||
+ | |||
+ | schéma global: | ||
+ | [[Fichier: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 | ||
+ | |||
+ | |||
+ | [[Fichier: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: | ||
+ | [[Fichier:i1.jpg]] | ||
+ | partie réception: | ||
+ | [[Fichier:i2.jpg]] | ||
+ | schéma global: | ||
+ | [[Fichier: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. |
Version actuelle datée du 7 juin 2011 à 09:03
Sommaire
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.
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 réception:
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
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: partie réception: schéma global:
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.