Evolution technique du TVPong:

Un pas vers la miniaturisation et l'autonomie du jeu grâce à l'ATMega 328

Tv pong atmega gal 1

          La suite de la réalisation du jeu de TV_Pong, comme promis en version plus évoluée et autonome, pour les téléviseurs actuels, s'affranchie du gros boîtier, de l'alimentation secteur et de tout un accastillage de boutons, interrupteurs, Arduino Uno, haut parleur, etc etc ... donc une simplification et un prix de composants qui s'en trouve réduit drastiquement. J'en ai profité également pour améliorer l'ergonomie des manettes et rallonger les câbles pour jouer depuis le canapé sans avoir le nez sur l'écran. Cette évolution permet également d'être alimentée par une des nombreuses USB disponibles latéralement ou à l'arrière du téléviseur et aussi de pouvoir sortir le son sur ce qui sert de hauts parleurs (deux canaux mais en mono ). Les commandes de changement de vitesse de balle, d'angle de rebondissement, et de largeur de raquette sont prises en compte par de simples DILs à basculer avec un stylo à bille. Restent accessibles le bouton de remise à zéro et le sélecteur de jeu, remplacés par des poussoirs.

Le nouveau schéma :

Tvpongatmegasch

        Comme on peut le voir, l'Arduino Uno a cédé sa place à un microcontrôleur AT Mega328 de chez Microchip (depuis le rachat d'ATMEL) dont l'horloge est cadencée en externe par un quartz (Q1) de 16MHz, tiré par des condensateurs de 18 pF (C2-C3). Le circuit est alimenté par le 5Volt de l'USB de la télé, requinqué et nettoyé par un électrochimique de 100µF/18v/CMS (C4), dont la présence est signalée par une LED limitée en courant par la résistance de 680 Ohms (R5). Cette tension est également appliquée sur la pin 1 (/reset) , la pin 7 (alim) et la pin 20 (AVCC ref convertisseurs AD) par rapport à la masse découplée par un 100nF (C5) sur la pin 21 (AREF )  du micro. Toutes les entrées sont en TOR, actives à "0", et tirées en interne à VCC par la déclaration PULL_UP dans l'IDE d'élaboration du programme . Toutes ? sauf 3 évidement ! Les potentiomètres de jeu de 10KA à 50KA (P1-P2) renvoient une valeur analogique proportionnelle à la position de leur curseur respectif sur les pins 27 et 28 (ADC4-ADC5) de l'ATMega.  Et la 3ème alors ? c'est le sélecteur de jeu: pin 26 (ADC3) qui est une entrée analogique traitée, en numérique, pour simplifier la sérigraphie du circuit imprimé.  Les sorties maintenant : le son sur la pinuche 17 est envoyé sur les fiches RCA, rouge et blanche, après être passé par un pont diviseur fait par 2 résistances de 6K8 CMS (R1) sur 1K CMS(R2) et épuré de sa composante continue par un électrochimique de 1µF/18v/CMS (C1). La Synchro H et V, sortie pin 15 est maintenue à une valeur de 0-0,3 volt par la résistance de 1K CMS (R3) sur une charge de 50 Ohms standard . La vidéo est récupérée sur la pin 16 puis limitée à une valeur acceptable par une résistance de 470 Ohms CMS (R4) sur la même charge de 50 Ohms ... On s'en fiche un peu car le "0" donne le noir de l'écran et le "1"  donne lui, le blanc du terrain, balle, scores, raquettes  ... Les sorties Vidéo et Synchro sont mélangées pour donner la 'vidéo composite' qui sort sur la fiche RCA jaune . Voilà voilà pour le schéma ...

 

Le Circuit Imprimé :

Tv pong atmega pcb        De format hyper réduit, 45 x 55 mm, c'est un circuit simple face pour être reproductible sans équipement professionnel et selon la méthode décrite dans ces pages   Bon nombre de composants sont de type CMS et soudés côté 'cuivre ' . Au regard de ce petit nombre, je les ai soudés au fer, avec application (en tirant la langue), ça m'a évité, pour si peu, de faire chauffer mon four de refusion  . La petite taille du circuit permet également toutes reprises et modifications avec la version gratuite du regretté Eagle Cadsoft . Je n'avais pas d'inter DIL à trois boutons, c'est pour cela que la photo en montre quatre ... 

Les Plastiques :

          Les deux potentiomètres sont montés dans un 'bâton' ergonomique pour le tenir fermement avec la main et actionner le bouton avec le pouce ou l'index. Deux parties pour ce boîtier réalisées à l'imprimante 3D de couleurs différentes (une pour chaque joueur). Une sérieuse anti-traction du câble est assurée par un collage à la colle thermofusible: on ne sait jamais la réaction d'un mauvais perdant . La box qui habille l'électronique a subi le même sort pour le passage des fils. Trois pièces, plutôt quatre à réaliser: le fond, qui est assez haut car il y a des composants montés côté soudure, les deux boutons qui viennent en contact avec les poussoirs sur la face du circuit et le dessus avec la fenêtre d'accès au DILs de paramètres de jeu. J'ai joint un autre capot un peu plus design pour tenter ceux qui ont envie de l'essayer . A voir dans les fichiers de réalisation .

Tv pong atmega cab

Le Logiciel :

          Développé avec l'IDE Arduino, le programme est sensiblement le même que celui que j'avais chargé dans la version précédente; je n'ai eu qu'à modifier l'affectation des entrées/ sorties qui est différente sur l'ATMega328 et l'adapter pour simplifier le tracé du circuit imprimé. 

const char LEFT_POTENTIOMETER=19;
const char RIGHT_POTENTIOMETER=18;
const char GAME_SEL=17;
const char RESET_SW=5;
const char PADDLE_SIZE_SW=6;
const char SPEED_SW=7;
const char ANGLES_SW=8;
const char VERSION_SEL=12;
const char PAL_NTSC=4;

          Puis j'ai utilisé le compilateur de l'IDE dans l'onglet 'Croquis' et 'Exporter les binaires compilés' pour générer le fichier hex ... Avec un programmateur Dataman 40 Pro, j'ai ensuite buriné le programme dans le microcontrôleur ... Attention de prérégler le type d'oscillateur, les flags et ne pas mettre de diviseur sur la fréquence horloge ... une étourderie arrive si vite ! Mais l'avantage de la flashprom, c'est qu'on peut la reprendre !

Les Fichiers qui vont bien :

          Comme dans mes précédentes publications, le zip ci-dessous réuni les fichiers Eagle, Gerber, JPEG pour le circuit imprimé suivant les moyens de chacun. Pour le programme, j'ai joint le fichier ino  de l'IDE Arduino qui a servi au développement, à la compilation en fichier hex, ci-joint également. Et pour terminer les fichiers RSDOC des boîtiers, manettes et boxe, montés avec Design Spark Mechanical et convertis en fichiers STL pour être passés en GCode de pilotage de  l'imprimante 3D .

Tv pong atmegaTv pong atmega (1.31 Mo)

Et pour terminer :

          Toujours amusant de se retrouver avec un jeu vidéo qui est au ras des pâquerettes, tant pour les plaisirs simples apportés, que pour la nostalgie d'une jeunesse envolée ... Après plusieurs parties en famille, je suis sidéré de la concentration que ce jeu impose: on laisse vagabonder l'esprit et l'adversaire en profite pour nous en mettre un maximum . Des infâmes traitres ! 

 

Tv pong atmega fin

Ajouter un commentaire