Daftar Isi:

ESP8266 VGA Pong: 5 Langkah (dengan Gambar)
ESP8266 VGA Pong: 5 Langkah (dengan Gambar)

Video: ESP8266 VGA Pong: 5 Langkah (dengan Gambar)

Video: ESP8266 VGA Pong: 5 Langkah (dengan Gambar)
Video: ESP32 VGA Board & ESP32Lib FAQ (Level 2) 2024, November
Anonim
Image
Image
Daftar Bahan
Daftar Bahan

Dalam Instruksi ini saya akan menunjukkan cara membuat reproduksi game klasik Pong untuk monitor VGA, menggunakan ESP8266 dan beberapa komponen lainnya.

Game ini dimungkinkan oleh perpustakaan EspVGAx yang baru-baru ini diterbitkan di GitHub oleh Sandro Maffiodo (alias Smaffer) dan, sejauh yang saya tahu, ini adalah game pertama yang mengeksploitasinya.

Perpustakaan mengimplementasikan resolusi 512 x 480 piksel, disimpan dalam framebuffer di dalam RAM, yang membutuhkan 30720 byte. Resolusinya sangat besar dibandingkan dengan Arduino TVout atau VGAx (masing-masing 128 x 96 dan 120 x 60 piksel). Saya harap game ini menginspirasi programmer lain untuk mengembangkan atau mereproduksi game yang lebih kompleks.

Langkah 1: Daftar Bahan

Pustaka EspVGAx memerlukan ESP8266 dengan semua GPIO terekspos, seperti ESP-12E, papan NodeMCU-12E atau papan apa pun yang mengekspos GPIO5 (D1), GPIO4 (D2) dan GPIO13 (D7)

Secara khusus, saya menggunakan:

  • sebuah ESP8266 NodeMCU-12E (tautan di sini)
  • konektor DSUB15 (yaitu konektor perempuan VGA)
  • resistor 330 Ohm
  • resistor lain (sekitar 1 sampai 3 kOhm)
  • dua Potensiometer 10 kOhm
  • Tombol Tekan (no)
  • dua Dioda (seperti 1N4007s)
  • papan tempat memotong roti
  • kabel

Saya mendapatkan konektor DSUB15 dari papan PC VGA lama. Atau, Anda juga dapat memotong kabel VGA lama dan menghubungkan kabel langsung ke papan tempat memotong roti.

Langkah 2: Unggah Perpustakaan dan Sketsa

Unggah Perpustakaan dan Sketsa
Unggah Perpustakaan dan Sketsa

Ada berbagai metode untuk memprogram dan ESP8266; Saya menggunakan Arduino IDE untuk menulis Pong dan mengunggah kodenya.

Harap dicatat bahwa perpustakaan EspVGAx berfungsi untuk Arduino IDE 1.8.1. Jika Anda memiliki versi lain, yang terbaik adalah mengunduh file.zip dan membuka kompresnya di folder khusus. Versi Windows ada di sini. Versi untuk OS lain ada di sini.

Setelah itu, Anda harus mengunduh pustaka EspVGAx dari halaman GithHub di sini (tautan langsung untuk versi zip di sini), dan membuka kompresnya di pustaka folder di perangkat lunak Arduino.

NB Ada sedikit bug di file espvgax_draw.h. Untuk memperbaikinya, cukup ganti baris 17:

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

Akhirnya Anda dapat mengunduh ESP8266_Pong.rar di akhir langkah ini.

Setelah dibuka ritsletingnya, untuk mengunggahnya ke ESP8266 Anda, Anda perlu mengonfigurasi Arduino IDE.

Jika Anda belum pernah melakukannya, Anda dapat menemukan semua instruksi yang diperlukan pada Instruksi ini, khususnya di Langkah 2.

Setelah semuanya dikonfigurasi, pengaturan ESP8266 akan terlihat seperti yang ditunjukkan pada gambar di atas.

Jika Anda dapat mengunggah kode tanpa kesalahan, Anda dapat mulai merakit bagian-bagiannya.

Langkah 3: Menghubungkan Bagian: Konektor VGA

Menghubungkan Bagian: Konektor VGA
Menghubungkan Bagian: Konektor VGA
Menghubungkan Bagian: Konektor VGA
Menghubungkan Bagian: Konektor VGA
Menghubungkan Bagian: Konektor VGA
Menghubungkan Bagian: Konektor VGA

Saya sarankan untuk menghubungkan terlebih dahulu port VGA, seperti yang ditunjukkan pada gambar di atas. Harap dicatat bahwa dengan menghubungkan tiga pin Merah, Hijau dan Biru bersama-sama (yaitu pin 1, 2 dan 3 pada konektor DSUB15), Anda akan memiliki gambar B&W di layar Anda. Anda juga dapat memiliki kombinasi warna yang berbeda. Lihat detailnya di halaman Library GitHub.

Selanjutnya, Anda harus menghubungkan resistor 330 Ohm antara pin RGB dan D7 (GPIO13) pada ESP8266. Ini memberi saya gambar sedikit keabu-abuan di monitor saya, jadi, setelah beberapa kali mencoba, saya memutuskan untuk menghilangkannya sama sekali.

Pada titik ini, jika semuanya berfungsi dengan baik, Anda sudah dapat menghubungkan monitor dan melihat layar awal permainan, dengan spanduk "ESP8266 VGAx Pong".

Langkah 4: Menghubungkan Bagian: Potensiometer dan Tombol

Menghubungkan Bagian: Potensiometer dan Tombol
Menghubungkan Bagian: Potensiometer dan Tombol

Tombol harus terhubung antara 3.3V dan pin D0 (GPIO16). Hubungkan juga resistor 1 hingga 3 kOhm dari D0 ke ground. Ini menghindari D0 berada pada status yang tidak ditentukan saat tombol terbuka.

Sambungan dari dua potensiometer kurang sepele, pada kenyataannya ESP8266 hanya memiliki port input analog A0 (ADC0)! Triknya adalah menghubungkan kedua output pot.s ke port yang sama, dan 'multipleks'. Multiplexing berarti Anda akan menyalakan potensiometer, membacanya, lalu mematikannya dan pindah ke yang kedua.

Jika Anda ingin mempelajari lebih lanjut tentang metode ini, Anda dapat membaca Instruksi ini.

Hubungkan satu potensiometer ekstrem ke GND, ekstrem lainnya ke D5 untuk potensiometer pemutar kiri dan D6 untuk potensiometer pemutar kanan.

Setiap pin pusat potensiometer harus terhubung ke dioda individu, dan sisi lain dari dioda harus terhubung ke A0 (ADC0), dengan polaritas yang ditunjukkan pada gambar di atas.

Langkah 5: Kesimpulan dan Ucapan Terima Kasih

Saya berterima kasih kepada Sandro Maffiodo - SMAFFER - untuk perpustakaan ESPVGAX. Game ini tidak akan mungkin tanpanya.

Saya berharap Instructable ini akan menjadi inspirasi bagi programmer lain untuk membuat reproduksi game arcade klasik yang lebih kompleks dengan ESP8266, yang memiliki keterbatasan jauh lebih sedikit daripada Arduino.

Akhirnya, saya menulis Instruksi ini untuk mengirimkannya ke Kontes Mainan: jika Anda suka atau memperbanyaknya, luangkan waktu untuk memilihnya!

Direkomendasikan: