Talaan ng mga Nilalaman:

ESP8266 VGA Pong: 5 Hakbang (na may Mga Larawan)
ESP8266 VGA Pong: 5 Hakbang (na may Mga Larawan)

Video: ESP8266 VGA Pong: 5 Hakbang (na may Mga Larawan)

Video: ESP8266 VGA Pong: 5 Hakbang (na may Mga Larawan)
Video: ESP8266 VGA Pong 2024, Nobyembre
Anonim
Image
Image
Listahan ng Mga Materyales
Listahan ng Mga Materyales

Sa Mga Tagubilin na ito ay ipapakita ko kung paano bumuo ng isang kopya ng klasikong larong Pong para sa isang monitor ng VGA, gamit ang isang ESP8266 at ilang iba pang mga bahagi.

Ang larong ito ay ginawang posible ng EspVGAx library na inilathala kamakailan sa GitHub ni Sandro Maffiodo (aka Smaffer) at, sa pagkakaalam ko, ito ang unang laro na nagsasamantala dito.

Nagpapatupad ang silid-aklatan ng isang resolusyon na 512 x 480 pixel, na nakaimbak sa isang framebuffer sa loob ng RAM, na nangangailangan ng 30720 bytes. Ang resolusyon ay malaki sa paghahambing sa Arduino TVout o VGAx (128 x 96 at 120 x 60 pixel ayon sa pagkakabanggit). Inaasahan kong ang larong ito ay nagbibigay inspirasyon sa iba pang mga programmer na bumuo o magparami ng mas kumplikadong mga laro.

Hakbang 1: Listahan ng Mga Materyales

Ang EspVGAx library ay nangangailangan ng isang ESP8266 na nakalantad ang lahat ng GPIO, tulad ng ESP-12E, board ng NodeMCU-12E o anumang board na inilantad ang GPIO5 (D1), GPIO4 (D2) at GPIO13 (D7)

Sa partikular, ginamit ko ang:

  • isang ESP8266 NodeMCU-12E (mag-link dito)
  • isang konektor ng DSUB15 (hal. isang konektor ng babaeng VGA)
  • isang 330 Ohm Resistor
  • isa pang risistor (mga 1 hanggang 3 kOhm)
  • dalawang 10 kOhm Potentiometers
  • isang Push Button (n.o.)
  • dalawang Diode (tulad ng 1N4007s)
  • isang breadboard
  • mga wire

Nakuha ko ang konektor ng DSUB15 mula sa isang lumang board ng VGA PC. Bilang kahalili, maaari mo ring i-cut ang isang lumang VGA cable at ikonekta ang mga wire nang direkta sa breadboard.

Hakbang 2: Mag-upload ng Library at Sketch

Mag-upload ng Library at Sketch
Mag-upload ng Library at Sketch

Mayroong iba't ibang mga pamamaraan sa programa at ESP8266; Ginamit ko ang Arduino IDE upang isulat ang Pong at i-upload ang code.

Mangyaring tandaan na ang library ng EspVGAx ay gumagana para sa Arduino IDE 1.8.1. Kung mayroon kang iba pang mga bersyon, ang pinakamahusay na i-dowload ang mga.zip file at i-compress ito sa isang nakalaang folder. Ang bersyon ng Windows ay narito. Ang mga bersyon para sa iba pang OS ay narito.

Pagkatapos nito, dapat mong dowload ang EspVGAx library mula sa pahina ng GithHub dito (direktang link para sa bersyon ng zip dito), at i-compress ito sa mga folder ng folder sa Arduino software.

NB Mayroong kaunting bug sa file na espvgax_draw.h. Upang maitama ito, palitan lamang ang linya 17:

habang (x0% 32) {kasama habang (x0% 32 && sw> 32) {

Sa wakas maaari mong i-dowload ang ESP8266_Pong.rar sa pagtatapos ng hakbang na ito.

Kapag na-unzip, upang mai-upload ito sa iyong ESP8266, kailangan mong i-configure ang Arduino IDE.

Kung hindi mo pa nagagawa ito, mahahanap mo ang lahat ng kinakailangang tagubilin sa Mga Instructionable na ito, na partikular sa Hakbang 2.

Kapag na-configure na ang lahat, ang mga setting ng ESP8266 ay dapat magmukhang mga ipinakita sa larawan sa itaas.

Kung maaari mong mai-upload ang code nang walang mga error, maaari mong simulan upang tipunin ang mga bahagi.

Hakbang 3: Pagkonekta sa Mga Bahagi: ang VGA Connector

Pagkonekta sa mga Bahagi: ang VGA Connector
Pagkonekta sa mga Bahagi: ang VGA Connector
Pagkonekta sa mga Bahagi: ang VGA Connector
Pagkonekta sa mga Bahagi: ang VGA Connector
Pagkonekta sa mga Bahagi: ang VGA Connector
Pagkonekta sa mga Bahagi: ang VGA Connector

Inirekomenda ko na ikonekta muna ang port ng VGA, tulad ng ipinakita sa mga larawan sa itaas. Mangyaring tandaan na sa pamamagitan ng pagkonekta ng tatlong pin na Pula, berde at Asul na magkasama (ibig sabihin, mga pin 1, 2 at 3 sa konektor ng DSUB15), magkakaroon ka ng isang imahe ng B&W sa iyong screen. Maaari ka ring magkaroon ng iba't ibang mga kumbinasyon ng mga kulay. Tingnan ang mga detalye sa pahina ng Library GitHub.

Bukod dito, dapat mong ikonekta ang isang 330 Ohm risistor sa pagitan ng mga pin ng RGB at ng D7 (GPIO13) sa ESP8266. Binigyan ako nito ng isang medyo greyish na imahe sa aking monitor sa gayon, pagkatapos ng ilang pagsubok, nagpasya akong tanggalin ito lahat.

Sa puntong ito, kung gumagana nang maayos ang lahat, maaari mo nang ikonekta ang monitor at makita ang screen ng pagsisimula ng laro, gamit ang banner na "ESP8266 VGAx Pong".

Hakbang 4: Pagkonekta sa Mga Bahagi: ang Potentiometers at Button

Pagkonekta sa mga Bahagi: ang Potentiometers at Button
Pagkonekta sa mga Bahagi: ang Potentiometers at Button

Ang pindutan ay dapat na konektado sa pagitan ng 3.3V at pin D0 (GPIO16). Ikonekta din ang 1 hanggang 3 kOhm risistor mula sa D0 hanggang sa lupa. Iniiwasan nito ang D0 na maging isang hindi matukoy na katayuan kapag ang pindutan ay bukas.

Ang koneksyon ng dalawang potentiometers ay hindi gaanong maliit, bilang isang katotohanan na ang ESP8266 ay mayroon lamang isang analogue input port A0 (ADC0)! Ang trick ay upang ikonekta ang parehong mga output ng pot.s sa parehong port, at 'multiplex' sa kanila. Nangangahulugan lamang ang Multiplexing na bubuksan mo ang isang potensyomiter, basahin ito, pagkatapos ay i-off ito at lumipat sa pangalawa.

Kung nais mong matuto nang higit pa tungkol sa pamamaraang ito, maaari mong basahin ang Ituturo.

Ikonekta ang isang potentiometer na matindi sa GND, ang iba pang matinding sa D5 para sa kaliwang potentiometer ng manlalaro at D6 para sa tamang player ng isa.

Ang bawat potentiometer central pin ay dapat na kumonekta sa isang indibidwal na diode, at ang iba pang mga gilid ng diode ay dapat na konektado sa A0 (ADC0), na may polarity na ipinakita sa larawan sa itaas.

Hakbang 5: Konklusyon at Mga Pagkilala

Nagpapasalamat ako kay Sandro Maffiodo - SMAFFER - para sa ESPVGAX libary. Ang larong ito ay hindi magiging posible kung wala ito.

Inaasahan kong ang Instructable na ito ay magiging isang inspirasyon sa iba pang mga programmer na gumawa ng mga kopya ng mas kumplikadong mga klasikong arcade game sa ESP8266, na mayroong mas kaunting limitasyon kaysa sa Arduino.

Panghuli, isinulat ko ang Makatuturo na ito upang isumite ito sa Paligsahan ng Mga Laruan: kung gusto mo o kopyahin ito, mangyaring maglaan ng ilang sandali upang iboto ito!

Inirerekumendang: