สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
ในคำแนะนำนี้ฉันจะแสดงวิธีการทำซ้ำสี่อาร์เคดเช่นเกม - Tetris - Snake - Breakout - Bomber - โดยใช้ ESP32 พร้อมเอาต์พุตสำหรับจอภาพ VGA
ความละเอียด 320 x 200 พิกเซล 8 สี ก่อนหน้านี้ฉันเคยทำเวอร์ชันที่มี Arduino Uno ไว้แล้ว (ดูที่นี่) แต่ความละเอียดมีเพียง 120 x 60 พิกเซล 4 สี และหน่วยความจำ Arduino ก็เกือบเต็มแล้ว ด้วยประสิทธิภาพที่เหนือกว่าของ ESP32 ทั้งความละเอียดและความสามารถในการเล่นจึงสูงขึ้น นอกจากนี้ยังมีหน่วยความจำเหลือเฟือ ดังนั้นการเพิ่มเกมใหม่ในอนาคตจะตรงไปตรงมา
ฉันจะแสดงความร้อนเพื่อเชื่อมต่อจอยสติ๊กแบบธรรมดากับสายเคเบิล RS232 ฉันใช้ pinout เดียวกันกับ Commodore 64
โครงการนี้เกิดขึ้นได้ด้วยไลบรารี ESP32 VGA ที่ยอดเยี่ยมซึ่งเขียนโดย Fabrizio Di Vittorio ดูที่นี่สำหรับรายละเอียดเพิ่มเติม
ขั้นตอนที่ 1: บอร์ด ESP32, การติดตั้ง Arduino IDE และการกำหนดค่าไลบรารี VGA
ก่อนอื่นคุณต้องซื้อ ESP32 รุ่นแก้ไข 1 หรือสูงกว่า มีหลายรุ่นให้เลือก แต่ผมแนะนำให้เลือกรุ่นที่มีหมุดหลายอัน ควรเป็นแบบอย่างในภาพนี้ที่มี 38 พิน ฉันกำลังใช้เวอร์ชันนี้อยู่ แต่ฉันคิดว่าหลายๆ ตัวก็ใช้ได้ดีเช่นกัน บนอีเบย์ คุณสามารถหารุ่นนี้ได้ในราคาไม่ถึง 7 ยูโร รวมค่าจัดส่งแล้ว
เมื่อคุณได้บอร์ดแล้ว คุณต้องดำเนินการตามขั้นตอนย่อยสามขั้นตอนต่อไปนี้:
- ติดตั้ง Arduino IDE. ตัวสุดท้าย
- กำหนดค่า ESP32 ใน IDE และ
- ดาวน์โหลดและติดตั้งไลบรารี VGA
ขั้นตอนย่อย 1 มีหลายวิธีในการเขียนโปรแกรม ESP32 แต่ที่นี่คุณต้องใช้ Arduino IDE (ฉันกำลังใช้เวอร์ชัน 1.8.9 อยู่) ในการติดตั้ง คุณสามารถไปที่หน้า Arduino IDE และทำตามคำแนะนำ
ขั้นตอนย่อย 2 เมื่อการดำเนินการก่อนหน้านี้เสร็จสิ้น คุณต้องกำหนดค่า ESP32 ของคุณภายใน Arduino IDE นี่ไม่ใช่เรื่องเล็กน้อยเนื่องจาก ESP32 ยังไม่มี (ยัง?) อยู่ในนั้น คุณสามารถทำตามบทช่วยสอนนี้หรือขั้นตอนต่อไปนี้
1) เปิด Arduino IDE
2) เปิดหน้าต่างการตั้งค่า ไฟล์/การตั้งค่า หรือกด "Ctrl+comma"
3) ไปที่ "URL ผู้จัดการบอร์ดเพิ่มเติม" คัดลอกและวางข้อความต่อไปนี้:
https://dl.espressif.com/dl/package_esp32_index.js…
และคลิกปุ่มตกลง
4) เปิดผู้จัดการบอร์ด ไปที่ Tools/Board/Boards Manager…
5) ค้นหา ESP32 และกดปุ่มติดตั้งสำหรับ "ESP32 by Espressif Systems":
6) ณ จุดนี้ เมื่อคุณเชื่อมต่อเป็นครั้งแรกกับ ESP32 คุณควรเลือกรุ่นที่เหมาะสมในรายการบอร์ด ESP32 ที่มีอยู่จำนวนมาก (ดูภาพในขั้นตอนนี้) ในกรณีที่มีข้อสงสัยเกี่ยวกับรูปแบบ ให้เลือกแบบทั่วไป นั่นคือ แบบแรก มันใช้งานได้สำหรับฉัน
7) ระบบควรเลือกพอร์ต USB (COM) ที่เหมาะสมและความเร็วในการอัพโหลด (ปกติ 921600) ณ จุดนี้ การเชื่อมต่อระหว่างพีซีของคุณกับบอร์ด ESP32 ควรจะถูกสร้างขึ้น
ขั้นตอนย่อย 3.สุดท้าย คุณต้องติดตั้งไลบรารี FabGL VGA คลิกที่นี่เพื่อดาวน์โหลดไฟล์บีบอัดที่สมบูรณ์ คลายการบีบอัดและคัดลอกโฟลเดอร์ผลลัพธ์ (FabGL-master) ในโฟลเดอร์ไลบรารี Arduino IDE ซึ่งมีลักษณะดังนี้:
"…\arduino-1.8.12\ไลบรารี".
ขั้นตอนที่ 2: การอัปโหลด "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"
ดาวน์โหลด ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip ที่ด้านล่างของขั้นตอนนี้ เปิดเครื่องรูดและเปิดด้วย Arduino IDE จากนั้นอัปโหลดไปยัง ESP32 ของคุณ หากคุณไม่มีข้อความแสดงข้อผิดพลาด โค้ดควรจะทำงานอยู่แล้วและคุณเพียงแค่ต้องเชื่อมต่อพอร์ต VGA และปุ่ม (หรือจอยสติ๊ก)
ขั้นตอนที่ 3: เชื่อมต่อพอร์ต VGA
คุณต้องการชิ้นส่วนต่อไปนี้:
- ขั้วต่อ DSUB15 เช่น ขั้วต่อ VGA ตัวเมีย หรือสาย VGA ที่จะตัด
- ตัวต้านทาน 270 โอห์มสามตัว
เชื่อมต่อ ESP32 GPIO pin 2, 15 และ 21 กับ VGA Red, Green และ Blue ตามลำดับ ผ่านตัวต้านทาน 270 Ohm
เชื่อมต่อ VGA Hsync และ Vsync กับ ESP32 GPIO พิน 17 และ 4 ตามลำดับ
เชื่อมต่อพินตัวเชื่อมต่อ DSUB15 5, 6, 7, 8 และ 10 เข้ากับ ESP32 GND
สำหรับความละเอียดของพินตัวเชื่อมต่อ VGA DSUB15 โปรดดูรูปภาพในขั้นตอนนี้ NB นี่คือด้านบัดกรีของขั้วต่อตัวเมีย
ขั้นตอนที่ 4: เชื่อมต่อสี่ปุ่ม
หากคุณไม่มีจอยสติ๊ก C64 คุณสามารถเชื่อมต่อสี่ปุ่มตามขั้นตอนนี้ หาก yoy มีจอยสติ๊ก คุณสามารถข้ามขั้นตอนนี้และข้ามไปยังขั้นตอนถัดไปได้ แต่อย่างไรก็ตาม คุณสามารถเชื่อมต่อทั้งปุ่มและจอยสติ๊กได้ (อย่างไรก็ตาม ทั้งสองปุ่ม "ขนานกัน")
แผนผังในขั้นตอนนี้แสดงวิธีเชื่อมต่อปุ่มเดียว (ปกติเปิด) จาก +5V กับขาที่กำหนดของ ESP32
โปรดทราบว่าคุณต้องเชื่อมต่อ ESP ที่กำหนดให้กับ GND รางตัวต้านทาน 1 ถึง 5 kOhm ด้วยวิธีนี้เมื่อปล่อยปุ่ม (เปิด) หมุด ESP จะอยู่ที่ศูนย์โวลต์พอดี โดยเฉพาะอย่างยิ่ง คุณต้องเชื่อมต่อสี่ปุ่มตามลำดับต่อไปนี้:
- ปักหมุด 12 ไปที่ปุ่มขวา
- ปักหมุด 25 ปุ่มขึ้น
- ปักหมุด 14 ไปที่ปุ่มซ้าย
- ปักหมุด 35 ไปที่ปุ่มลง
ขั้นตอนที่ 5: เชื่อมต่อจอยสติ๊ก
จอยสติ๊ก C64 มีพินเอาต์ที่แสดงในภาพแรกของขั้นตอนนี้ ในการเชื่อมต่อกับ ESP32 คุณต้องมีขั้วต่อ DSUB ตัวผู้ 9 ขา (เช่นซ็อกเก็ต) ดังที่แสดงในภาพที่สอง ฉันเอาอันที่มีหมุดหลุดออกมาจากบอร์ดอิเล็กทรอนิกส์เก่า คุณสามารถใช้ปืนความร้อนเพื่อถอดออก (แต่ทำกลางแจ้ง!)
คุณต้องเชื่อมต่อหมุดตามลำดับตัวเลขในรูปภาพเหล่านี้ โปรดทราบว่าแผนผังหมายถึงด้านของจอยสติ๊ก ดังนั้นจึงแสดงถึงการเชื่อมต่อของปลั๊กตัวเมีย ซ็อกเก็ต (ตัวผู้) เพื่อเชื่อมต่อกับ ESP32 มีหมุดที่มี "กระจกเงา" ในกรณีที่มีข้อสงสัย โปรดจำไว้ว่า หมายเลขพินจะถูกรายงานบนขั้วต่อตัวผู้และตัวเมียเสมอ ดังแสดงในภาพที่สาม
หากคุณต้องการควบคุมเกมด้วยจอยสติ๊กเท่านั้น ให้ต่อพินทั่วไป (9) เข้ากับ ESP32 +5V และหมุดจอยสติ๊ก 1, 2, 3, 4 และ 6 กับหมุดที่กำหนดของ ESP ตามรายการต่อไปนี้
- ESP พิน 12 ถึงปุ่มขวา (RS232 พิน 4)
- ESP พิน 14 ถึงปุ่มซ้าย (RS232 พิน 3)
- ESP พิน 35 ถึงปุ่มลง (RS232 พิน 2)
- ปุ่ม ESP พิน 25 ขึ้นไป (RS232 พิน 1 และ 6 เช่น จอยสติ๊กไฟ)
NB หมุด ESP 12, 14, 25 และ 35 จะต้องเชื่อมต่อกับราง GND ตัวต้านทาน 1 ถึง 5 kOhm ด้วย ด้วยวิธีนี้เมื่อปล่อยปุ่ม (เปิด) หมุด ESP จะอยู่ที่ศูนย์โวลต์พอดี
ตำแหน่ง UP ของจอยสติ๊ก NB2 และปุ่มไฟเชื่อมต่อเข้าด้วยกันกับขา ESP 25-
ฉันเชื่อมต่อสี่ปุ่มบนบอร์ด PC ด้วยวิธีนี้ ฉันจึงไม่ต้องการจอยสติ๊กเพื่อเล่น (แม้ว่าจอยสติ๊กจะตลกกว่ามากก็ตาม) อีกครั้ง RS232 พิน 9 ต้องเชื่อมต่อกับ +5 V และหมุดจอยสติ๊กนั้นขนานกับปุ่ม
ขั้นตอนที่ 6: บทสรุปและรับทราบ
หากทุกอย่างทำงานอย่างถูกต้อง เพียงเชื่อมต่อจอภาพ VGA แล้วคุณจะสนุกกับเกมแบบเก่าได้!
คุณยังสามารถวาดชุด Mandelbrot ที่มีความละเอียด 640 x 350 พิกเซล เพื่อทดสอบความสามารถของไลบรารี VGA
โปรดทราบว่ารหัสถูกเขียนขึ้นเพื่อให้เกมอื่น ๆ สามารถเพิ่มได้อย่างง่ายดายในอนาคต (ESP32 มีพื้นที่มากมาย!) ฉันสนใจโครงการนี้มากพอ ฉันอาจทำอย่างนั้น…
สุดท้ายนี้ ฉันต้องการแสดงรถถังของฉันต่อ Fabrizio Di Vittorio สำหรับห้องสมุด ESP32 VGA ที่ยอดเยี่ยมของเขา สำหรับรายละเอียดเพิ่มเติม ตัวอย่าง และ… Space Invaders ไปที่ไซต์ของเขา
แนะนำ:
VGA / GPU ภายนอกสำหรับแล็ปท็อปที่ใช้ EXP GDC Beast: 15 ขั้นตอน (พร้อมรูปภาพ)
VGA / GPU ภายนอกสำหรับแล็ปท็อปโดยใช้ EXP GDC Beast: สวัสดีทุกคน .. นี่เป็นบทช่วยสอนแรกของฉันเกี่ยวกับคำแนะนำ ภาษาอังกฤษไม่ใช่ภาษาแรกของฉัน ดังนั้นโปรดยกโทษให้ข้อผิดพลาดทางไวยากรณ์ของฉัน ฉันทำสิ่งนี้ตามประสบการณ์ในการอัพเกรดแล็ปท็อปของฉัน และฉันจะไม่ทำให้คุณเบื่อด้วยการแนะนำตัวนาน ๆ เนื่องจากฉันไม่รู้
Arduino Basic PC พร้อมเอาต์พุต VGA: 5 ขั้นตอน (พร้อมรูปภาพ)
Arduino Basic PC พร้อมเอาต์พุต VGA: ในคำแนะนำก่อนหน้าของฉัน ฉันได้แสดงวิธีสร้างคอมพิวเตอร์ 8 บิตย้อนยุคที่ใช้ BASIC โดยใช้ Arduino สองตัวและมีสัญญาณเอาต์พุตเป็นขาวดำสำหรับหน้าจอทีวี ตอนนี้ผมจะแสดงวิธีการสร้างคอมพิวเตอร์เครื่องเดียวกัน แต่ด้วยสัญญาณเอาท์พุตใน
ESP32 VGA Snake: 5 ขั้นตอน
ESP32 VGA Snake: ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างเกมอาร์เคดคลาสสิก - Snake - ด้วย ESP32 พร้อมเอาต์พุตสำหรับจอภาพ VGA ความละเอียด 640x350 พิกเซล มี 8 สี ฉันเคยทำเวอร์ชันกับ Arduino Uno มาก่อนแล้ว (ดูที่นี่) แต่
ESP32 Basic PC พร้อมเอาต์พุต VGA: 7 ขั้นตอน
พีซีพื้นฐาน ESP32 พร้อมเอาต์พุต VGA: ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างพีซีสไตล์ย้อนยุคที่เรียบง่ายด้วย ESP32 ตัวเดียวและส่วนประกอบอื่นๆ สองสามตัว พีซีเครื่องนี้ใช้งาน Tiny Basic ซึ่งเป็นภาษาถิ่นที่เรียบง่ายของ BASIC และสร้างเอาต์พุตสำหรับจอภาพ VGA ความละเอียด 640
ESP8266 VGA Pong: 5 ขั้นตอน (พร้อมรูปภาพ)
ESP8266 VGA Pong: ในคำแนะนำนี้ ผมจะแสดงวิธีสร้างเกม Pong แบบคลาสสิกสำหรับจอภาพ VGA โดยใช้ ESP8266 และส่วนประกอบอื่นๆ บางส่วน เกมนี้เกิดขึ้นได้โดยห้องสมุด EspVGAx ที่เพิ่งเผยแพร่บน GitHub โดย Sandro Maffiodo