Dernière mise à jour :
09/08/2009
Article non terminé, volontairement non
référencé dans les sommaires du
site - Fonctionne en partie
Présentation
Cet orgue électronique, de type polyphonique (on peut jouer
plusieurs notes à la fois), est simple à réaliser,
si on le compare à tout ce qu'il fallait mettre en oeuvre il y a
quelques dizaines d'années pour obtenir la même chose. Sa
stabilité en fréquence est excellente, puisque
dépendante d'une base de temps à quartz. Si vous trouvez
cette réalisation trop complexe, vous pouvez toujours vous
tourner ves l'
orgue
001 ou vers l'
orgue
002, qui sont bien plus simples mais qui sont de type monodique (on
ne peut jouer qu'une seule note à la fois).
Synoptique
Avant de présenter le schéma complet, il est sans doute
bon de faire quelques rappels de base sur la façon
d'élaborer des notes de musiques. Je vous invite donc à
jeter un oeil à la page
Notes
de musique. Ceci lu, vous comprendrez probablement plus vite le
schéma proposé par la suite.
Schéma
Nous y voici donc.
Génération des fréquences de base
Les
douze notes de bases sont produites grâce à un PIC de
type 18F2420 ou 18F2520, lequel fonctionne entièrement sur son
horloge
interne et ne nécessite aucun composant externe.
L'horloge est fixée au maximum permis par ce circuit, c'est
à dire 32 MHz (8 MHz x 4 avec PLL interne). Les tonalités
sont disponibles sur les ports B et C du PIC, et
aboutissent à un petit ampli BF au travers de résistances
servant de sommation quand plusieures touches sont actionnées en
même temps.
Section BF de puissance
L'amplitude des notes générées par le PIC
étant de 5 Vcac, aucun problème de niveau, on en a
même à revendre ! Le volume est ajustable grâce au
potentiomètre RV1, l'ampli en lui-même est celui
décrit à la page
Ampli BF 003, avec quelques composants en moins.
Projet de départ
J'ai essayé au départ de bosser avec un
16F628A, croyant un peu naïvement que ce circuit pouvait
fonctionner correctement, à une fréquence d'horloge de 20
MHz (5 MHz en interne). Malheureusement, l'ensemble des routines
prenait tant de temps que l'écart entre les notes de sortie
n'étaient pas du tout respectées. Chaque
signal rectangulaire représentatif d'une note de base devait
ensuite être appliqué à un compteur binaire qui
assurait les
divisions par deux nécessaires pour l'obtention des notes des
octaves inférieures.
Premier schéma à base de 16F628A, qui ne fonctionnait pas
Logiciel
Code source et fichier binaire compilé (*.hex) dispo dans l'archive qui
suit :
Orgue_003 -
18F2420 - Fonctionne (bons écarts entre notes) mais on ne peut pas monter très haut en fréquence
Orgue_003 -
18F2520 - Fonctionne (bons écarts entre notes) mais on ne peut pas monter très haut en fréquence
Si vous souhaitez recevoir par la poste un PIC
préprogrammé et prêt à utiliser, merci de
consulter la page
PIC
- Sources.
Prototype
Réalisé sur plaque d'expérimentation sans soudure,
le circuit ne comportait que le PIC, associé à un petit
HP avec une résistance série pour écouter ce que
sortaient les diverses pattes du composant.
Ca marche du premier coup !
Pensez donc ! Tout fonctionnait bien d'un point de vue simulation, mais
une fois mis en pratique, aucun signal ne se manifestait sur l'ensemble
des sorties du PIC. J'ai cherché un bon moment,
soupçonnant tout de même un problème de
configuration d'horloge. C'est la première fois en effet que je
programmais un 18F2420 / 18F2520, et en prime je démarrais avec
une configuration d'horloge interne avec PLL... Dans le doute, j'ai mis
un quartz de 8 MHz entre les deux pinoches OSC1 et OSC2 et bingo,
ça fonctionnait (mais vraiment à fréquence
très grave) ! Après quelques recherches sur internet et
(re)lecture du datasheet du PIC, j'ai découvert le
problème : d'une part, j'avais configuré le PIC en
HS-PLL, pensant que cela fonctionnait aussi bien avec quartz externe
qu'avec oscillateur interne, et d'autre part j'avais omis des lignes
spécifiant la fréquence d'oscillateur interne
souhaitée et l'activation de la PLL x 4. Après correction
(voir code source pour détail), tout allait parfaitement bien,
et je sais maintenant comment faire pour utiliser un quartz de 12 MHz
avec PLL x 4 pour passer d'une fréquence d'horloge de 32 MHz
à 48 MHz... pour remonter un peu la fréquence des notes !
Peut mieux faire...
Un peu dur à croire, et pourtant : cet
unique
composant (certes programmable) sort les 12 notes de base, avec un
écart tout à fait correct. Les seuls reproches que je puisse faire au
circuit dans l'état actuel, sont les suivants :
- les notes produites sont à relativement basse fréquence, la mise en
oeuvre de diviseurs par deux à la suite n'est jouable que pour un ou
deux octaves.
- Le La n'est pas un La... Oui, c'est la simplicité même
du circuit qui
veut ça. Mais après tout, pourquoi donner des noms de
note aux touches
? Quand j'étais môme, je jouais de petits airs de musique
sur un
harmonium chez mes grands parents, sans savoir que telle touche blanche
était un Do ou un Sol... Par contre, il me semble
nécessaire que les
notes produites soient tout de même des "vraies" notes, avec les
bons
écarts, pour que l'oreille ne s'habitue pas avec des choses pas
justes... Bref, je sais comment faire pour produire des notes justes
avec un oscillateur externe, mais comme cela était contraire
à mon souhait de départ (utiliser le minimum de
composants), je n'ai pas poussé plus loin.
Circuit imprimé
Non réalisé, ça va de soi.