Dinosaur Game
Objectif : réaliser un robot de jeu pour le célèbre Dinosaur Game de Google
Présentation
Le jeu du dinosaure (Dinosaur Game) est un jeu développé par Google et intégré au navigateur web Google Chrome. Le joueur guide un t-rex pixelisé (The Lonely T-Rex) dans un paysage à défilement latéral, en évitant les obstacles pour augmenter son score.
Pendant le jeu, le dinosaure se déplace continuellement de gauche à droite dans un paysage désertique en noir et blanc, le joueur essayant d’éviter les obstacles tels que les cactus et les ptérosaures en sautant ou en se baissant (en appuyant sur Espace ou ↑)
Principe de fonctionnement
Le robot de jeu est un système matériel et logiciel qui permet de jouer seul au jeu du dinosaure.
- L’action sur la touche pour sauter (espace) sera effectuée par un servomoteur
- La détection des obstacle par une photorésistance placée sur l’écran (voir aussi Mesurer une luminosité)
Matériel nécessaire
- Un Arduino UNO
- Un servomoteur
- Une photorésistance
- Une résistance de 10kΩ
Et pour l’assemblage, du ruban adhésif (double face de préférence).
Le jeu en ligne
Si vous n’utilisez pas Google Chrome, il existe de très nombreuses versions sur Internet :
- https://dinosaur.game/fr/
- …
Travail demandé
Détection des obstacles
En suivant les informations de la page Photorésistance :
Petits conseils :
- Plier délicatement les « pattes » de la photorésistance pour les aligner avec la surface de la photorésistance,
- Utiliser des câbles suffisamment long (en mettre plusieurs bout à bout s’il le faut),
- Fixer les connecteurs à l’aide de ruban adhésif,
Petits conseils :
- Agrandir un peu la fenêtre du navigateur (Ctrl+️) : 130% environ
- Utiliser du ruban adhésif transparent
- Ne pas éclairer directement le capteur : il ne doit détecter que la luminosité de l’écran
Action sur la touche Espace
Petits conseils :
- Choisir un bras suffisamment long,
- Placer le point d’action du bras au centre de la touche Espace.
Petits conseils :
- Choisir des valeurs suffisamment proches pour limiter la course du bras et ne pas trop forcer sur la touche Espace (10° à 20° d’amplitude devraient suffire),
- Tester l’efficacité en vérifiant que la touche est correctement actionnée/relâchée avec ces valeurs.
Voici ce qu’il faut obtenir :
Finalisation du programme
Pour que le programme soit facile à régler, il est conseillé de mettre toutes les constantes en début de code :
int SERVO_PIN = 9; // port numérique du servomoteur int LUX_PIN = A0; // port analogique du capteur de luminosité int POS_ON = 60; // angle servomoteur permettant d'actionner la touche int POS_OFF = 40; // angle servomoteur permettant de relâcher la touche int SEUIL_OBST = 820; // seuil de luminosité (valeur brute) permettant de détecter les obstacles
Les valeurs ci-dessus ne fonctionneront pas sur votre montage ! Il faut les déterminer par l’expérimentation.
Et voila le travail :