สารบัญ:

ESP8266 VGA Pong: 5 ขั้นตอน (พร้อมรูปภาพ)
ESP8266 VGA Pong: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ESP8266 VGA Pong: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ESP8266 VGA Pong: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วิธีใช้ Arduino ESP8266 WS2812b NeoPixel : ESP8266 ควบคุม LED WS2812B NeoPixel 2024, กรกฎาคม
Anonim
Image
Image
รายการวัสดุ
รายการวัสดุ

ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างเกม Pong แบบคลาสสิกสำหรับจอภาพ VGA โดยใช้ ESP8266 และส่วนประกอบอื่นๆ บางส่วน

เกมนี้เป็นไปได้โดยห้องสมุด EspVGAx ที่เพิ่งเผยแพร่บน GitHub โดย Sandro Maffiodo (หรือที่รู้จักว่า Smaffer) และเท่าที่ฉันรู้ เกมนี้เป็นเกมแรกที่ใช้ประโยชน์จากมัน

ไลบรารีนี้ใช้ความละเอียด 512 x 480 พิกเซล ซึ่งจัดเก็บไว้ในเฟรมบัฟเฟอร์ภายใน RAM ซึ่งต้องการ 30720 ไบต์ ความละเอียดมีขนาดใหญ่มากเมื่อเปรียบเทียบกับ Arduino TVout หรือ VGAx (128 x 96 และ 120 x 60 พิกเซลตามลำดับ) ฉันหวังว่าเกมนี้จะเป็นแรงบันดาลใจให้โปรแกรมเมอร์คนอื่นๆ พัฒนาหรือสร้างเกมที่ซับซ้อนมากขึ้น

ขั้นตอนที่ 1: รายการวัสดุ

ไลบรารี EspVGAx ต้องการ ESP8266 ที่เปิดเผย GPIO ทั้งหมด เช่น ESP-12E, บอร์ด NodeMCU-12E หรือบอร์ดใดๆ ที่แสดง GPIO5 (D1), GPIO4 (D2) และ GPIO13 (D7)

โดยเฉพาะอย่างยิ่งฉันใช้:

  • ESP8266 NodeMCU-12E (ลิงค์ที่นี่)
  • ขั้วต่อ DSUB15 (เช่น ขั้วต่อ VGA ตัวเมีย)
  • ตัวต้านทาน 330 โอห์ม
  • ตัวต้านทานอื่น (ประมาณ 1 ถึง 3 kOhm)
  • โพเทนชิโอมิเตอร์ 10 kOhm สองตัว
  • ปุ่มกด (n.o.)
  • ไดโอดสองตัว (เช่น 1N4007s)
  • เขียงหั่นขนม
  • สายไฟ

ฉันได้รับตัวเชื่อมต่อ DSUB15 จากบอร์ดพีซี VGA รุ่นเก่า หรือคุณสามารถตัดสาย VGA เก่าแล้วต่อสายไฟเข้ากับเขียงหั่นขนมได้โดยตรง

ขั้นตอนที่ 2: อัปโหลดไลบรารีและ Sketch

ไลบรารีและการอัปโหลดภาพร่าง
ไลบรารีและการอัปโหลดภาพร่าง

มีวิธีการต่าง ๆ ในการเขียนโปรแกรมและ ESP8266; ฉันใช้ Arduino IDE เพื่อเขียนโป่งและอัปโหลดโค้ด

โปรดทราบว่าไลบรารี EspVGAx ใช้งานได้กับ Arduino IDE 1.8.1 หากคุณมีเวอร์ชันอื่น วิธีที่ดีที่สุดคือการดาวน์โหลดไฟล์.zip และคลายการบีบอัดในโฟลเดอร์เฉพาะ เวอร์ชัน Windows อยู่ที่นี่ เวอร์ชันสำหรับระบบปฏิบัติการอื่นอยู่ที่นี่

หลังจากนั้น คุณควรดาวน์โหลดไลบรารี EspVGAx จากหน้า GithHub ที่นี่ (ลิงก์โดยตรงสำหรับเวอร์ชัน zip ที่นี่) และคลายการบีบอัดในไลบรารีโฟลเดอร์ในซอฟต์แวร์ Arduino

หมายเหตุ มีข้อบกพร่องเล็กน้อยในไฟล์ espvgax_draw.h หากต้องการแก้ไขให้แทนที่บรรทัดที่ 17:

ในขณะที่ (x0%32) { กับ while (x0%32 && sw > 32) {

สุดท้าย คุณสามารถดาวน์โหลด ESP8266_Pong.rar ได้เมื่อสิ้นสุดขั้นตอนนี้

เมื่อคลายซิปแล้ว ในการอัปโหลดบน ESP8266 คุณต้องกำหนดค่า Arduino IDE

หากคุณไม่เคยทำมาก่อน คุณสามารถค้นหาคำแนะนำที่จำเป็นทั้งหมดได้ใน Instructables นี้ โดยเฉพาะในขั้นตอนที่ 2

เมื่อกำหนดค่าทุกอย่างแล้ว การตั้งค่า ESP8266 ควรมีลักษณะเหมือนที่แสดงในภาพด้านบน

หากคุณสามารถอัปโหลดโค้ดได้โดยไม่มีข้อผิดพลาด คุณสามารถเริ่มประกอบชิ้นส่วนได้

ขั้นตอนที่ 3: การเชื่อมต่อชิ้นส่วนต่างๆ: ขั้วต่อ VGA

การเชื่อมต่อชิ้นส่วนต่างๆ: ขั้วต่อ VGA
การเชื่อมต่อชิ้นส่วนต่างๆ: ขั้วต่อ VGA
การเชื่อมต่อชิ้นส่วนต่างๆ: ขั้วต่อ VGA
การเชื่อมต่อชิ้นส่วนต่างๆ: ขั้วต่อ VGA
การเชื่อมต่อชิ้นส่วนต่างๆ: ขั้วต่อ VGA
การเชื่อมต่อชิ้นส่วนต่างๆ: ขั้วต่อ VGA

ฉันแนะนำให้เชื่อมต่อพอร์ต VGA ก่อนดังแสดงในภาพด้านบน โปรดทราบว่าเมื่อเชื่อมต่อหมุดสามตัวสีแดง สีเขียว และสีน้ำเงินเข้าด้วยกัน (เช่น หมุด 1, 2 และ 3 บนตัวเชื่อมต่อ DSUB15) คุณจะมีภาพขาวดำบนหน้าจอของคุณ คุณสามารถผสมสีต่างๆ ได้ ดูรายละเอียดในหน้า Library GitHub

นอกจากนี้ คุณควรเชื่อมต่อตัวต้านทาน 330 Ohm ระหว่างพิน RGB และ D7 (GPIO13) บน ESP8266 สิ่งนี้ทำให้ฉันมีภาพสีเทาเล็กน้อยบนจอภาพ ดังนั้น หลังจากพยายามไม่กี่ครั้ง ฉันจึงตัดสินใจกำจัดมันทิ้งเลย

ณ จุดนี้ หากทุกอย่างทำงานอย่างถูกต้อง คุณสามารถเชื่อมต่อจอภาพแล้วดูหน้าจอเริ่มต้นของเกมได้ด้วยแบนเนอร์ "ESP8266 VGAx Pong"

ขั้นตอนที่ 4: การเชื่อมต่อชิ้นส่วนต่างๆ: โพเทนชิโอมิเตอร์และปุ่ม

การเชื่อมต่อชิ้นส่วน: โพเทนชิโอมิเตอร์และปุ่ม
การเชื่อมต่อชิ้นส่วน: โพเทนชิโอมิเตอร์และปุ่ม

ต้องเชื่อมต่อปุ่มระหว่าง 3.3V และพิน D0 (GPIO16) เชื่อมต่อตัวต้านทาน 1 ถึง 3 kOhm จาก D0 กับกราวด์ เพื่อหลีกเลี่ยงไม่ให้ D0 อยู่ในสถานะที่ไม่ได้กำหนดไว้เมื่อเปิดปุ่ม

การเชื่อมต่อของโพเทนชิโอมิเตอร์สองตัวนั้นไม่สำคัญ เนื่องจาก ESP8266 มีเพียงพอร์ตอินพุตอนาล็อก A0 (ADC0)! เคล็ดลับคือเชื่อมต่อเอาต์พุต pot.s ทั้งสองเข้ากับพอร์ตเดียวกันและ 'multiplex' มัลติเพล็กซ์หมายความว่าคุณจะเปิดโพเทนชิออมิเตอร์ อ่าน จากนั้นปิดและย้ายไปที่โพเทนชิออมิเตอร์ที่สอง

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการนี้ คุณสามารถอ่านคำแนะนำนี้ได้

เชื่อมต่อโพเทนชิออมิเตอร์สุดขั้วหนึ่งตัวกับ GND อีกขั้วหนึ่งกับ D5 สำหรับโพเทนชิออมิเตอร์ของผู้เล่นด้านซ้าย และ D6 สำหรับเครื่องเล่นที่ถูกต้อง

พินกลางของโพเทนชิออมิเตอร์แต่ละตัวต้องเชื่อมต่อกับไดโอดแต่ละตัวและด้านอื่น ๆ ของไดโอดจะต้องเชื่อมต่อกับ A0 (ADC0) โดยมีขั้วที่แสดงในภาพด้านบน

ขั้นตอนที่ 5: บทสรุปและรับทราบ

ฉันรู้สึกขอบคุณ Sandro Maffiodo - SMAFFER - สำหรับห้องสมุด ESPVGAX เกมนี้เป็นไปไม่ได้หากไม่มีมัน

ฉันหวังว่าคำแนะนำนี้จะเป็นแรงบันดาลใจให้กับโปรแกรมเมอร์คนอื่น ๆ ในการสร้างเกมอาร์เคดคลาสสิกที่ซับซ้อนมากขึ้นด้วย ESP8266 ซึ่งมีข้อ จำกัด น้อยกว่า Arduino มาก

สุดท้าย ฉันเขียนคำแนะนำนี้เพื่อส่งไปยังการประกวดของเล่น: หากคุณชอบหรือทำซ้ำ โปรดสละเวลาสักครู่เพื่อโหวต!

แนะนำ: