Isi kandungan:

ESP32 VGA Arcade Games dan Joystick: 6 Langkah (dengan Gambar)
ESP32 VGA Arcade Games dan Joystick: 6 Langkah (dengan Gambar)

Video: ESP32 VGA Arcade Games dan Joystick: 6 Langkah (dengan Gambar)

Video: ESP32 VGA Arcade Games dan Joystick: 6 Langkah (dengan Gambar)
Video: ZORK on esp32 – with VGA display and ps2 keyboard 2024, Julai
Anonim
Image
Image
ESP32 VGA Arcade Games dan Joystick
ESP32 VGA Arcade Games dan Joystick
ESP32 VGA Arcade Games dan Joystick
ESP32 VGA Arcade Games dan Joystick

Dalam arahan ini saya akan menunjukkan bagaimana menghasilkan semula empat arked seperti permainan - Tetris - Snake - Breakout - Bomber - menggunakan ESP32, dengan output untuk monitor VGA.

Resolusi 320 x 200 piksel, dalam 8 warna. Saya sebelumnya telah melakukan versi dengan Arduino Uno (lihat di sini), tetapi resolusi hanya 120 x 60 piksel, 4 warna, dan memori Arduino hampir penuh. Berkat prestasi ESP32 yang lebih hebat, resolusi dan kebolehmainannya lebih tinggi. Tambahan lagi, masih banyak memori yang tersedia, dengan itu menambah permainan baru di masa depan akan menjadi mudah.

Saya juga akan menunjukkan panas untuk menyambungkan kayu bedik sederhana melalui kabel RS232. Saya menggunakan pinout Commodore 64 yang sama.

Projek ini dimungkinkan oleh perpustakaan ESP32 VGA yang hebat yang ditulis oleh Fabrizio Di Vittorio. Lihat di sini untuk maklumat lebih lanjut.

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

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

Pertama sekali, anda perlu membeli semakan ESP32 1 atau lebih tinggi. Terdapat banyak versi yang tersedia, tetapi saya cadangkan untuk memilih satu dengan banyak pin, lebih baik model seperti yang terdapat dalam gambar ini, dengan 38 pin. Saya menggunakan versi ini, tetapi saya rasa banyak juga yang baik. Di ebay anda boleh mendapatkan model ini dengan harga kurang dari 7 Euro, termasuk penghantaran.

Setelah mendapat papan, anda perlu meneruskan tiga sub-langkah berikut:

  1. Pasang IDE Arduino terakhir
  2. Konfigurasikan ESP32 di IDE dan
  3. Muat turun dan pasang perpustakaan VGA

Sub-langkah 1. Terdapat kaedah yang berbeza untuk memprogram ESP32, tetapi di sini anda perlu menggunakan Arduino IDE (dengan cara ini saya menggunakan versi 1.8.9). Untuk memasangnya, anda boleh pergi ke halaman Arduino IDE dan ikuti arahannya.

Sub-langkah 2. Setelah operasi sebelumnya dilakukan, anda perlu mengkonfigurasi ESP32 anda dalam Arduino IDE. Ini tidak remeh, kerana ESP32 tidak (belum?) Asli di dalamnya. Anda boleh mengikuti tutorial ini, atau langkah-langkah berikut.

1) buka Arduino IDE

2) buka tetingkap pilihan, Fail / Keutamaan, atau tekan "Ctrl + koma"

3) pergi ke "URL Pengurus Papan Tambahan", salin dan tampal teks berikut:

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

dan klik butang OK.

4) Pengurus papan terbuka. Pergi ke Pengurus Alat / Papan / Papan…

5) Cari ESP32 dan tekan butang pasang untuk "ESP32 by Espressif Systems":

6) Pada ketika ini, apabila anda menyambung ESP32 buat pertama kalinya, anda harus memilih model yang tepat dalam senarai panjang papan ESP32 yang tersedia (lihat gambar dalam langkah ini). Sekiranya terdapat keraguan mengenai model, pilih model generik, iaitu model pertama. Ia berfungsi untuk saya.

7) sistem juga harus memilih port USB (COM) yang betul dan Speed Upload (biasanya 921600). Pada ketika ini hubungan antara PC anda dan papan ESP32 harus terjalin.

Sub-langkah 3. Akhirnya anda mesti memasang perpustakaan FabGL VGA. Klik di sini untuk memuat turun fail termampat yang lengkap. Batalkan kompres dan salin folder yang dihasilkan (FabGL-master) di folder perpustakaan Arduino IDE, yang kelihatan seperti:

"… / Arduino-1.8.12 / perpustakaan".

Langkah 2: Memuat naik "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Muat turun ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip di bahagian bawah langkah ini. Buka zip dan buka dengan Arduino IDE, kemudian muat naik ke ESP32 anda. Sekiranya anda tidak mempunyai mesej ralat, kod tersebut seharusnya sudah berjalan dan anda hanya perlu menyambungkan port dan butang VGA (atau kayu bedik).

Langkah 3: Menyambungkan Port VGA

Menyambungkan Pelabuhan VGA
Menyambungkan Pelabuhan VGA

Anda memerlukan bahagian berikut:

  • Penyambung DSUB15, iaitu penyambung wanita VGA atau kabel VGA yang akan dipotong.
  • tiga perintang 270 Ohm.

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

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

Sambungkan pin penyambung DSUB15 5, 6, 7, 8 dan 10 ke ESP32 GND.

Untuk definisi pin penyambung VGA DSUB15, lihat gambar dalam langkah ini. NB, ini adalah bahagian pemateri penyambung wanita.

Langkah 4: Sambungkan Empat Butang

Sambungkan Empat Butang
Sambungkan Empat Butang
Sambungkan Empat Butang
Sambungkan Empat Butang
Sambungkan Empat Butang
Sambungkan Empat Butang

Sekiranya anda tidak mempunyai kayu bedik C64, anda boleh menyambungkan empat butang mengikuti langkah ini. Sekiranya anda mempunyai kayu bedik, anda boleh melangkau langkah ini dan melangkah ke langkah seterusnya, tetapi anda boleh menyambungkan kedua-dua butang dan kayu bedik (mereka tetap "selari").

Skema dalam langkah ini menunjukkan cara menyambungkan satu butang (Biasanya Terbuka) dari + 5V ke pin yang diberikan ESP32.

Perhatikan bahawa anda juga perlu menyambungkan pin yang diberikan ESP ke GND melalui perintang 1 hingga 5 kOhm. Dengan cara ini apabila butang dilepaskan (buka) pin ESP berada pada nol Volt tepat. Lebih khusus lagi, anda perlu menyambungkan empat butang dengan urutan berikut:

  • Butang pin 12 ke kanan
  • Pin 25 ke atas butang
  • Pin 14 ke butang Kiri
  • Pin butang 35 ke Bawah

Langkah 5: Sambungkan Joystick

Sambungkan Joystick
Sambungkan Joystick
Sambungkan Joystick
Sambungkan Joystick
Sambungkan Joystick
Sambungkan Joystick

Joystick C64 mempunyai pinout yang ditunjukkan pada gambar pertama langkah ini. Untuk menyambungkannya ke ESP32, anda memerlukan penyambung lelaki DSUB 9 pin (iaitu soket), seperti yang ditunjukkan pada gambar kedua. Saya mengeluarkannya dengan pin terpapar dari papan elektronik lama. Anda boleh menggunakan senapang api untuk mengeluarkannya (tetapi lakukan di luar!).

Anda perlu menyambungkan pin mengikut urutan angka dalam gambar-gambar ini. Perhatikan bahawa skematik merujuk pada bahagian joystick, sehingga mewakili sambungan dari palam wanita. Soket (lelaki) untuk menyambung ke ESP32 mempunyai pin dengan disposisi "cermin". Sekiranya terdapat keraguan, ingat bahawa nombor pin selalu dilaporkan pada penyambung lelaki dan wanita, seperti yang ditunjukkan pada gambar ketiga.

Sekiranya anda ingin mengawal permainan dengan joystick sahaja, sambungkan pin biasa (9) ke ESP32 + 5V, dan pin joystick 1, 2, 3, 4 dan 6 ke pin yang diberikan ESP mengikuti senarai berikut.

  • Butang ESP 12 ke kanan (pin RS232 4)
  • ESP pin 14 ke butang Kiri (RS232 pin 3)
  • Butang ESP pin 35 ke Bawah (pin RS232 2)
  • Butang ESP pin 25 ke Atas (RS232 pin 1 dan 6, iaitu api kayu bedik)

NB, pin ESP 12, 14, 25 dan 35 juga mesti disambungkan ke GND melalui perintang 1 hingga 5 kOhm. Dengan cara ini apabila butang dilepaskan (buka) pin ESP berada pada nol Volt tepat.

Kedudukan NB2 joystick UP dan butang api disambungkan bersama ke pin ESP 25-

Saya telah menyambungkan empat butang pada papan PC, dengan cara ini saya tidak memerlukan kayu bedik untuk bermain (walaupun dengan kayu bedik jauh lebih lucu). Sekali lagi, pin RS232 9 mesti disambungkan ke +5 V dan pin kayu bedik sama dengan butang.

Langkah 6: Kesimpulan dan Penghargaan

Kesimpulan dan Penghargaan
Kesimpulan dan Penghargaan

Sekiranya semuanya berfungsi dengan baik, sambungkan sahaja monitor VGA dan anda semestinya dapat menikmati permainan gaya lama!

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

Perhatikan bahawa kodnya ditulis dengan cara permainan lain dapat ditambahkan dengan mudah pada masa akan datang (ESP32 mempunyai banyak ruang!). Sekiranya projek ini mendapat minat yang cukup, saya mungkin melakukannya …

Akhirnya, saya ingin mengucapkan terima kasih kepada Fabrizio Di Vittorio untuk perpustakaan ESP32 VGA yang hebat. Untuk maklumat lebih terperinci, contoh, dan… Space Invaders, kunjungi laman webnya.

Disyorkan: