Daftar Isi:

Game Arkade dan Joystick VGA ESP32: 6 Langkah (dengan Gambar)
Game Arkade dan Joystick VGA ESP32: 6 Langkah (dengan Gambar)

Video: Game Arkade dan Joystick VGA ESP32: 6 Langkah (dengan Gambar)

Video: Game Arkade dan Joystick VGA ESP32: 6 Langkah (dengan Gambar)
Video: It can "Track Your Location"!!! (+9 ESP32 Projects) 2024, Juli
Anonim
Image
Image
Game Arkade dan Joystick VGA ESP32
Game Arkade dan Joystick VGA ESP32
Game Arkade dan Joystick VGA ESP32
Game Arkade dan Joystick VGA ESP32

Dalam instruksi ini saya akan menunjukkan cara mereproduksi empat game seperti arcade - Tetris - Snake - Breakout - Bomber - menggunakan ESP32, dengan output untuk monitor VGA.

Resolusi 320 x 200 piksel, dalam 8 warna. Saya sebelumnya pernah membuat versi dengan Arduino Uno (lihat di sini), tetapi resolusinya hanya 120 x 60 piksel, 4 warna, dan memori Arduino hampir penuh. Berkat performa ESP32 yang lebih baik, resolusi dan pemutaran menjadi lebih tinggi. Selain itu, masih ada banyak memori yang tersedia, sehingga menambahkan game baru di masa mendatang akan lebih mudah.

Saya juga akan menunjukkan cara menghubungkan joystick sederhana melalui kabel RS232. Saya menggunakan pinout yang sama dari Commodore 64.

Proyek ini dimungkinkan oleh perpustakaan VGA ESP32 yang luar biasa yang ditulis oleh Fabrizio Di Vittorio. Lihat di sini untuk lebih jelasnya.

Langkah 1: Papan ESP32, Instalasi Arduino IDE dan Konfigurasi Perpustakaan VGA

Papan ESP32, Instalasi Arduino IDE dan Konfigurasi Perpustakaan VGA
Papan ESP32, Instalasi Arduino IDE dan Konfigurasi Perpustakaan VGA
Papan ESP32, Instalasi Arduino IDE dan Konfigurasi Perpustakaan VGA
Papan ESP32, Instalasi Arduino IDE dan Konfigurasi Perpustakaan VGA
Papan ESP32, Instalasi Arduino IDE dan Konfigurasi Perpustakaan VGA
Papan ESP32, Instalasi Arduino IDE dan Konfigurasi Perpustakaan VGA

Pertama-tama Anda perlu membeli ESP32 revisi 1 atau lebih tinggi. Ada banyak versi yang tersedia, tetapi saya sarankan untuk memilih satu dengan banyak pin, sebaiknya model seperti yang ada di gambar ini, dengan 38 pin. Saya menggunakan versi ini, tetapi saya pikir banyak yang lain juga baik-baik saja. Di ebay Anda dapat menemukan model ini dengan harga kurang dari 7 Euro, termasuk pengiriman.

Setelah Anda mendapatkan papan, Anda harus melanjutkan dengan tiga sub-langkah berikut:

  1. Instal Arduino IDE terakhir
  2. Konfigurasikan ESP32 di IDE dan
  3. Unduh dan instal perpustakaan VGA

Sub-langkah 1. Ada berbagai metode untuk memprogram ESP32, tetapi di sini Anda perlu menggunakan Arduino IDE (omong-omong, saya menggunakan versi 1.8.9). Untuk menginstalnya, Anda dapat pergi ke halaman Arduino IDE dan ikuti petunjuknya.

Sub-langkah 2. Setelah operasi sebelumnya selesai, Anda perlu mengkonfigurasi ESP32 Anda di dalam Arduino IDE. Ini tidak sepele, karena ESP32 tidak (belum?) asli di dalamnya. Anda dapat mengikuti tutorial ini, atau langkah-langkah berikut.

1) buka Arduino IDE

2) buka jendela preferensi, File/Preferensi, atau tekan "Ctrl+comma"

3) pergi ke “Additional Board Manager URLs”, salin dan tempel teks berikut:

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

dan klik tombol OK.

4) Manajer papan terbuka. Pergi ke Tools/Board/Boards Manager…

5) Cari ESP32 dan tekan tombol install untuk "ESP32 by Espressif Systems":

6) Pada titik ini, ketika Anda menghubungkan ESP32 untuk pertama kalinya, Anda harus memilih model yang tepat dalam daftar panjang papan ESP32 yang tersedia (lihat gambar di langkah ini). Jika ragu tentang modelnya, pilih saja yang generik, yaitu yang pertama. Ini bekerja untuk saya.

7) sistem juga harus memilih port USB (COM) yang tepat dan Kecepatan Unggah (biasanya 921600). Pada titik ini koneksi antara PC Anda dan papan ESP32 harus dibuat.

Sub-langkah 3. Terakhir Anda harus menginstal perpustakaan VGA FabGL. Klik di sini untuk mengunduh file terkompresi lengkap. Buka kompres dan salin folder yang dihasilkan (FabGL-master) di folder perpustakaan Arduino IDE, yang terlihat seperti:

"…\arduino-1.8.12\libraries".

Langkah 2: Mengunggah "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Unduh ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip di bagian bawah langkah ini. Buka zip dan buka dengan Arduino IDE, lalu unggah ke ESP32 Anda. Jika Anda tidak memiliki pesan kesalahan, kode tersebut seharusnya sudah berjalan dan Anda hanya perlu menghubungkan port dan tombol VGA (atau joystick).

Langkah 3: Menghubungkan Port VGA

Menghubungkan Port VGA
Menghubungkan Port VGA

Anda membutuhkan bagian-bagian berikut:

  • Konektor DSUB15, yaitu konektor perempuan VGA atau kabel VGA yang akan dipotong.
  • tiga resistor 270 Ohm.

Hubungkan pin 2, 15 dan 21 ESP32 GPIO masing-masing ke VGA Merah, Hijau dan Biru, melalui resistor 270 Ohm.

Hubungkan VGA Hsync dan Vsync ke ESP32 GPIO pin 17 dan 4 masing-masing.

Hubungkan pin konektor DSUB15 5, 6, 7, 8 dan 10 ke ESP32 GND.

Untuk definisi pin konektor VGA DSUB15, lihat gambar pada langkah ini. NB, ini adalah sisi solder konektor perempuan.

Langkah 4: Hubungkan Empat Tombol

Hubungkan Empat Tombol
Hubungkan Empat Tombol
Hubungkan Empat Tombol
Hubungkan Empat Tombol
Hubungkan Empat Tombol
Hubungkan Empat Tombol

Jika Anda tidak memiliki joystick C64, Anda dapat menghubungkan empat tombol dengan mengikuti langkah ini. Jika Anda memiliki joystick, Anda dapat melewati langkah ini dan melompat ke langkah berikutnya, tetapi Anda tetap dapat menghubungkan tombol dan joystick (toh keduanya "secara paralel").

Skema pada langkah ini menunjukkan cara menghubungkan satu tombol (Biasanya Terbuka) dari +5V ke pin yang diberikan ESP32.

Perhatikan bahwa Anda juga perlu menghubungkan pin yang diberikan ESP ke GND melalui resistor 1 hingga 5 kOhm. Dengan cara ini ketika tombol dilepaskan (terbuka) pin ESP berada tepat di nol Volt. Lebih khusus lagi, Anda perlu menghubungkan empat tombol dengan urutan berikut:

  • Pin 12 ke tombol Kanan
  • Sematkan 25 ke tombol Atas
  • Pin 14 ke tombol Kiri
  • Pin 35 ke tombol Bawah

Langkah 5: Hubungkan Joystick

Hubungkan Joystick
Hubungkan Joystick
Hubungkan Joystick
Hubungkan Joystick
Hubungkan Joystick
Hubungkan Joystick

Joystick C64 memiliki pinout yang ditunjukkan pada gambar pertama langkah ini. Untuk menghubungkannya ke ESP32, Anda memerlukan konektor laki-laki DSUB 9 pin (yaitu, soket), seperti yang ditunjukkan pada gambar kedua. Saya melepas satu dengan pin terbuka dari papan elektronik lama. Anda dapat menggunakan senapan panas untuk melepaskannya (tetapi lakukan di luar ruangan!).

Anda perlu menghubungkan pin mengikuti urutan numerik dalam gambar-gambar ini. Perhatikan bahwa skema mengacu pada sisi joystick, sehingga mewakili sambungan steker perempuannya. Soket (laki-laki) untuk terhubung ke ESP32 memiliki pin dengan disposisi "cermin". Jika ragu, ingatlah bahwa nomor pin selalu dilaporkan pada konektor male dan female, seperti yang ditunjukkan pada gambar ketiga.

Jika Anda ingin mengontrol game hanya dengan joystick, sambungkan pin umum (9) ke ESP32 +5V, dan pin joystick 1, 2, 3, 4 dan 6 ke pin yang diberikan ESP berikut daftar berikut.

  • ESP pin 12 ke tombol Kanan (RS232 pin 4)
  • ESP pin 14 ke tombol Kiri (RS232 pin 3)
  • ESP pin 35 ke tombol Bawah (RS232 pin 2)
  • ESP pin 25 tombol Up (RS232 pin 1 dan 6, yaitu joystick api)

NB pin ESP 12, 14, 25 dan 35 juga harus terhubung ke GND melalui resistor 1 sampai 5 kOhm. Dengan cara ini ketika tombol dilepaskan (terbuka) pin ESP berada tepat di nol Volt.

Posisi joystick NB2 UP dan tombol api terhubung bersama ke pin ESP 25-

Saya telah menghubungkan empat tombol pada papan PC, dengan cara ini saya tidak memerlukan joystick untuk bermain (walaupun dengan joystick jauh lebih lucu). Sekali lagi, pin 9 RS232 harus terhubung ke +5 V dan pin joystick sejajar dengan tombol.

Langkah 6: Kesimpulan dan Pengakuan

Kesimpulan dan Pengakuan
Kesimpulan dan Pengakuan

Jika semuanya berfungsi dengan baik, cukup sambungkan monitor VGA dan Anda akan dapat menikmati beberapa permainan gaya lama!

Anda juga dapat menggambar set Mandelbrot dengan resolusi 640 x 350 piksel, hanya untuk menguji kemampuan pustaka VGA.

Perhatikan bahwa kode ini ditulis dengan cara agar game lain dapat dengan mudah ditambahkan di masa mendatang (ESP32 memiliki banyak ruang!). Saya proyek ini mendapat minat yang cukup, saya dapat melakukan itu …

Akhirnya, saya ingin menyampaikan tank saya kepada Fabrizio Di Vittorio untuk perpustakaan VGA ESP32-nya yang mengagumkan. Untuk detail lebih lanjut, contoh, dan… Space Invaders, kunjungi situsnya.

Direkomendasikan: