Dernière mise à jour :
20/03/2011
Présentation
Il s'agit du même jeu d'adresse que mon
chemin
électrique 001, mais avec quelques petites évolutions, le tout basé
sur un PIC de type 16F628A.
Je sais, utiliser un PIC pour des fonctions aussi basiques peut
paraître du luxe, surtout pour ceux qui ne veulent absolument pas
entendre parler des composants programmables (comme moi il n'y a pas
très longtemps). Je sais toujours faire un compteur avec un
circuit logique classique, je sais faire un générateur
sonore avec des portes logiques, et je sais faire un système
anti-rebond. Bien, mais si tout ceci peut tenir dans un seul boitier,
pourquoi s'en priver ? J'ai donc décidé de faire comme
ça. Les caractéristiques principales sont donc les
suivantes :
- affichage du nombre de fois où l'anneau touche le fil électrique,
avec bouton de RAZ.
- possibilité de définir la "sensibilité" du toucher (durée anti-rebond
ajustable)
- générateur sonore intégré
Le schéma
Sans rire, je trouve ce schéma plus simple que celui adopté pour la
deuxième version de mon
modèle 001.
Le chemin électrique
De ce côté, aucun changement, on a toujours affaire au fil
électrique autour duquel on met la boucle qui ne doit rien
toucher.
Réglage du temps de réaction
Comme il restait des ports de libre sur le PIC, je me suis dit qu'il
était interressant d'en utiliser 2 ou 3 pour définir la
sensibilité de réaction de l'appareil. Traduction : temps
minimum de contact entre les deux conducteurs pour prise en compte. Je
pense en fait que deux bits (deux entrées du PIC) sont
suffisants, puisque cela permet quatre combinaisons possibles. J'ai
ainsi retenu les quatre durées de 1 ms, 2 ms, 5 ms et 10 ms,
configurables de la sorte :
- pour 1 ms : ports RA5 et RA6 à la masse
- pour 2 ms : port RA5 au +5 V et port RA6 à la masse
- pour 5 ms : port RA5 à la masse et port RA6 au +5 V
- pour 10 ms : ports RA5 et RA6 au +5 V
Production des bips sonores
Trois bips sonores brefs et rapprochés sont émis à
chaque fois que la boucle tenue par le joueur touche le chemin
électrique. Ces bips sont générés de
façon logicielle, et sont obtenu grâce à une
succession très rapide de changements d'état logique de
la sortie RA0, sur laquelle est raccordé un petit transducteur
piezzo. Ce type de transducteur possède une fréquence de
résonnance pour laquelle le volume est maximal, cette
fréquence (ou plage de fréquence) est normalement
spécifiée par le constructeur. Dans notre cas, il serait
tout à fait possible de produire un signal de fréquence
plus faible (ce qui serait utile pour soulager le programme du PIC si
le besoin s'en faisait sentir), en tenant compte du fait que l'on
produit un signal rectangulaire qui est par nature riche en
harmoniques. Par exemple, si le transducteur présente une pointe
de sensibilité à 3,6 KHz, on peut très bien lui
transmettre un signal de fréquence égale à 1,2
KHz, et profiter du fait que l'amplitude de la troisième
harmonique est bien suffisante pour l'activer correctement. Le
transducteur peut être raccordé entre la sortie RA0 et la
masse, ou entre la sortie RA0 et le +5 V, cela revient au même
puisque le but est de lui transmettre un signal périodique. Le
seul point à respecter est que la différence de potentiel
aux bornes du transducteur soit nulle au repos, car ce type d'objet
n'aime pas trop la présence d'une tension continue permanente.
Si le transducteur est relié à la masse (c'est le choix
fait ici), il faut que la sortie RA0 soit à l'état
logique bas quand on ne veut pas de son. C'est ce qui est assuré
dans le logiciel du PIC.
Plus de puissance ?
Au lieu de relier le transducteur entre RA0 et la masse, il faut le
relier entre RA0 et RA1. Ces deux sorties produisent en effet des
signaux périodiques de polarité opposée au moment
de la production des sons, ce qui équivaut à fournir au
transducteur un signal dont l'amplitude crête à
crête est de 10 V et non plus de 5 V. Il sonne donc plus fort. Au
repos, les sorties RA0 et RA1 sont toutes deux forcées à
l'état logique bas, pour éviter la présence d'une
tension continue sur le transducteur, comme discuté
précédement.
Affichage numérique
Pas besoin de décodeur externe tel le CD4543, puisque l'on peut
faire ça de façon logicielle, et même très
simplement, sans aucun multiplexage. Nous n'utilisons en effet qu'un
seul afficheur de type cathode commune (CC, voir plus loin pour des
exemples de modèles utilisables) et le circuit programmable dispose
d'un nombre de lignes
de commande suffisant. La valeur du compteur interne est donc
"masquée" en un nombre directement affichable, le masquage
consistant simplement à spécifier quelles sorties du port
B (RB0 à RB6) doivent être activées pour afficher
tel ou tel chiffre. Par exemple, pour afficher le chiffre 1, il faut
allumer les segments B et C de l'afficheur et donc activer les
sorties
RB1 et RB2.
Afficheur utilisé
J'ai choisi un D350PK (équivalent TDSR5160) qui possède deux
rangées de 5 broches (une en haut et une en bas) mais n'importe quel
afficheur classique 7 segments de type
Cathode Commune convient
parfaitement. Les différences entre différents afficheurs
concernent surtout la taille des segments (par exemple 10 mm ou 13 mm)
et leur luminosité (par exemple 0,5 mcd à 10 mA ou 0,7
mcd à 10 mA).
Les broches notées K1 et K2 sur l'afficheur D350PK correspondent aux cathodes
mises en commun dans l'afficheur, les deux broches sont reliées entre
elles en interne. Bien sûr, si le modèle d'afficheur que vous choisissez n'a
pas le même brochage que celui choisi ici, le dessin du circuit
imprimé proposé ne conviendra plus, et il vous faudra
alors soit refaire un nouveau typon, soit câbler tout ça
en l'air.
Remarque : sur le
schéma, l'afficheur est un modèle
"générique", qui présente la particularité
de pouvoir être simulé comme les autres composants. C'est
pourquoi aucun numéro de broche ne lui est attribué, et
la correspondance avec l'afficheur "réel" choisi ici se fait via
les fils "a" à "g". Par exemple, la sortie RB0 du PIC pilote le
segment "a" de l'afficheur, et le segment "a" de l'afficheur D350PK se
trouve relié à la patte N°7. C'est pourquoi, sur le
circuit imprimé proposé plus loin, la patte 6 du PIC
(RB0) est reliée à la patte 7 de l'afficheur - au travers
de la résistance R1. Avec un autre type d'afficheur, ce
même segment "a" pourrait fort bien se trouver câblé
sur un autre numéro de broche, à vous de vérifier
le cas échéant.
Le logiciel
Fichier binaire compilé prêt à flasher dans le PIC
(format *.hex) et code source inclus dans l'archive suivante :
Chemin
électrique 002 - PIC 16F628A
Si vous souhaitez recevoir par la poste un PIC
préprogrammé et prêt à utiliser, merci de
consulter la page
PIC - Sources.
Le circuit imprimé
Réalisé en simple face, emplacement prévu pour un afficheur 7 segments de type D350PK.
Typon aux
formats PDF, EPS et Bitmap 600 dpi
Le prototype
Réalisé conformément au circuit imprimé dessiné ci-avant (cliquer pour
agrandir).
Pour l'afficheur, j'ai utilisé une barrette de supports tulipe
sécable, pour éviter de le souder directement sur le CI.
Le transducteur piezzo utilisé ici est une
récupération faite sur une montre à quartz avec
fonction alarme (le transducteur était monté sur le
couvercle de la montre). On voit des traces de colle dessus car je m'en
étais déjà servi pour un autre montage.
Remarques
20/03/2011- Ajouts infos sur le type d'afficheur employé.