Съдържание:

ESP8266 VGA понг: 5 стъпки (със снимки)
ESP8266 VGA понг: 5 стъпки (със снимки)

Видео: ESP8266 VGA понг: 5 стъпки (със снимки)

Видео: ESP8266 VGA понг: 5 стъпки (със снимки)
Видео: ESP8266 VGA Pong 2024, Ноември
Anonim
Image
Image
Списък на материалите
Списък на материалите

В тази инструкция ще ви покажа как да създадете репродукция на класическата игра Pong за VGA монитор, използвайки ESP8266 и няколко други компонента.

Тази игра е станала възможна от библиотеката EspVGAx, публикувана наскоро в GitHub от Sandro Maffiodo (известен още като Smaffer) и, доколкото знам, това е първата игра, която я използва.

Библиотеката реализира разделителна способност от 512 x 480 пиксела, съхранена в рамков буфер вътре в RAM, което изисква 30720 байта. Резолюцията е огромна в сравнение с тези на Arduino TVout или VGAx (съответно 128 x 96 и 120 x 60 пиксела). Надявам се, че тази игра вдъхновява други програмисти да разработват или възпроизвеждат по -сложни игри.

Стъпка 1: Списък на материалите

Библиотеката EspVGAx изисква ESP8266 с всички GPIO изложени, като ESP-12E, NodeMCU-12E платка или всяка друга платка, която излага GPIO5 (D1), GPIO4 (D2) и GPIO13 (D7)

По -специално използвах:

  • ESP8266 NodeMCU-12E (връзка тук)
  • съединител DSUB15 (т.е. VGA женски конектор)
  • резистор от 330 ома
  • друг резистор (около 1 до 3 kOhm)
  • два 10 kOhm потенциометра
  • бутон (н.о.)
  • два диода (като 1N4007s)
  • макет
  • проводници

Взех конектора DSUB15 от стара VGA PC платка. Като алтернатива можете също да отрежете стар VGA кабел и да свържете проводниците директно към платката.

Стъпка 2: Качване на библиотека и скица

Качване на библиотека и скица
Качване на библиотека и скица

Има различни методи за програмиране и ESP8266; Използвах Arduino IDE, за да напиша Pong и да кача кода.

Моля, обърнете внимание, че библиотеката EspVGAx работи за Arduino IDE 1.8.1. Ако имате други версии, най -добре е да изтеглите.zip файловете и да ги декомпресирате в специална папка. Версията на Windows е тук. Версии за други ОС са тук.

След това трябва да изтеглите библиотеката EspVGAx от страницата на GithHub тук (директна връзка за zip версията тук) и да я декомпресирате в библиотеките на папки в софтуера Arduino.

NB Има малка грешка във файла espvgax_draw.h. За да го коригирате, просто сменете реда 17:

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

Накрая можете да изтеглите ESP8266_Pong.rar в края на тази стъпка.

След като бъде разархивиран, за да го качите на вашия ESP8266, трябва да конфигурирате Arduino IDE.

Ако никога не сте го правили, можете да намерите всички необходими инструкции в тази инструкция, по -специално в Стъпка 2.

След като всичко е конфигурирано, настройките на ESP8266 трябва да изглеждат като тези, показани на снимката по -горе.

Ако можете да качите кода без грешки, можете да започнете да сглобявате частите.

Стъпка 3: Свързване на частите: VGA конектор

Свързване на частите: VGA конектор
Свързване на частите: VGA конектор
Свързване на частите: VGA конектор
Свързване на частите: VGA конектор
Свързване на частите: VGA конектор
Свързване на частите: VGA конектор

Препоръчвам първо да свържете VGA порта, както е показано на снимките по -горе. Моля, обърнете внимание, че като свържете трите пина Червено, Зелено и Синьо заедно (т.е. пинове 1, 2 и 3 на конектора DSUB15), ще имате черно -бяло изображение на екрана си. Можете също така да имате различни цветови комбинации. Вижте подробностите на страницата на библиотеката GitHub.

Освен това трябва да свържете резистор от 330 ома между RGB щифтовете и D7 (GPIO13) на ESP8266. Това ми даде малко сивкаво изображение на монитора, така че след няколко опита реших изобщо да го премахна.

В този момент, ако всичко работи правилно, вече можете да свържете монитора и да видите началния екран на играта, с банера „ESP8266 VGAx Pong“.

Стъпка 4: Свързване на частите: потенциометрите и бутона

Свързване на частите: потенциометри и бутон
Свързване на частите: потенциометри и бутон

Бутонът трябва да бъде свързан между 3.3V и щифт D0 (GPIO16). Свържете също резистора от 1 до 3 kOhm от D0 към земята. Това избягва D0 да бъде в неопределено състояние, когато бутонът е отворен.

Връзката на двата потенциометра е по -малко тривиална, всъщност ESP8266 има само аналогов входен порт A0 (ADC0)! Номерът е да свържете двата изхода pot.s към същия порт и да ги „мултиплексирате“. Мултиплексирането просто означава, че ще включите потенциометър, прочетете го, след това ще го изключите и преминете към втория.

Ако искате да научите повече за този метод, можете да прочетете този Instructable.

Свържете една крайност на потенциометъра към GND, другата крайност към D5 за потенциометъра на левия плейър и D6 за десния плейър.

Всеки централен щифт на потенциометъра трябва да бъде свързан към отделен диод, а другите страни на диодите трябва да бъдат свързани към A0 (ADC0), като полярността е показана на горната снимка.

Стъпка 5: Заключение и признания

Благодарен съм на Сандро Мафиодо - SMAFFER - за библиотеката ESPVGAX. Тази игра не би била възможна без нея.

Надявам се, че този Instructable ще бъде вдъхновение за други програмисти да правят репродукции на по -сложни класически аркадни игри с ESP8266, който има много по -малко ограничения от Arduino.

Накрая написах тази инструкция, за да я изпратя на конкурса за играчки: ако ви харесва или я възпроизвеждате, моля, отделете малко време, за да я гласувате!

Препоръчано: