Site ELEC344/ELEC381

Partie interactive du site pédagogique ELEC344/ELEC381 de Télécom ParisTech (occurrence 2010).

Catégories

TP Carte

Hier j’ai fait le PWM pour le  backlight du LCD, aujourd’hui j’ai fini les interruptions pour le bouton et j’ai réussi à varier l’intensité du LCD avec le bouton.  Je aussi commencé avec le module ZigBee, j’ai déjà fait tous les configurations pour la  réception et transmission.

STM32 : en avant la musique !

Voici mes avancées du jour sur le TP :

  • Fin de gestion des interruptions sur les boutons : les deux boutons sont utilisés pour régler l’intensité du backlight du LCD ; le premier diminue l’intensité, le deuxième allume ou éteint le backlight
  • Buzzer : le buzzer est capable de buzzer (!) et de jouer de la musique ; dans un premier temps j’ai juste émis un son, puis une musique, puis j’ai développé un peu une API pour jouer de la musique plus « proprement »
  • Retour sur le LCD : je me suis aussi repenché sur le LCD en retravaillant un peu son API ; au départ je voulais utiliser une file (queue de FreeRTOS) mais j’ai assez vite abandonné sans plus creuser la question (heureusement pour moi, il semblerait que je devrait m’y remettre pour Zigbee !) ; au final, tout reste fait à base de sémaphores
  • Zigbee : j’ai fait la configuration initiale de l’UART et je l’ai réglée pour qu’une interruption soit levée lors de la réception de messages ; sauf que rien ne se passe donc il doit y avoir quelques problèmes… A suivre demain !

Avancement du TP v3

Ce matin, j’ai fini les interruptions (j’ai fait une erreur d’inattention: port B au lieu de port C) puis j’ai bossé sur le projet. J’ai notamment regardé le code du projet laser de l’année dernière pour mieux comprendre ce qu’il fallait faire pour l’ILDA, le DMX et le fonctionnement en général. (3h)
J’ai continué cela en fin d’aprem et mis à jour le wiki (il me reste quelques trucs à faire). (2h)

En début de soirée, j’ai remis en forme tout mon code et j’ai mis les interruptions pour gérer le backlight du lcd. Je vais essayer de finir le wiki et le buzzer avant de me coucher. (2h)

TP : Le bout du tunnel

Ce matin, j’ai commencé à rédiger ma partie de l’article sur le problème de Wahba, principalement l’algorithme TRIAD  il a fallu se remettre un peu à LaTeX …

Cette après-midi, j’ai résolu les quelques problèmes qu’il y avait sur mon ZigBee (il en reste peut-être du genre non-déterministes) et j’ai fait marcher les interruptions avec les boutons : un bouton permet de modifier l’intensité d’éclairage du backlight et l’autre active/désactive le buzzer (très utile pour ne pas embêter toute la salle !).

D’avoir fait le ZigBee hier m’a permis de pouvoir aider un peu les autres qui pouvaient eux m’aider sur le traitement des interruptions.

En fin d’après-midi, j’ai refait la partie qui gérait l’affichage sur le LCD en quelque chose de plus simple et plus modulaire qui a pas mal aéré mon ‘main.c’.

Donc ben je crois que ça clot à peu près le TP d’initiation, c’est bien chouette :p

En ce qui concerne le projet, on a fait un point de situation avec l’équipe pour faire un petit diagramme en blocs de nos composants logiciels et se répartir l’étude de ces blocs. Je ferais surement un petit schéma sur le wiki.

23/03 après-midi et 24/03 matin

23/03 après-midi

LCD affiche des messages dans de deux lignes à fréquences différents

24/03 matin

Le PWM pour la gestion du backlight marche, les interruptions et la gestion des boutons poussoirs marchent aussi.

Avancement TP

Pour le TP d’hier, j’ai enfin réussi à faire fonctionner le LCD, mon problème était dû à une mauvaise lecture de l’initialisation du LCD.

J’ai ensuite terminé l’affichage de chaîne de caractères, les alternances de phrases sur chacune des lignes à des fréquences différentes.

Le PWM pour la gestion du backlight marche lui aussi et j’ai terminé ce matin les interruptions et la gestion des boutons poussoirs.

TP état jusqu'à mardi

Je vais faire un résumé de mes activités concernant la carte de TP jusqu’à mardi 23 à minuit. Déjà désolé pour les fautes d’ortographe:

Dimanche 21 mars:

Jeux de LEDS:

J’ai commence avec une lecture plus profonde pour la compréhension du fonctionnement du FreeRTOS. J’ai crée ma tache en charge de allumer et éteindre la LED rouge et verte tout le 1 seconde. -> Jeux de LEDS FINI

Messages dans le LCD :

Deux heures de lecture pour comprendre le fonctionnement du LCD. Je crée une routine qui initialise le LCD. Par contre chaque fois que j’envoie un caracter, il me montre celle du code ascii inverse. Je ne comprends pas l’erreur.

Lundi 22 mars:

Messages dans le LCD :

J’ai corrigé ma routine d’initialisation du LCD (avant c’était une tâche) Sam a recommandé de ne pas utiliser une tache pour cette fonctionnalité. Après une révision de la sécuence d’initialisation, maintenant les caractères se montrent normalement. J’ai crée une routine pour montrer des caractères simples.

J’ai crée une routine qui me montre messages (chaine de caracteres) en utilisant la routine pour montrer caractères simples. J’arrive à montrer messages dans deux lignes différentes.

Je commence avec la création de la tache qui va montrer des messages dans des lignes différentes chacun avec une fréquence différente. Des problèmes commencent: Chaque message interfère avec le message de l’autre ligne. J’arrive à montrer deux messages indépendants en utilisant de sémaphores. -> Messages dans le LCD FINI

Routine de PWM:

Je commence avec la routine du PWM. Il m’a pris environ trois heures de lecture pour finalement comprendre le fonctionnement du Timer 3 et identifier quels sont les registres pour son utilisation et une heure supplémentaire pour la création de la routine. A la fin j’arrive à gérer le PWM mais apparemment tout mon programme s’arrête quand je l’utilise. Je n’arrive pas à trouver l’erreur.

Mardi 23 mars:

Correction de la routine de PWM:

Grâce a une observation de SAM, maintenant elle marche correctement. L’erreur était que je modifiais le clock du système et l’exécution de tout le programme devenait lente. C’est pour cela que apparemment les messages dans le LCD s’arrêtent une fois que je commençais avec l’éclairageil. -> ECLARAIGE FINI

Début de la création de la routine d’interruption, buttons:

Ma routine arrive à interrompre le processeur. Par contre elle le fait de manière constante et tout le temps. Cela cause l’effet que l’éclarage du LCD varie toujours. Après 4 heures de travail, je n’arrive pas encore à trouver l’erreur. Je passe à la routine du buzzer.

Routine du buzzer:

La routine du buzzer et similaire à celle que j’ai utilisé pour gérer le PWM. Il y avais seulement une petit considération à prendre en compte parce que le buzzer est connecté dans le timer1. Après de moins d’une heure de travaile la routine marche correctement. -> BUZZER FINI

Avancement des derniers jours

Hier et aujourd’hui j’ai travaillé sur la carte de mon TP. Surtout cette après-midi et ce soir j’ai pu avancer un peu plus :
- LCD : la configuration est finie, et les tâches qui alternent les écritures des deux lignes marchent bien.
- backlight : la configuration du PWM est déjà fait et marche aussi.
- buzzer : le code est déjà écrit, mais j’ai encore un bug. Peut-être, je sais quel est le registre qui est mal configuré.
- boutons : aparamment une ligne de la configuration du NVIC du PC13 bloque l’exécution de toute la carte. Je n’ai pas eu de temps de trouver exactement le problème.
- zigbee : pas encore commencé.

Par rapport à l’article à propos des processus de décision des systèmes répartis, j’ai déjà presque fini d’écrire les points que j’ai présentés. Il me manque encore ajouter des figures, détailler quelques paragraphes et faire une correction gramaticale/orthographe.

Avancée du TP

Hier, j’ai fini le LCD, en passant les 3 heures de TP et environ 3 heures l’après midi. Le soir, avec Fabien, nous avons passé environ deux heure à faire le backlight en PWM, qui fonctionnait en allant se coucher. Cet après midi, j’ai vite réussi à faire fonctionner le buzzer d’après nos recherches de la veille, puis j’ai passé l’aprés midi (3 TH) pour récupérer les interruptions des boutons, pour allumer des diodes et modifier le rétro-éclairage. Je me suis arrétée sur cette réussite!

Tou dou dou dou di dou dou (ad lib.)

Comme tout le monde, j’ai surtout travaillé sur le TP ces deux derniers jours et (un peu) la semaine dernière.

Après avoir réussi un affichage sommaire sur le LCD la semaine dernière, je me suis attelé lundi à créér un petit protocole pour pouvoir afficher ce que l’on veut où l’on veut et sans conflits.

Aujourd’hui, c’etait au tour de la backlight en PWM, puis du buzzer (lui aussi en PWM) en enfin le ZigBee (un grand merci à Samuel pour m’avoir indiqué une manière propre de gérer l’UART).

À la fin, j’ai  visiblement réussi à configurer mon ZigBee puisque je recevais le broadcast, le message personnel (mon prénom sans cédille) et les notes de l’Ave Maria (que les oreilles entraînées auront reconnues dans le titre de cet article).

Quelques points à eclaircir cependant :

  • Pendant plusieurs secondes après configuration du ZigBee, je ne reçois rien si ce n’est ‘ERROR……..’
  • Parfois, le premier caractère que je reçois est remplacé par un chiffre (je penche pour un problème de buffering de ma part) …
  • Les notes ne m’ont pas l’air très justes, il faut que je vérifie mon buzzer si je n’ai pas oublié un facteur quelque part.

Sur le projet, j’avais quand même commencé le placement de la carte pendant le week-end, mais comme nous avions une forte contraintes de temps, Alexis a préféré placer et router notre carte pour pouvoir l’envoyer en production dès lundi.