Cette application va vous permettre de réaliser un petit jeu vidéo (type tennis 2 joueurs) à l'aide d'une carte Arduino et du module Click Board Mikroe-1993 7x10 R click.­ Cette dernière est conçue sur la base de la version 1 joueur décrite dans notre bloc précédent.
   
  
Exemple Tennis 2 joueur


Les modules ClickBoard™ sont de petits modules additionnels développés par la société MikroElektronika. Ils sont conçus pour s’enficher facilement sur une multitude de cartes de développement via l’interface mikroBUS™, un standard matériel et logiciel pensé pour simplifier le prototypage. Elles permettent d’ajouter rapidement une fonctionnalité sans câblage complexe. Leur format DIL vous permettra également des les utiliser sur des plaques breadboard (boite de connexions sans soudure).

La présentation du module MIKROE-1993 utilisé dans l'application qui va suivre a déjà fait l'objet d'une description complète dans notre Blog Pilotage d'une matrice 70 leds avec un Arduino. Le raccordement entre l'Arduino et le module Click Board MIKROE-1993 7x10­R­Click reste identique à celui décrit dans le blog cité ci-avant. 
      

Description du concept du jeu vidéo Tennis 2 joueurs

Chaque joueur dispose d'une petite raquette de part et d'autre de la matrice (matérialisée par 2 leds côte à côte) qu'il pourra déplacer de bas en haut et de haut en bas à l'aide d'une résistance ajustable.
  
Au démarrage du jeu, le score de la partie s'affichera (0 - 0). Puis une petite balle (matérialisée par une led de la matrice) s'élancera dans l'aire de jeu. Le challenge pour chaque joueur consistera à renvoyer la balle vers le joueur adverse à l'aide de sa raquette.

Dès qu'un joueur rate la balle, celle-ci se met à clignoter à l'endroit où a été commise la faute et un point sera attribué au joueur d'en face. La platine « Flip & Click » en profitera pour afficher temporairement le score avant de lancer à nouveau la balle dans l'aire de jeu pour que la partie se poursuive.

Le joueur qui atteint les 5 points en premier a gagné la partie (ce qui se matérialise par un clignotement continu du score final sur la matrice). Pour jouer à nouveau, il vous suffira de solliciter le bouton-poussoir Reset de la platine..
       

Schémas du jeu vidéo Tennis 2 joueurs

Selon que vous utiliserez le module ClickBoard MIKROE-1993 seul et directement raccordé à votre carte Arduino ou que vous utiliserez une carte d'interface MIKROE-1581, réalisez un des 2 schémas ci-dessous.
 

Utilisation directe du module MIKROE-1993 avec votre carte Arduino


Schéma de câble Tennis 2 joueurs sans carte MIKROE-1581



Utilisation du module MIKROE-1993 en association avec la carte d'interface MIKROE-1581 et votre carte Arduino
 

Schéma de câble Tennis 2 joueurs

Dans tous les cas, il vous faudra avoir recours à une résistances ajustables supplémentaires. Le curseur de la première cette résistance ajustable sera relié sur l'entrée de conversion « analogique/numérique » A2 de la platine Arduino.  Le curseur de la deuxième résistance ajustable sera relié sur l'entrée de conversion « analogique/numérique » A1 de la platine Arduino. Les 2 contacts extrêmes de ces résistances ajustables seront reliés à la masse pour l'un et au 5 V pour l'autre. 
        

Etude du programme du jeu vidéo Tennis 2 joueurs

Cette nouvelle application est une version améliorée et plus complète de la version du jeu de tennis 1 joueur. Sa description sera donc assez limitée car la plupart de son fonctionnement a déjà été vu auparavant. Celui-ci reprend en effet toutes les bases précédentes (liées au déplacement de la balle) avec des tests complémentaires pour gérer cette fois-ci la collision de la balle avec les 2 raquettes ainsi que la perte de la balle dans les 2 camps.
 
Des variables supplémentaires ScoreJ1 et ScoreJ2 sont également utilisées pour la gestion des scores de chaque joueur. L'affichage des scores a aussi nécessité d'avoir recours à de nouvelles variables dont une variable de type tableau Mscorel Il ] dans laquelle nous avons mémorisé en début de programme la position de chaque led de la matrice nécessaire pour « dessiner » les chiffres 0 à 5.


Affichage des scores


Chaque chiffre a ainsi été "modélisé" avec 3 leds de large et 5 leds de haut (ce qui permet de positionner le chiffre en plein milieu de chaque mini-matrice et d'afficher le score des 2 joueurs sur l'ensemble de la matrice.

L'affichage du score consiste à utiliser une fonction dans laquelle on transfère les données de la variable Mscore[][] vers la variable principale de la matrice (afin de substituer l'affichage de la balle et des raquettes par celui du score). Les index de la variable Mscore[][] étant modifiés en fonction des chiffres à afficher et du joueur.

A chaque fois qu'un joueur rate la balle et qu'un point est attribué au joueur adverse, le programme teste si on a pas atteint la limite des 5 points afin de déclarer la fin du match (matérialisé par le clignotement continu du score final). Ce clignotement est réalisé par l'intermédiaire d'une seconde fonction au cours de laquelle la variable principale de la matrice est remise à jour avec les données de la variable Mscore[][] puis après un petit délai d'affichage, elle est effacée (pour que le score disparaisse également un moment) et ainsi de suite dans une boucle sans fin afin de pouvoir créer l'effet de clignotement.

A noter que nous avons utilisé une petite subtilité à chaque engagement de la balle, qui consiste a choisir une position et un sens de déplacement aléatoire de la balle afin de ne privilégier aucun des 2 joueurs et d'éviter que la partie ne débute toujours de la même façon à chaque engagement de la balle. Enfin comme pour l'application précédente, la vitesse de déplacement de la balle augmentera au fur et à mesure que les échanges entre les 2 joueurs se prolongeront jusqu'à arriver à une vitesse maximale (restant dans la limite de la jouabilité). Lorsqu'une balle est perdue, la vitesse reprend à nouveau à sa valeur initiale avant d'augmenter une fois encore au fil des échanges. 
  
 
Vous pouvez retrouver le code source de ce programme en cliquant ici : code source Arduino & modules Click Board

Produit ajouté à ma liste