Sisällysluettelo:

ESP8266 VGA Pong: 5 vaihetta (kuvilla)
ESP8266 VGA Pong: 5 vaihetta (kuvilla)

Video: ESP8266 VGA Pong: 5 vaihetta (kuvilla)

Video: ESP8266 VGA Pong: 5 vaihetta (kuvilla)
Video: ESP8266 VGA Pong 2024, Marraskuu
Anonim
Image
Image
Materiaaliluettelo
Materiaaliluettelo

Tässä ohjekirjassa näytän kuinka rakentaa kopio klassisesta Pong -pelistä VGA -näytölle käyttämällä ESP8266: ta ja muutamia muita komponentteja.

Tämän pelin tekee mahdolliseksi Sandro Maffiodon (alias Smaffer) äskettäin GitHubissa julkaisema EspVGAx -kirjasto, ja tietääkseni tämä on ensimmäinen peli, joka hyödyntää sitä.

Kirjasto toteuttaa resoluution 512 x 480 pikseliä, joka on tallennettu RAM -muistin sisäiseen kehyspuskuriin, mikä vaatii 30720 tavua. Resoluutio on valtava verrattuna Arduino TVout- tai VGAx -televisioihin (128 x 96 ja 120 x 60 pikseliä). Toivon, että tämä peli inspiroi muita ohjelmoijia kehittämään tai toistamaan monimutkaisempia pelejä.

Vaihe 1: Materiaaliluettelo

EspVGAx-kirjasto vaatii ESP8266: n, jossa kaikki GPIO on näkyvissä, kuten ESP-12E, NodeMCU-12E-kortti tai mikä tahansa levy, joka paljastaa GPIO5 (D1), GPIO4 (D2) ja GPIO13 (D7)

Käytin erityisesti:

  • ESP8266-solmuMCU-12E (linkki tähän)
  • DSUB15 -liitin (eli VGA -naarasliitin)
  • 330 ohmin vastus
  • toinen vastus (noin 1-3 kOhm)
  • kaksi 10 kOhm: n potentiometriä
  • a Painike (n.o.)
  • kaksi diodia (kuten 1N4007s)
  • leipälauta
  • johdot

Sain DSUB15 -liittimen vanhasta VGA -PC -kortista. Vaihtoehtoisesti voit myös katkaista vanhan VGA -kaapelin ja liittää johdot suoraan leipälevyyn.

Vaihe 2: Kirjasto ja luonnoslataus

Kirjasto ja luonnoslataus
Kirjasto ja luonnoslataus

Ohjelmointiin on erilaisia menetelmiä ja ESP8266; Käytin Arduino IDE: tä Pongin kirjoittamiseen ja koodin lataamiseen.

Huomaa, että EspVGAx -kirjasto toimii Arduino IDE 1.8.1 -käyttöjärjestelmässä. Jos sinulla on muita versioita, paras on ladata.zip -tiedostot ja purkaa se erilliseen kansioon. Windows -versio on täällä. Muiden käyttöjärjestelmien versiot ovat täällä.

Tämän jälkeen sinun pitäisi ladata EspVGAx -kirjasto GithHub -sivulta täältä (suora linkki zip -versioon täällä) ja purkaa se Arduino -ohjelmiston kansiokirjastoista.

Huom. Tiedostossa espvgax_draw.h on pieni virhe. Korjaa se vaihtamalla rivi 17:

while (x0%32) {kanssa while (x0%32 && sw> 32) {

Lopuksi voit ladata ESP8266_Pong.rar -tiedoston tämän vaiheen lopussa.

Kun se on purettu, sinun on määritettävä Arduino IDE, jotta voit ladata sen ESP8266 -laitteellesi.

Jos et ole koskaan tehnyt sitä, löydät kaikki tarvittavat ohjeet tästä ohjeesta, erityisesti vaiheessa 2.

Kun kaikki on määritetty, ESP8266 -asetusten pitäisi näyttää yllä olevan kuvan mukaisilta.

Jos voit ladata koodin ilman virheitä, voit aloittaa osien kokoamisen.

Vaihe 3: Osien liittäminen: VGA -liitin

Osien liittäminen: VGA -liitin
Osien liittäminen: VGA -liitin
Osien liittäminen: VGA -liitin
Osien liittäminen: VGA -liitin
Osien liittäminen: VGA -liitin
Osien liittäminen: VGA -liitin

Kehotan liittämään ensin VGA -portin, kuten yllä olevissa kuvissa näkyy. Huomaa, että yhdistämällä kolme nastaista punaista, vihreää ja sinistä yhteen (eli nastat 1, 2 ja 3 DSUB15 -liittimessä) saat näytölle mustavalkoisen kuvan. Voit myös yhdistää eri värejä. Katso lisätietoja kirjaston GitHub -sivulta.

Lisäksi sinun on liitettävä 330 ohmin vastus ESP8266: n RGB -nastojen ja D7: n (GPIO13) väliin. Tämä antoi minulle hieman harmahtavan kuvan näytölläni, joten muutaman yrityksen jälkeen päätin poistaa sen kokonaan.

Tässä vaiheessa, jos kaikki toimii oikein, voit jo liittää näytön ja nähdä pelin aloitusnäytön bannerilla "ESP8266 VGAx Pong".

Vaihe 4: Osien liittäminen: potentiometrit ja painike

Osien liittäminen: potentiometrit ja painike
Osien liittäminen: potentiometrit ja painike

Painike on kytkettävä 3,3 V: n ja nastan D0 (GPIO16) väliin. Liitä myös 1-3 kOhm: n vastus D0: sta maahan. Tämä estää D0: n olevan määrittämättömänä tilassa, kun painike on auki.

Kahden potentiometrin liitäntä on vähemmän triviaalia, koska itse asiassa ESP8266: ssa on vain analoginen tuloportti A0 (ADC0)! Temppu on yhdistää molemmat pot.s -lähdöt samaan porttiin ja "multipleksoida" ne. Multipleksointi tarkoittaa yksinkertaisesti sitä, että kytket potentiometrin päälle, luet sen, sammutat sen ja siirryt toiseen.

Jos haluat oppia lisää tästä menetelmästä, voit lukea tämän ohjeen.

Yhdistä yksi potentiometrin ääripää GND: hen, toinen ääripää D5: ään vasemman pelaajan potentiometriin ja D6 oikeanpuoleiseen.

Jokaisen potentiometrin keskitapin on liitettävä yksittäiseen diodiin, ja diodien muiden sivujen on oltava liitettynä liittimeen A0 (ADC0) yllä olevan kuvan mukaisella napaisuudella.

Vaihe 5: Johtopäätös ja kiitokset

Olen kiitollinen Sandro Maffiodolle - SMAFFER - ESPVGAX -kirjastosta. Tämä peli ei olisi mahdollista ilman sitä.

Toivon, että tämä Instructable inspiroi muita ohjelmoijia tekemään kopioita monimutkaisemmista klassisista arcade -peleistä ESP8266: lla, jolla on paljon vähemmän rajoituksia kuin Arduinolla.

Lopuksi kirjoitin tämän ohjeen lähettääkseni sen lelukilpailuun: jos pidät siitä tai toistat sen, äänestä sitä hetki!

Suositeltava: