Gestion de LED RVB, 2013/2014, TD1

De Wiki d'activités IMA

Première séance:

Partie électronique:

-prise en main de la nanoboard et du logiciel Altium à l'aide d'un tutoriel. Je pense que c'est la meilleure façon de commencer le projet sur la nanoboard, puisque ça permet de mettre en place une application fonctionnelle de A à Z (réalisation d'un petit compteur). Cela permet entre autre de comprendre l'agencement des librairies, le type données traités, les interfaces d'entrées-sorties...

-réalisation d'un schéma de test "PWM". J'ai réalisé un schéma simple dans avec un bloc PWM qui, à l'aide d'un registre 8 bits (valeur à coder) et d'une horloge (porteuse) permet d'envoyer sur une des sorties de la nanoboard un signal modulé.

-réalisation d'un circuit de filtrage passe bas RC J'ai réalisé un circuit passe bas avec une fréquence de coupure très basse (environ 100Hz) d'ordre 1.

-test du système précédemment décrit sur la led RVB J'ai branché le signal filtré sur chacune des broches de la diode RVB (sauf la masse évidement). La diode fonctionne bien, je visualise bien le rouge, le vert et le bleu. Pour tester le bon fonctionnement du système PWM, j'ai fait varier la valeur du registre 8 bits (configurable digital IO) et j'ai put voir que l'intensité de la couleur variait. Avec 0XFF sur le registre, on obtient l'intensité de couleur maximale. Avec 0x0B, la diode est quasiment éteinte. En changeant la valeur de la résistance du filtre l'intensité varie, on a donc une plus grande précision, car si R est faible, il y aura quand même un courant non négligeable dans la diode pour des valeurs faibles du registre 8 bits. Il faut aussi tenir compte de la vitesse de la porteuse (signal d'horloge) pour réaliser un signal bien propre (pas de découpage après le filtrage), plus on aura une porteuse élevé, moins il y aura ce découpage à la sortie d'un même filtre. Je pense aussi qu'il faut dimensionner le filtre en fonction de cette fréquence de découpage.

-visualisation sur l'analyseur logique et sur oscilloscope J'ai visualisé à l'aide l'analyseur logique les signaux de ma PWM, cependant, j'ai préféré utiliser le mode oscilloscope, qui ne va pas "nettoyer" mes signaux certes, mais va me permettre de faire des tests plus rapidement sur la partie analogique et sur la partie signaux logiques. Je pense malgré tout que l'analyseur logique est un bon outils lorsque l'on travaille uniquement sur des systèmes binaires.


Partie informatique:

1) Prise en main du sujet, lecture du cahier des charges, découverte et analyse des programmes d'exemples de la page des projets http://rex.plil.fr/Enseignement/Systeme/Projet.IMA3/index.html.

2) Ecriture d'une procédure en C pour allumer la LED RVB à l'aide d'une liaison série. Nous nous sommes inspire de l'exemple de programme C utilisant le port série.

3) Recherche documentaire sur la bibliotheque JQuery Bibliothèque libre en javascript permettant une interactivité avec l’utilisateur sans relancer la page html. La bibliothèque comprends de nombreuses fonctions. Dans ce projet cette bibliotheque va nous servir pour animer un curseur qui sera deplacer par l’action de la souris de l’utilisateur. La transmission des parametres au programme en C se fera au relachement du bouton de la souris.

4) Recherche et analyse d'une page web contenant un objets de type "slider" écrit en javascript et utilisant la bibliothèque JQuery. Il s'agit d'un curseur sur une barre qui va nous permettre d'ajuster la valeur de chaque couleur.


Deuxième séance: Partie électronique:

-recherche sur la liaison J'ai fais des recherches sur la liaison série sous Altium, il existe un bloc configurable pour réaliser des communications entre système. Il semble qu'il faille éditer les drivers de ce bloc pour modifier les vitesse, bit de stop... En fait, il semble que ce soit un autre groupe de recherche qui travaillent sur le sujet. On m'a appris que mon application devait gérer 8 bits d'entrées et un bit de stop. C'est à dire que mon système va recevoir:

-8 bits de données pour le rouge (noté R)

-1 bit de stop

-8 bits de données pour le vert (noté V)

-1 bit de stop

-8 bits de données pour le bleu (noté B)

-1 bit de stop

Cette information est des plus précieuses, car après avoir testé la sortie de mon système (PWM + filtrage + LED RVB), je connais la forme de mes informations d'entrées. Mon travail est alors de réaliser un système qui va automatiser la lecture des informations les unes après les autres.

A la réflexion, je me rend compte d'une chose, que se passe il si l'information de couleur rouge reçu est interprété comme une autre couleur? Voici comment j'ai imaginé le système: En entrée, je dispose d'un registre 8 bit qui représente l'information de couleur R, V ou B et d'un interrupteur simulant le bit de stop. Je fixe R, et j'actionne le bit de stop: une première PWM se déclenche PUIS je fixe V et j'actionne le bit de stop, une deuxième PWM s'actionnent (tout) en laissant le PWM-R en action. Ainsi à chaque appuie sur l'interrupteur stop, la valeur du registre 8 bits doit être mémorisé pour ne pas perdre cette information lorsque les 8 bits suivant arrivent.

-réalisation du schéma électrique total sur Altium designer Je réalise à tâtons un système qui permet d'envoyer successivement les valeurs voulues. A la fin de la séance, le système ne fonctionne pas vraiment. La PWM réalisé avec plusieurs blocs opère. Mais il manque des blocs logiques, le schéma est incomplet et il me manque des informations quant au bon fonctionnement de certains blocs.

-fabrication du circuit électrique total (3 filtres RC et brochage)


Partie informatique:

Nous avons lors de cette seance fait fonctionner et analyser le fonctionnement de l'exemple du script CGI-BIN. Un script CGI est un programme execute par le serveur web qui va permettre d'envoyer au navigateur un code HTML cree automatiquement par le serveur. Un des principaux interets de l'utilisation d'un CGI est la possibilité de fournir une page dynamique. Lorsque nous déplacerons le curseur sur la page la valeur du curseur sera automatiquement envoyee au script.

Un programme CGI peut être écrit dans à peu près n'importe quel langage de programmation pourvu que celui-ci soit :

• capable de lire le flux de données d'entrée ;

• capable de traiter des chaînes de caractères ;

• capable d'écrire sur le flux standard de sortie ;

• exécutable ou interprétable par le serveur web.

Nous ecrirons notre programme en C pour y integrer la partie du code permettant le fonctionnement de la diode et de la liaison serie ecrite en sceance 1.


Troisième séance: Partie électronique:

-Ajout de blocs de mémorisation

-Test avec le système de LED de la nanoboard pour avoir un visu habile

-Finalisation du système

-Amélioration du filtre

-Étude de la diode RVB en courant et tension


Partie informatique:

- compiler le script en lançant ./compile.sh pour creer un ledrvb.cgi

- tester le script en donnant un couple nom=valeur exemple action=majled

- placer ensuite le script cgi à l'endroit pour etre lu par le serveur apache cgi-bin

- concevoir le index.html avce trois curseurs