Un carillon électronique à microprocesseur

Introduction

Ce projet est réalisé en complément du projet Tempo [1], dont il est, en fait, un élément déporté et pour lequel il réalise la signalisation. De plus, pour pratiquement le même prix, il fait fonction de sonnette d'entrée de la maison. Le déport est justifié par le besoin de le placer dans les piéces d'habitation alors que le récepteur Tempo est situé auprès du tableau électrique en annexe.

Le montage est réalisé autour du microprocesseur Atmel at89c2051 de la famille 8051. La communication entre les proceseurs se fait par la liaison série en 5v. Le cable de liaison est un cable téléphonique et fournit l'alimentation 5v sur une de ses paires.

Fonctions

Format des messages

'M' <L> <T> <data> ... <LF>

Logiciel

La boucle principale scrute en permanence la liaison série et assemble et décode les messages dès qu'ils se présentent. Le décodage consiste à positionner des registres pour ce qui concerne l'affichage des leds, et à trouver l'entrée dans la table des mélodies en fonction de l'évèmenent puis lancer l'éxécution de la première note.

Le reste du travail est effectué par la routine d'interruption du timer 0. Pour l'affichage des leds, La fréquence d'interruption est de 100 Hz. Un compteur logiciel divise la fréquence à 2 Hz pour produire le clignotement.

Pour la génération des sons, la fréquence d'interruption est variable à 2 fois la fréquence de la note. Cette fréquence reste établie pendant une durée. A l'échéance de cette durée, l'éxécution de la note suivante est lancée et ceci jusqu'à la fin du morceau.

Pour générer une fréquence, on a besoin d'un diviseur qui est chargé dans le compteur à chaque interruption. Ce diviseur est fourni par la table divisors à partir d'un index, qui est fourni par le premier octet de la table melody. Le second octet est la durée. Un coefficient global nloop multiplie la durée, il est calculé pour que la valeur durée soit inférieure à 255 et tienne sur un octet.

Le logiciel est programmé en assembleur. Les deux tables divisors et melody sont générées par deux programmes écrit en Perl respectivement divis.pl et note.pl. Ils calculent les diviseurs, fréquences et durées en fonction de la fréquence du quartz et de la chaine de division du 8051.

L'écriture des notes se fait manuellement, une note par ligne et de facon explicite par exemple DO3 . Voir le fichier partition pour un exemple complet.

le matériel

Le schéma:

Carillon

Une photo du montage:

Carillon

Une photo de la boite:

Carillon

Références Documentaires

  1. Récepteur de télécommandes pour le signal Tempo EDF

Download