Innehållsförteckning:

ESP32 VGA arkadspel och joystick: 6 steg (med bilder)
ESP32 VGA arkadspel och joystick: 6 steg (med bilder)

Video: ESP32 VGA arkadspel och joystick: 6 steg (med bilder)

Video: ESP32 VGA arkadspel och joystick: 6 steg (med bilder)
Video: 自作ミニ筐体で心眼! 2024, Juli
Anonim
Image
Image
ESP32 VGA arkadspel och joystick
ESP32 VGA arkadspel och joystick
ESP32 VGA arkadspel och joystick
ESP32 VGA arkadspel och joystick

I denna instruerbara kommer jag att visa hur man reproducerar fyra arkadspel som spel - Tetris - Snake - Breakout - Bomber - med hjälp av en ESP32, med utgång för en VGA -bildskärm.

Upplösningen är 320 x 200 pixlar, i 8 färger. Jag har tidigare gjort en version med en Arduino Uno (se här), men upplösningen var bara 120 x 60 pixlar, 4 färger, och Arduino -minnet var nästan fullt. Tack vare ESP32s högre prestanda är både upplösning och spelbarhet högre. Dessutom finns det fortfarande gott om minne, så att lägga till nya spel i framtiden blir enkelt.

Jag kommer också att visa het att ansluta en enkel joystick genom en RS232 -kabel. Jag använder samma pinout av Commodore 64.

Detta projekt möjliggörs av det fantastiska ESP32 VGA -biblioteket skrivet av Fabrizio Di Vittorio. Se här för mer information.

Steg 1: ESP32 -kort, Arduino IDE -installation och VGA -bibliotekskonfiguration

ESP32 -kort, Arduino IDE -installation och VGA -bibliotekskonfiguration
ESP32 -kort, Arduino IDE -installation och VGA -bibliotekskonfiguration
ESP32 -kort, Arduino IDE -installation och VGA -bibliotekskonfiguration
ESP32 -kort, Arduino IDE -installation och VGA -bibliotekskonfiguration
ESP32 -kort, Arduino IDE -installation och VGA -bibliotekskonfiguration
ESP32 -kort, Arduino IDE -installation och VGA -bibliotekskonfiguration

Först och främst måste du köpa en ESP32 version 1 eller högre. Det finns många versioner tillgängliga, men jag rekommenderar att du väljer en med många stift, helst en modell som den på den här bilden, med 38 stift. Jag använder den här versionen, men jag tror att många andra också är bra. På ebay kan du hitta den här modellen för mindre än 7 euro, inklusive leverans.

När du har fått tavlan måste du fortsätta med följande tre delsteg:

  1. Installera den senaste Arduino IDE
  2. Konfigurera ESP32 i IDE och
  3. Ladda ner och installera VGA -biblioteket

Delsteg 1. Det finns olika metoder för att programmera ESP32, men här måste du använda Arduino IDE (jag använder förresten version 1.8.9). För att installera det kan du gå till Arduino IDE -sidan och följa instruktionerna.

Delsteg 2. När den tidigare åtgärden är klar måste du konfigurera din ESP32 i Arduino IDE. Detta är inte trivialt, eftersom ESP32 inte är (ännu?) Infödd i det. Du kan följa den här självstudien eller följande steg.

1) öppna Arduino IDE

2) öppna inställningsfönstret, File/Preference, alternativt tryck på "Ctrl+komma"

3) gå till “Extra Board Manager URLs”, kopiera och klistra in följande text:

https://dl.espressif.com/dl/package_esp32_index.js…

och klicka på OK.

4) Öppna styrelsechef. Gå till Tools/Board/Boards Manager …

5) Sök efter ESP32 och tryck på installationsknappen för "ESP32 by Espressif Systems":

6) Vid denna tidpunkt, när du ansluter din ESP32 för första gången, bör du välja rätt modell i den långa listan med tillgängliga ESP32 -kort (se bilden i detta steg). Vid tvivel om modellen, välj bara den generiska, dvs den första. Det funkar för mig.

7) systemet bör också välja rätt USB (COM) -port och uppladdningshastighet (normalt 921600). Vid denna tidpunkt bör anslutningen mellan din dator och ESP32 -kortet upprättas.

Delsteg 3. Slutligen måste du installera FabGL VGA-biblioteket. Klicka här för att ladda ner hela den komprimerade filen. Komprimera den och kopiera den resulterande mappen (FabGL-master) i mappen Arduino IDE bibliotek, som ser ut som:

"… / arduino-1.8.12 / bibliotek".

Steg 2: Ladda upp "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Ladda ner ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip längst ner i detta steg. Packa upp och öppna den med Arduino IDE och ladda upp den till din ESP32. Om du inte har några felmeddelanden bör koden redan köras och du behöver bara ansluta VGA -porten och knapparna (eller joysticken).

Steg 3: Ansluta VGA -porten

Ansluta VGA -porten
Ansluta VGA -porten

Du behöver följande delar:

  • en DSUB15 -kontakt, dvs en VGA -honkontakt eller en VGA -kabel som ska klippas.
  • tre 270 Ohm motstånd.

Anslut ESP32 GPIO -stift 2, 15 och 21 till VGA -rött, grönt respektive blått genom 270 Ohm -motstånden.

Anslut VGA Hsync och Vsync till ESP32 GPIO -stift 17 respektive 4.

Anslut DSUB15 -kontaktstiften 5, 6, 7, 8 och 10 till ESP32 GND.

För definition av VGA DSUB15 -kontaktstift, se bilden i det här steget. OBS! Detta är lödsidan av honkontakten.

Steg 4: Anslut de fyra knapparna

Anslut de fyra knapparna
Anslut de fyra knapparna
Anslut de fyra knapparna
Anslut de fyra knapparna
Anslut de fyra knapparna
Anslut de fyra knapparna

Om du inte har en C64 -joystick kan du ansluta fyra knappar efter det här steget. Om du har joysticken kan du hoppa över det här steget och hoppa till nästa, men du kan ändå ansluta både knapparna och joysticken (de är ändå "parallella").

Schemat i det här steget visar hur du ansluter en enda knapp (normalt öppen) från +5V till den angivna stiftet ESP32.

Observera att du också måste ansluta den ESP -givna stiftet till GND genom ett 1 till 5 kOhm -motstånd. På detta sätt när knappen släpps (öppen) är ESP -stiftet på exakt noll volt. Mer specifikt måste du ansluta fyra knappar med följande ordning:

  • Pin 12 till höger knapp
  • Pin 25 till upp -knappen
  • Stift 14 till vänster knapp
  • Stift 35 till nedknappen

Steg 5: Anslut joysticken

Anslut joysticken
Anslut joysticken
Anslut joysticken
Anslut joysticken
Anslut joysticken
Anslut joysticken

En C64 -joystick har pinout som visas på den första bilden i detta steg. För att ansluta den till ESP32 behöver du en 9 -stifts DSUB -hankontakt (dvs. ett uttag), som visas på den andra bilden. Jag tog bort en med synliga stift från ett gammalt elektroniskt kort. Du kan använda en värmepistol för att ta bort den (men gör det utomhus!).

Du måste ansluta stiften enligt den numeriska ordningen på dessa bilder. Observera att schemat hänvisar till joysticksidan, så det representerar anslutningen av dess honkontakt. Uttaget (hane) för anslutning till ESP32 har stiften med en "spegel" -anordning. Kom ihåg att i fall av tvivel alltid stiftnumret rapporteras på han- och honkontakterna, som visas på den tredje bilden.

Om du bara vill styra spelen med joysticken ansluter du dess gemensamma stift (9) till ESP32 +5V, och joystickstift 1, 2, 3, 4 och 6 till ESP -givna stift efter följande lista.

  • ESP stift 12 till höger knapp (RS232 stift 4)
  • ESP -stift 14 till vänster knapp (RS232 stift 3)
  • ESP pin 35 till Down -knapp (RS232 pin 2)
  • ESP -stift 25 till Upp -knapp (RS232 -stift 1 och 6, dvs styrspak)

OBS! ESP -stiften 12, 14, 25 och 35 måste också anslutas till GND genom ett 1 till 5 kOhm motstånd. På detta sätt när knappen släpps (öppen) är ESP -stiftet på exakt noll volt.

NB2 joystick UP-position och avfyrningsknapp är anslutna till ESP-stift 25-

Jag har anslutit fyra knappar på PC -kortet, på så sätt behöver jag inte joysticken för att spela (även om det är mycket roligare med joysticken). Återigen måste RS232 -stiftet 9 vara anslutet till +5 V och joystickstiften är precis parallella med knapparna.

Steg 6: Slutsats och bekräftelse

Slutsats och erkännande
Slutsats och erkännande

Om allt fungerar som det ska är det bara att ansluta VGA -skärmen så ska du kunna njuta av ett gammalt spel!

Du kan också rita en Mandelbrot -uppsättning med en upplösning på 640 x 350 pixlar, bara för att testa VGA -bibliotekets funktioner.

Observera att koden är skriven så att andra spel enkelt kan läggas till i framtiden (ESP32 har gott om plats!). Jag detta projekt får tillräckligt med intresse, jag kanske gör det …

Slutligen vill jag uttrycka mina tankar till Fabrizio Di Vittorio för hans fantastiska ESP32 VGA -bibliotek. För mer information, exempel och … Space Invaders, besök hans webbplats.

Rekommenderad: