Isi kandungan:

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, Jun
Anonim
Image
Image
Senarai Bahan
Senarai Bahan

Dalam Instructables ini saya akan menunjukkan bagaimana membina reproduksi permainan klasik Pong untuk monitor VGA, menggunakan ESP8266 dan beberapa komponen lain.

Permainan ini dimungkinkan oleh perpustakaan EspVGAx yang baru diterbitkan di GitHub oleh Sandro Maffiodo (aka Smaffer) dan, setahu saya, ini adalah permainan pertama yang memanfaatkannya.

Perpustakaan menerapkan resolusi 512 x 480 piksel, disimpan dalam framebuffer di dalam RAM, yang memerlukan 30720 bait. Resolusi sangat besar jika dibandingkan dengan Arduino TVout atau VGAx (masing-masing 128 x 96 dan 120 x 60 piksel). Saya harap permainan ini memberi inspirasi kepada pengaturcara lain untuk mengembangkan atau menghasilkan semula permainan yang lebih kompleks.

Langkah 1: Senarai Bahan

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

Khususnya, saya menggunakan:

  • ESP8266 NodeMCU-12E (pautan di sini)
  • penyambung DSUB15 (iaitu penyambung wanita VGA)
  • perintang 330 Ohm
  • perintang lain (kira-kira 1 hingga 3 kOhm)
  • dua Potensiometer 10 kOhm
  • Butang Tekan (tidak.)
  • dua Diod (seperti 1N4007s)
  • papan roti
  • wayar

Saya mendapat penyambung DSUB15 dari papan PC VGA lama. Sebagai alternatif, anda juga boleh memotong kabel VGA lama dan menyambungkan wayar terus ke papan roti.

Langkah 2: Perpustakaan dan Muat Naik Sketsa

Perpustakaan dan Muat Naik Sketsa
Perpustakaan dan Muat Naik Sketsa

Terdapat kaedah yang berbeza untuk memprogram dan ESP8266; Saya menggunakan Arduino IDE untuk menulis Pong dan memuat naik kodnya.

Harap maklum bahawa perpustakaan EspVGAx berfungsi untuk Arduino IDE 1.8.1. Sekiranya anda mempunyai versi lain, yang terbaik adalah memuat turun fail.zip dan mengeluarkannya dalam folder khusus. Versi Windows ada di sini. Versi untuk OS lain ada di sini.

Selepas itu, anda harus memuat turun perpustakaan EspVGAx dari halaman GithHub di sini (pautan langsung untuk versi zip di sini), dan membebaskannya di perpustakaan folder dalam perisian Arduino.

NB Terdapat sedikit bug dalam fail espvgax_draw.h. Untuk membetulkannya, ganti garis 17:

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

Akhirnya anda boleh memuatkan ESP8266_Pong.rar pada akhir langkah ini.

Setelah dizip, untuk memuat naiknya di ESP8266, anda perlu mengkonfigurasi Arduino IDE.

Sekiranya anda tidak pernah melakukannya, anda boleh mendapatkan semua arahan yang diperlukan pada Instructables ini, khususnya dalam Langkah 2.

Setelah semuanya dikonfigurasi, tetapan ESP8266 akan kelihatan seperti yang ditunjukkan dalam gambar di atas.

Sekiranya anda boleh memuat naik kod tanpa ralat, anda boleh mula menyusun bahagiannya.

Langkah 3: Menyambungkan Bahagian: Penyambung VGA

Menyambungkan Bahagian: Penyambung VGA
Menyambungkan Bahagian: Penyambung VGA
Menyambungkan Bahagian: Penyambung VGA
Menyambungkan Bahagian: Penyambung VGA
Menyambungkan Bahagian: Penyambung VGA
Menyambungkan Bahagian: Penyambung VGA

Saya meminta untuk menyambungkan port VGA terlebih dahulu, seperti yang ditunjukkan dalam gambar di atas. Harap maklum bahawa dengan menyambungkan tiga pin Merah, Hijau dan Biru bersama (iaitu pin 1, 2 dan 3 pada penyambung DSUB15), anda akan mempunyai imej B&W di skrin anda. Anda juga boleh mempunyai kombinasi warna yang berbeza. Lihat perinciannya di halaman Library GitHub.

Selanjutnya, anda harus menyambungkan perintang 330 Ohm antara pin RGB dan D7 (GPIO13) pada ESP8266. Ini memberi saya sedikit gambar kelabu pada monitor saya, oleh itu, setelah beberapa kali mencuba, saya memutuskan untuk menghapuskannya sama sekali.

Pada ketika ini, jika semuanya berfungsi dengan baik, anda sudah dapat menyambungkan monitor dan melihat layar permulaan permainan, dengan sepanduk "ESP8266 VGAx Pong".

Langkah 4: Menyambungkan Bahagian: Potentiometers dan Butang

Menghubungkan Bahagian: Potentiometers dan Butang
Menghubungkan Bahagian: Potentiometers dan Butang

Butang mesti disambungkan antara 3.3V dan pin D0 (GPIO16). Sambungkan juga perintang 1 hingga 3 kOhm dari D0 ke tanah. Ini mengelakkan D0 berada pada status yang tidak ditentukan semasa butang terbuka.

Sambungan kedua potensiometer kurang remeh, kerana ESP8266 hanya mempunyai port input analog A0 (ADC0)! Caranya adalah dengan menghubungkan kedua-dua output pot.s ke port yang sama, dan 'multiplex' mereka. Multiplexing bermaksud anda akan menghidupkan potensiometer, membacanya, kemudian mematikannya dan beralih ke yang kedua.

Sekiranya anda ingin mengetahui lebih lanjut mengenai kaedah ini, anda boleh membaca Instructable ini.

Sambungkan satu potensiometer yang melampau ke GND, yang lain yang ekstrim ke D5 untuk potensiometer pemain kiri dan D6 untuk pemain kanan.

Setiap pin pusat potensiometer mesti disambungkan ke dioda individu, dan sisi lain dari dioda mesti dihubungkan ke A0 (ADC0), dengan kekutuban yang ditunjukkan dalam gambar di atas.

Langkah 5: Kesimpulan dan Ucapan Terima Kasih

Saya berterima kasih kepada Sandro Maffiodo - SMAFFER - untuk perpustakaan ESPVGAX. Permainan ini tidak akan dapat dilakukan tanpanya.

Saya harap Instructable ini akan menjadi inspirasi kepada pengaturcara lain untuk membuat reproduksi permainan arked klasik yang lebih kompleks dengan ESP8266, yang mempunyai had yang jauh lebih sedikit daripada Arduino.

Akhirnya, saya menulis Instructable ini untuk menyerahkannya ke Peraduan Mainan: jika anda suka atau menghasilkannya semula, sila luangkan masa untuk memilihnya!

Disyorkan: