mardi 24 septembre 2013

Utilisation d'un écran Nokia 5110 avec un Arduino pour jouer à Pong et Snake...

J'ai reçu la semaine dernière un petit écran LCD Nokia 5110 avec contrôleur Philips PCD8544 (résolution de 84 X 48 pixels).  Voici un compte-rendu de mes premières expérimentations.

Les branchements

Dans un premier temps, j'ai branché l'écran à l'Arduino en  suivant ce tutoriel d'Adafruit.  L'écran est conçu pour fonctionner à 3,3 V, et il est donc recommandé d'utiliser un convertisseur de niveau logique (comme un 4050) pour abaisser à 3,3 V les signaux provenant de l'Arduino.  Oui, je sais, quand on regarde sur le web on en arrive rapidement à la conclusion qu'au moins 80% des gens branchent l'écran directement à l'Arduino, sans utiliser de 4050.  Si j'en crois le site de Sparkfun, une telle pratique ne devrait pas endommager l'écran à court terme, mais risquerait de diminuer sensiblement sa durée de vie.

Voici donc à quoi est branché le 4050:




Il ne reste plus qu'à brancher la broche 1 (VCC) de l'écran au 3,3 V de l'Arduino, et la broche 2 (GND) de l'écran à une des broches GND de l'Arduino.  Si vous désirez allumer les LEDs de l'écran, branchez également la broche 8 (LED) de l'écran au 3,3 V de l'Arduino (personnellement, je préfère quand les LEDs sont éteintes).


La librairie d'Adafruit

Pour faciliter l'utilisation de l'écran Nokia avec un Arduino, Adafruit a mis au point les librairies Adafruit_PCD8544 et Adafruit_GFX.  Après les avoir installées, vous pouvez essayer le sketch intitulé "pcdtest" fourni avec la librairie PCD8544, ça donne une bonne idée des possibilités de ces librairies pour afficher du texte de différents formats, des images, des animations, etc.

La seule modification que j'ai dû apporter à ce sketch, c'est la ligne "display.setContrast(50);":  j'ai obtenu de bien meilleurs résultats en la remplaçant par "display.setContrast(60);".

Notez aussi que le "splash screen" qui apparaît au début pour montrer le logo d'Adafruit (et qui est appelé par la simple commande "display.display();",) est défini à l'intérieur de la librairie.  Je suppose que vous devez donc modifier la librairie si vous voulez afficher un "splash screen" montrant autre chose que le logo d'Adafruit?!?!

Snake

Un écran Nokia permet de transformer votre Arduino en mini-console de jeu... En ajoutant 5 boutons poussoirs branchés aux entrées analogiques 1, 2, 3, 4 et 5, vous pouvez jouer au jeu classique "Snake" grâce à ce sketch écrit par Ouarrak Ayoub (le sketch est commenté en italien).

Attention, pour utiliser le sketch avec le circuit que j'ai décrit plus haut, vous devez modifier l'assignation des broches:  la ligne "Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);" devient "Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);".

De plus, j'ai dû ajouter une ligne pour ajuster le contraste:  "display.setContrast(60);"   (juste en dessous de la ligne "display.begin();", sinon rien n'apparaissait sur mon écran.

Pong

Vous pouvez aussi remplacer les 5 boutons poussoirs par deux potentiomètres (branchés aux entrées analogiques 0 et 1) et jouer à Pong grâce à ce sketch écrit par Onur Avun .  Pour utiliser le sketch avec mes branchements décrits au début de cet article, il faut modifier l'assignation des broches de la façon suivante:

     #define PIN_SCE   4
     #define PIN_RESET 3
     #define PIN_DC    5
     #define PIN_SDIN  6
     #define PIN_SCLK  7

Bien entendu, selon les standards de 2013, c'est un peu minimaliste comme console de jeu...  L'intérêt réside surtout dans la possibilité d'étudier ces sketches afin de les modifier et de créer vos propres jeux... (PacMan ou Tetris, ce serait pas mal...)

Yves Pelletier (Twitter:  @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire