Electronique > Réalisations > Flipper 001

Dernière mise à jour : 27/08/2009

Article non terminé, volontairement non référencé dans les sommaires du site


Présentation

J'avais promis ce montage à ma femme, avant que l'on se marie en 1990.

flipper_001_pcb_3d_a

Le temps a passé, mais elle s'en est souvenu et me l'a un jour rappelé à ma mémoire. A l'époque, l'idée était de construire un petit flipper selon un schéma existant, paru dans une revue d'électronique, et qui ne faisait appel qu'à des composants courants. Je n'ai pas pû remettre la main sur le schéma mais l'idée générale m'est restée en mémoire, et je suis parti sur une construction similaire mais toutefois plus élaborée, profitant des nouveaux circuits de type microcontrôleur avec qui j'ai fait connaissance entre temps. Plusieurs leds numérotées sont placées de façon volontairement désordonnée sur un circuit imprimé, celles dont les numéros se suivent ne sont pas côte à côte. Autour de chacune de ces leds, un petit arceau métallique qu'une bille métallique doit venir toucher, quand la led s'allume. Sur le parcours, un certain nombre de picots verticaux constituent des pièges qu'il faut éviter. Le but du jeu est simple. A la mise sous tension, une led s'allume. Le joueur doit faire bouger le "plateau" afin de mettre en mouvement la bille, qui doit alors toucher l'arceau qui l'encercle, et ce sans toucher les picots-piège. Dès que la bille touche l'arceau de la led allumée, cette dernière s'éteind et une autre s'allume. Le joueur doit alors déplacer la bille vers la led qui vient de s'allumer, et continuer ainsi jusqu'à ce que toutes les leds aient été allumées à tour de rôle. Le fait de toucher l'arceau d'une led éteinte ne pénalise pas le joueur, il ne se passe rien. Un compteur à trois chiffres s'incrémente de un point à chaque fois que la bille touche l'arceau adéquat, et de dix points supplémentaires si le joueur arrive à allumer toutes les leds sans toucher un des picots-piège. Si un picot-piège est touché, 5 points sont décomptés. Le circuit (qui sera) présenté ici est construit autour d'un PIC de type 16F628. J'aurais très bien pû reconstituer un schéma à base de circuits logiques classiques, mais j'avais vraiment envie d'ajouter un compteur numérique et un générateur sonore avec des sons jouant différement selon l'avancée du compteur. Au final, le circuit reste très simple au vu des fonctions assurées.

Schéma

La moitié gauche du schéma représente la section "commande" avec son composant programmable, et la moitié droite représente la section "affichage" qui dévoile le placement physique des leds et des afficheurs.

flipper_001

Le coeur du montage
Le cerveau du montage est encapsulé dans le PIC 16F628A, qui d'un point de vue logiciel comprend tout le nécessaire pour allumer les leds, compter et décompter le score et reconnaitre les contacts électriques établis grâce à la bille. 3 circuits intégrés additionnels de type CD4094 (registres à décallage) ont été ajoutés pour la commande des afficheurs sept segments. Ces circuits auraient sans doute pû être évités si j'avais adopté la méthode du multiplexage pour l'ensemble du circuit, mais je ne me sentais pas assez à l'aise avec tout ça et préférais obtenir un circuit fonctionnel rapidement. 19 ans d'attente me semble suffisant comme excuse.

Allumage des LED
L'allumage des leds correspond à un séquençage piloté par le PIC. A la mise sous tension, la led D1 s'allume et le logiciel du PIC attend que l'entrée IN soit portée à un potentiel positif de 5 V, ce qui ne peut arriver que si la bille établi un contact électrique entre le cuivre du circuit imprimé sur lequel elle évolue et le cerceau qui encercle la led allumée. Dès que le logiciel constate l'apparition de la tension attendue sur l'entrée IN (port RA5), la led suivante (en l'occurence D2) s'allume et le score est incrémenté de 1 point. Si le joueur parvient à allumer huit leds consécutives sans toucher un des picots-piège, le score est augmenté d'un bonus de 10 points.

Détection des pièges
Le contact entre la bille et un des picots-piège se traduit par la détection d'un front montant sur l'entrée PP. Contrairement à la détection du contact entre bille et cerceau des leds, un nettoyage des impulsions électriques reçues est ici nécessaire pour ne pas pénaliser trop le comptage. Il est donc fait appel à un système de temporisation qui fait en même temps offie d'anti-rebonds, et qui inhibe la détection des pièges pendant une seconde à compter du premier contact. Toujours afin de laisser plus de chance aux malchanceux, le temps de contact entre bille et picot-piège doit être d'au moins 400 ms pour être pris en compte (un frolement rapide n'est pas pris en compte). Toucher un picot-piège de façon franche a pour conséquence la chute du score de 5 points.

Affichage du score
La transmission de la valeur du score stockée dans le PIC vers les afficheurs, se fait sur trois fils appelés Data, Clock et Strobe, monopolisant respectivement les ports RA0, RA1 et RA2 du PIC. Chaque mise à jour du score affiché nécessite l'envoi de 24 données logiques de façon sérielle (les unes après les autres), mais cela se fait sur un temps très court, qui ne pose aucun problème pour le déroulement des autres instructions du logiciel. La conversion du format série (en sortie du PIC) au format parallèle (afficheurs) est assurée par les registres à décallage CD4094.

Bips sonores
Afin de donner un peu de vivant au système, j'ai prévu quelques bips sonores dont la fréquence dépend des élements touchés :
- un bip bref et aigu quand la bille touche le cerceau d'une led,
- un double bip long et grave quand la bille touche un picot-piège.
- un triple bip montant à chaque bonus de 10 points.
Les sons sont restitués par un buzzer piezzo-électrique raccordé directement entre la borne RA4 du PIC et le +5 V d'alimentation. Cette sortie se fait en effet en drain ouvert et le buzzer, qui présente une impédance interne assez élevée, peut constituer une charge directe non dangeureuse pour la sortie.

Logiciel du PIC

Fichiers de code source et fichier binaire compilé (*.hex) disponibles dans l'archive suivante.
Flipper 001 - 16F628A

Circuit imprimé

Le circuit imprimé est réalisé en double face, cela était nécessaire pour disposer d'une surface "propre" et conductrice sur le plan supérieur. Pour un fonctionnement correct à long terme, il est impératif d'étamer le circuit à la vague (étamage à chaud). Un étamage chimique à froid ne convient pas car la très fine couche d'étain partira rapidement suite aux passages répétés de la bille.

-