Table des matières:
- Fournitures
- Étape 1: Souder tous les composants
- Étape 2: Disposez toutes les choses dans des endroits
- Étape 3: Programmation
- Étape 4: Profitez !
Vidéo: Console de jeu DIY utilisant Arduino : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Dans ce tutoriel, je vais vous montrer comment créer une console de jeu avec Arduino nano. Donc, si vous voulez voir une vidéo détaillée dessus, consultez-la sur ma chaîne youtube
Fournitures
Si vous achetez à partir de ces liens, cela m'aidera à vous donner plus de projets
1) ARDUINO NANO2) ÉCRAN OLED3) BOUTONS POUSSOIRS4) FILS
Étape 1: Souder tous les composants
Ainsi, après avoir obtenu tous les composants, vous devez souder tous les composants comme indiqué dans ce schéma de circuit
Étape 2: Disposez toutes les choses dans des endroits
Après avoir tout soudé, arrangez tous les composants comme celui-ci pour lui donner un joli look
Étape 3: Programmation
Donc, enfin, après avoir suivi toutes les étapes correctement, il est temps de télécharger le code ci-dessous sur Arduino
#comprendre
#include #include #include #include //#include #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); const int c = 261; const int d = 294; const int e = 329; const entier f = 349; const entier g = 391; const int gS = 415; const int a = 440; const int aS = 455; const int b = 466; const int cH = 523; const int cSH = 554; const int dH = 587; const int dSH = 622; const int eH = 659; const int fH = 698; const int fSH = 740; const int gH = 784; const int gSH = 830; const int aH = 880; const char non signé PROGMEM dioda16 = { 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x3F, 0xF0, 0x3C, 0x00, 0x3C, 0x00, 0xFF, 0x00, 0x7F, 0xFF, 0x7F, 0, 0xFF, 0x, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00 }; const unsigned char PROGMEM storm = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, Fx00, 0x7, 0xFE, 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30,x, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x7F, 0xE00, 0x00,x, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01, 0xBF, 0xFC, 0x01F, 0xFA,, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x06,x, 0xC0, 0x03, 0x06, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xF8, 0x00, 0x00, 0x1D, 0xC0, 0x03, 0x70, 0x00, 0x80, 0x0C, 0x60, 0x05, 0xB0, 0x07, 0xF0, 0x08, 0x90, 0x09, 0x10, 0x1F, 0xF8, 0x09, 0xD0, 0x0,0x1, 0x90, 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0xFC, 0x10, 0x00, 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0xC8, 0x00, 0 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0xA0, 0, 0x 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xF0, 00, 0x00, 0xF8, 0x00, 0x00}; void setup() { pinMode(3, INPUT_PULLUP); pinMode(12, INPUT_PULLUP); pinMode(11, INPUT_PULLUP); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); display.clearDisplay(); display.setTextSize(0); display.drawBitmap (6, 11, tempête, 48, 48, 1); display.setFont(&FreeSans9pt7b); display.setTextColor(BLANC); display.setCursor(65, 14); display.println("xWing"); display.setFont(); display.setCursor(65, 17); display.setTextSize(0); display.println("vs"); display.setCursor(0, 0); float voltaza=readVcc()/1000; display.println(voltaza);; display.setFont(&FreeSans9pt7b); display.setCursor(65, 39); display.println("Mort"); display.setFont(); display.setCursor(65, 42); display.println("étoile "); display.setTextSize(0); display.setCursor(65, 55); display.println("par VRAJ"); display.setCursor(65, 20); display.display(); display.setFont(); bip (a, 500); bip (a, 500); bip (a, 500); bip (f, 350); bip (ch, 150); bip (a, 500); bip (f, 350); bip (ch, 150); bip (a, 650); retard (500); retard (500); } int metx=0; int mety=0; int postoji=0; int nep=8; int smjer=0; int go=0; entier rx=95; int ry=0; entier rx2=95; int ry2=0; entier rx3=95; int ry3=0; int bodovi=0; int brzina=3; //vitesse de la balle int bkugle=1; int najmanja=600; int najveca=1200; int promjer=10; entier rx4=95; int ry4=0; int zivoti=5; int poc=0; int ispaljeno=0; int nivo=1; int centar=95; pocetno long non signé=0; odabrano long non signé=0; trenutno long non signé=0; non signé long nivovrije=0; int poz=30; void loop() { if(go==0){ display.clearDisplay(); display.drawPixel (50, 30, 1); display.drawPixel(30, 17, 1); display.drawPixel(60, 18, 1); display.drawPixel(55, 16, 1); display.drawPixel (25, 43, 1); display.drawPixel(100, 43, 1); display.drawPixel(117, 52, 1); display.drawPixel(14, 49, 1); display.drawPixel(24, 24, 1); display.drawPixel(78, 36, 1); display.drawPixel(80, 57, 1); display.drawPixel(107, 11, 1); display.drawPixel(150, 11, 1); display.drawPixel(5, 5, 1); display.drawPixel(8, 7, 1); display.drawPixel(70, 12, 1); display.drawPixel (10, 56, 1); display.drawPixel(70, 25, 1); if(poc==0){ pocetno=millis(); odabrano= aléatoire (400, 1200); poc=1; } trenutno=millis(); //nivoi if((trenutno-nivovrije)>50000) { nivovrije=trenutno; nivo=nivo+1; brzina=brzina+1; //brizna neprijateljevog metka if (nivo % 2 == 0) { bkugle=bkugle+1; promjer=promjer-1; } najmanja=najmanja-50; najveca=najveca-50; } if((odabrano+pocetno)0) { display.drawCircle(rx, ry, 2, 1); rx=rx-brzina;} if(ispaljeno>1) { display.drawCircle(rx2, ry2, 1, 1); rx2=rx2-brzina;} if(ispaljeno>2) { display.drawCircle(rx3, ry3, 4, 1); rx3=rx3-brzina;} if(ispaljeno>3) { display.drawCircle(rx4, ry4, 2, 1); rx4=rx4-brzina;} if(digitalRead(12)==0 && poz>=2){ poz=poz-2;} if(digitalRead(11)==0&& poz128)postoji=0; if(smjer==0){ nep=nep+bkugle;} else {nep=nep-bkugle;} if(nep>=(64-promjer)) smjer=1; if(nep=nep-promjer && mety(centar-promjer)&&metx=pozicija-8 && ry<=pozicija+8) if(rx4) { rx=95; ry=-50; ton (9, 100, 100); zivoti=zivoti-1; } if(ry2>=pozicija-8 && ry2<=pozicija+8) if(rx24) { rx2=-50; ry2=-50; ton (9, 100, 100); zivoti=zivoti-1; } if(ry3>=pozicija-8 && ry3<=pozicija+8) if(rx34) { rx3=-50; ry3=-50; ton (9, 100, 100); zivoti=zivoti-1; } if(ry4>=pozicija-8 && ry4<=pozicija+8) if(rx44) { rx4=200; ry4=-50; ispaljeno=0; ton (9, 100, 100); zivoti=zivoti-1; } if(rx4<1){ ispaljeno=0; rx4=200;} if(zivoti==0) go=1; } if(go==1) { if(zivoti==0){ tone(9, 200, 300); retard (300); ton (9, 250, 200); retard (200); ton (9, 300, 300); retard (300); zivoti=5; } display.clearDisplay(); display.setFont(); display.setTextSize(2); display.setTextColor(BLANC); display.setCursor(7, 10); display.println("GAME OVER!"); display.setTextSize(1); display.setCursor(7, 30); display.println("score:"); display.setCursor(44, 30); display.println(bodovi); display.setCursor(7, 40); display.println("niveau:"); display.setCursor(44, 40); display.println(nivo); display.setCursor(7, 50); display.println("heure(s):"); display.setCursor(60, 50); display.println(trenutno/1000); display.display(); if(digitalRead(3)==0) { tone(9, 280, 300); retard (300); ton (9, 250, 200); retard (200); ton (9, 370, 300); retard (300); ponovo(); } } } void ponovo() { metx=0; mét=0; postoji=0; nep=8; smjer=0; aller=0; rx=95; ry=0; rx2=95; ry2=0; rx3=95; ry3=0; bodovi=0; brzina=3; //brizna neprijateljevog metka bkugle=1; najmanja=600; najveca=1200; promjer=12; rx4=95; ry4=0; zivoti=5; poc=0; ispaljeno=0; nivo=1; pocetno=0; odabrano=0; trenutno=0; nivovrije=0; } long readVcc() { // Lire la référence 1.1V par rapport à AVcc // définir la référence sur Vcc et la mesure sur la référence interne 1.1V #if défini(_AVR_ATmega32U4_) || défini(_AVR_ATmega1280_) || défini(_AVR_ATmega2560_) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #elif défini (_AVR_ATtiny24_) || défini(_AVR_ATtiny44_) || défini(_AVR_ATtiny84_) ADMUX = _BV(MUX5) | _BV(MUX0); #elif défini (_AVR_ATtiny25_) || défini(_AVR_ATtiny45_) || défini(_AVR_ATtiny85_) ADMUX = _BV(MUX3) | _BV(MUX2); #autre ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif délai(2); // Attendre que Vref règle ADCSRA |= _BV(ADSC); // Lancer la conversion while (bit_is_set(ADCSRA, ADSC)); // mesure de uint8_t low = ADCL; // doit d'abord lire ADCL - il verrouille ensuite ADCH uint8_t high = ADCH; // déverrouille les deux long result = (high<<8) | meugler; résultat = 1125300L/résultat; // Calculer Vcc (en mV); 1125300 = 1,1*1023*1000 renvoie le résultat; // Vcc en millivolts } void beep(int note, int duration) { // Play tone on buzzerPin tone(9, note, duration); retard(durée); pas de tonalité(9); retard (50); }
Étape 4: Profitez !
Toutes nos félicitations ? vous l'avez finalement fait, alors si vous l'avez aimé, abonnez-vous à ma chaîne youtube
Conseillé:
Console de jeu portable bricolage utilisant RetroPie: 7 étapes
Console de jeu portable DIY utilisant RetroPie : Regardez la vidéo ci-dessus pour mieux comprendre ce projet. Amende. Il est temps de vous lancer ! Tout d'abord, nous allons utiliser RetroPie. Cela nous laisse deux options. Si nous avons déjà installé Raspbian sur notre carte SD, alors nous pouvons installer RetroP
Contrôleur de jeu Arduino Rhythm (pour mon propre jeu): 6 étapes
Contrôleur de jeu de rythme Arduino (pour mon propre jeu) : dans ce instructable, je vais vous montrer comment je construis ce contrôleur de jeu de rythme à partir de zéro. Cela implique des compétences de base en menuiserie, des compétences de base en impression 3D et des compétences de base en soudure. Vous pouvez probablement construire ce projet avec succès si vous n'avez aucun ex
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
Console de jeu portable Recalbox utilisant 2.2 TFT: 6 étapes
Console de jeu portable Recalbox utilisant 2.2 TFT: Instructions pour le bricolage d'une console de jeu portable recalbox utilisant un écran LCD TFT 2.2 "et un Raspberry Pi 0 W et des boutons GPIO. Vous pouvez visionner cette vidéo youtube pour une démonstration complète des étapes impliquées: A. Obtenez toutes les pièces.B. Soudez les pièces ensemble
Console de jeu Arduino Pocket + A-Maze - Jeu de labyrinthe : 6 étapes (avec photos)
Arduino Pocket Game Console + A-Maze - Maze Game : Bienvenue dans mon premier instructable ! Le projet que je veux partager avec vous aujourd'hui est le jeu de labyrinthe Arduino, qui est devenu une console de poche aussi performante qu'Arduboy et des consoles similaires basées sur Arduino. Il peut être flashé avec mes (ou vos) futurs jeux grâce à expo