

| Composant | Description | Quantité |
|
Arduino R4 Wi-Fi |
La carte microcontrôleur principale exécute tous les jeux et contrôle les opérations de la console. | 1 |
| Carte de performances (PCB bidirectionnel) | Carte personnalisée utilisée pour monter et organiser soigneusement tous les composants, agissant comme un HAT enfichable pour l’Arduino. | 1 |
| Boutons poussoirs tactiles | Utilisé pour la navigation et les commandes de jeu (Haut, Bas, Sélection, Retour / Action). | 4 |
| Écran OLED I2C de 0,96 pouces | Écran compact pour afficher les graphiques du jeu, l’interface du menu et les scores. | 1 |
| Ronfleur | Génère des effets sonores pendant le jeu pour une expérience de jeu rétro. | 1 |
| Batterie LiPo 1S | Source d’alimentation portable pour rendre la console entièrement portable. | 1 |
| Convertisseur élévateur 5V | Augmente la tension de la batterie LiPo à un 5 V stable requis par le système. | 1 |
| Interrupteur à glissière | Utilisé comme interrupteur marche/arrêt principal pour la console. | 1 |
| Fils de connexion | Utilisé pour établir des connexions électriques entre les composants. | Au besoin |

| Composants | Signal | Broche Arduino | Type de broche |
|---|---|---|---|
| Écran OLED (SSD1306 128×64 I2C) | VCC | 5V | Pouvoir |
| GND | GND | Sol | |
| SDA | A4 | Données I2C | |
| SCL | A5 | Horloge I2C | |
| Bouton – HAUT | Signal | D4 | Saisir |
| Bouton – BAS | Signal | D2 | Saisir |
| Bouton – GAUCHE | Signal | D3 | Saisir |
| Bouton – DROITE | Signal | J5 | Saisir |
| Autre côté | GND | Sol | |
| Ronfleur | + | J7 | Sortir |
| – | GND | Sol | |
| Convertisseur élévateur 5V | SORTIE + | Broche 5 V | Pouvoir |
| DEHORS – | GND | Sol | |
| Batterie LiPo | + | Passer à Boost IN + | Entrée d’alimentation |
| – | Boost IN – | Sol |

Conseils d’assemblage rapide
∗ Utilisez des barrettes femelles sur la carte perforée afin que le HAT puisse être retiré pour la reprogrammation sans dessouder.
∗ Acheminez les fils I2C (SDA/SCL) loin des fils de signal des boutons pour minimiser le bruit sur l’écran.
∗ Vérifiez que la sortie du convertisseur boost est exactement de 5 V avec un multimètre avant de vous connecter à la broche 5 V de l’Arduino.
∗ Utilisez une gaine thermorétractable sur tous les câbles de la batterie LiPo pour éviter les courts-circuits.
∗ Gardez les fils de connexion aussi courts que possible pour conserver un format compact.
#include
#include
#include
- Le Arduino.h La bibliothèque donne accès aux fonctions principales d’Arduino telles que pinMode(), digitalRead(), millis(), delay() et Tone(), qui sont utilisées dans tout le programme.
- Le U8g2lib.h La bibliothèque est chargée de contrôler l’écran OLED SSD1306 128×64, permettant un rendu fluide des graphiques, du texte, des menus et des éléments de jeu.
- Le Fil.h La bibliothèque permet la communication I2C entre l’Arduino et l’écran OLED, garantissant un transfert de données approprié sur les broches SDA et SCL. Ensemble, ces bibliothèques constituent la base de la console de jeu Arduino.
Étape 2 ⇒ Constantes et définitions des broches
#define SCREEN_W 128
#define SCREEN_H 64
#define BTN_UP 4
#define BTN_DOWN 2
#define BTN_LEFT 3
#define BTN_RIGHT 5
#define BUZZER_PIN 7
#include "Asteroids.h"
#include "Breakout.h"
#include "Dino.h"
#include "FlappyBird.h"
#include "MazeRunner.h"
#include "Pacman.h"
#include "Pong.h"
#include "Snake.h"
#include "SpaceInvaders.h"
#include "Tetris.h"
bool btnPressed(uint8_t pin) {
static uint32_t lastTime[4] = {0, 0, 0, 0};
static bool lastSt[4] = {true, true, true, true};
uint8_t idx;
if (pin == BTN_UP)
idx = 0;
else if (pin == BTN_DOWN)
idx = 1;
else if (pin == BTN_LEFT)
idx = 2;
else if (pin == BTN_RIGHT)
idx = 3;
else
return false;
bool cur = (digitalRead(pin) == LOW);
bool edge = cur && !lastSt[idx] && (millis() - lastTime[idx] > 40);
if (cur != lastSt[idx])
lastTime[idx] = millis();
lastSt[idx] = cur;
return edge;
}
void setup() {
pinMode(BTN_UP, INPUT_PULLUP);
pinMode(BTN_DOWN, INPUT_PULLUP);
pinMode(BTN_LEFT, INPUT_PULLUP);
pinMode(BTN_RIGHT, INPUT_PULLUP);
pinMode(BUZZER_PIN, OUTPUT);
randomSeed(analogRead(A0));
u8g2.begin();
u8g2.setContrast(200);
u8g2.setFont(u8g2_font_6x10_tr);
u8g2.setDrawColor(1);
u8g2.setBitmapMode(0);
showSplash();
}
void loop() {
int sel = menuSelect();
switch (sel) {
case 0:
game_asteroids();
break;
case 1:
game_breakout();
break;
case 2:
game_dino();
break;
case 3:
game_flappy();
break;
case 4:
game_maze();
break;
case 5:
game_pacman();
break;
case 6:
game_pong();
break;
case 7:
game_snake();
break;
case 8:
game_spaceinvaders();
break;
case 9:
game_tetris();
break;
}
}
Futures mises à jour
- Développez la console en ajoutant plus de jeux et de nouvelles fonctionnalités de jeu.
- Améliorez l’expérience utilisateur avec la sauvegarde des scores élevés, des effets sonores supplémentaires et une conception de menu plus interactive.
- Introduisez des niveaux de difficulté réglables pour offrir aux joueurs différentes options de défi.
- Activez la prise en charge du multijoueur sans fil à l’aide du Arduino UNO R4 Wi-Fi pour un gameplay connecté entre deux consoles.
- Améliorez les performances matérielles grâce à l’optimisation de l’alimentation pour une durée de vie plus longue de la batterie et la prise en charge d’un écran plus grand.
Construisez vos propres consoles de jeu avec des didacticiels étape par étape et des guides de projet. Idéal pour les créateurs et les passionnés d’électronique intéressés par le matériel de jeu DIY.
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

-
Console de Jeu Portable rétro R36S 128 Go préchargés, Plus de 40 000 Jeux vidéo Classiques, Compatible avec Plus de 30 émulateurs, Console Portable sous Linux avec écran HD IPS de 3,5 Pouces (Violet)
-
Nawchedo Console de jeux rétro 4K HDMI avec plus de 40 000 jeux, 23 émulateurs, installation plug-and-play, deux manettes sans fil 2,4 GHz, 64 Go
