Site ELEC344/ELEC381

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

Catégories

LCD, Led, Zigbee, IRQ, Buzzer : All good !

Bon, aujourd’hui est un jour plutôt cool puisque je suis arrivé au bout du TP, en ayant bien fignolé et modularisé les differentes parties, pour qu’il soit réutilisable facilement. Voici un petit bilan :

  • Les écritures sur le LCD se font simplement soit sur la ligne 1 soit sur la ligne 2, et sont thread safety. Si le message est plus long que 16 caractères, il défile sur l’écran, sans perturber l’affichage sur l’autre ligne. Le rétroéclairage est contrôlé par un timer en PWM et oscille entre differentes intensités.
  • Pour le buzzer, une fonction permet de jouer une note à une fréquence donnée.
  • Pour le Zigbee, l’initialisation se fait de façon à envoyer son prénom, recevoir des messages broadcastés, et jouer en streaming une musique diffusée sur les ondes. Le fichier zigbee.c présente deux fonctions génériques, une de lecture, et une d’écriture
  • Pour les interruptions, un bouton permet de figer l’intensité du rétroéclairage du LCD, l’autre de rendre muet le buzzer. Le fichier bouton.c met à disposition deux sémaphores réutilisables ailleurs pour exploiter les IRQ sur les boutons.

Maintenant, je vais essayer de jouer avec la carte inertielle pour apprendre à manipuler l’accéléromètre via bus SPI.

« TP STM32 Zigbee »

Après avoir bien perdu du temps à cause d’un interrupteur qui avait un peu bougé, j’ai continué la partie Zigbee du TP. J’ai passé pas mal de temps à comprendre pourquoi je restais tout le temps dans le handler d’interruption à la réception d’un message mais au final, je reçois le texte broadcasté.

Concernant le projet, j’ai revu les brochages des micro-controleurs qui n’avaient pas été mis à jour lors de la création des schémas (travail assez facile comparé au placement/routage qu’a du faire Micka !)

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 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.

Travail sur la carte de TP

Voici un petit récapitulatif de ce à quoi je suis arrivé en travaillant ce WE, lundi et aujourd’hui :

  • L’écran LCD de la carte fonctionne bien ! Il y a différents threads FreeRTOS qui s’exécutent afin d’alterner deux message sur la première ligne de l’écran, ainsi que deux sur la seconde ligne, et ce à des fréquences différentes.
  • L’intensité du rétroéclairage était initialement réglée en soft. Après une bataille avec les timers, c’est une magnifique PWM qui s’en occupe. J’ai fais un thread qui fait varier osciller progressivement l’intensité du rétroéclairage.
  • J’ai fait un fichier qui me permet de gérer les interruptions sur les deux boutons poussoir. L’un d’un entre eux permet d’ajuster la luminosité du rétroéclairage de la manière suivante : Il suffit d’arrêter l’oscillation de l’intensité du rétroéclairage lorsque celle ci convient en pressant le bouton. Si l’on le presse à nouveau, ça relance l’oscillation.
  • Le buzzer émet un son à une fréquence contrôlée par un timer en PWM.

What’s next ? Ce cher ZigBee !