ป่อง! - เกมอาเขต Arduino!: 3 ขั้นตอน
ป่อง! - เกมอาเขต Arduino!: 3 ขั้นตอน
Anonim
Image
Image
ป่อง! - เกมอาร์เคด Arduino!
ป่อง! - เกมอาร์เคด Arduino!

เราจะสร้างเกมอาร์เคดสไตล์โป่งที่ใช้ชิ้นส่วนจากชุดอุปกรณ์ "The Most Complete Starter Kit UNO R3 Project" จาก Elegoo Inc.

การเปิดเผยข้อมูลแบบเต็ม - ชิ้นส่วนส่วนใหญ่ที่ให้มาสำหรับคำแนะนำนี้จัดทำโดย Elegoo Inc.

ฉันต้องการสร้างโครงการโดยใช้โมดูล LED Matrix จอแสดงผล LED 8x8 พื้นฐานต้องการการใช้ shift register เพิ่มเติมเพื่อให้สามารถระบุ LED แต่ละดวงในเมทริกซ์ได้ โปรเจ็กต์นี้ใช้โมดูล MAX7219 8x8 LED แทน เป็นโมดูลที่ใช้งานง่ายมาก

ฉันขอแนะนำว่าเนื่องจากมีการเชื่อมต่อสายไฟจำนวนมากในโครงการนี้ จึงถือว่าเป็นระดับกลางที่สามารถสอนได้

มาเริ่มกันเลย!

เสบียง

Elegoo Starter Kit อะไหล่มือสอง (https://rebrand.ly/dvjb3w8)

  • ไมโครคอนโทรลเลอร์ UNO R3
  • โมดูล LED MAX7219 8x8
  • โมดูลแสดงผล LCD 16x2
  • 10K ทริมโพเทนชิโอมิเตอร์และลูกบิด
  • สายดูปองท์
  • ตัวต้านทาน 220R
  • Piezo Buzzer แบบพาสซีฟ
  • โมดูลพาวเวอร์ซัพพลาย
  • อะแดปเตอร์ 9V 1A - จำเป็นเนื่องจาก UNO ไม่สามารถจ่ายกระแสไฟเพียงพอสำหรับโมดูล LED 8x8
  • เขียงหั่นขนม

ต้องการอะไหล่เสริม

โพเทนชิโอมิเตอร์เชิงเส้น 2 x 10K - ราคาไม่แพงและมีจำหน่ายทั่วไปบน eBay, AliExpress, Banggood เป็นต้น

ขั้นตอนที่ 1: การเดินสายวงจร

การเดินสายไฟวงจร
การเดินสายไฟวงจร

ต่อวงจรตามแผนภาพการเดินสาย ใช้เวลาของคุณ มีการเชื่อมต่อจำนวนมากที่จำเป็นสำหรับจอแสดงผลทั้งสอง

โปรดสังเกตในภาพของวงจรว่าโมดูลพลังงานติดอยู่ที่ด้านซ้ายของเขียงหั่นขนมและเสียบอะแดปเตอร์ 9V 1A DC เข้ากับโมดูลพลังงานเพื่อให้มีการจ่ายกระแสไฟเพียงพอให้กับเมทริกซ์ LED ไม่มีการเชื่อมต่อระหว่างพิน 5V บน UNO และเขียงหั่นขนม แต่หมุด GND บน UNO เชื่อมต่อกับ GND บนเขียงหั่นขนม

ตรวจสอบงานของคุณสองครั้งและสามครั้ง

ขั้นตอนที่ 2: รหัส Arduino

คำแนะนำนี้ถือว่าคุณรู้วิธีเขียนโปรแกรมใน Arduino แล้ว

ดาวน์โหลดร่าง Arduino ที่แนบมา ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มในไลบรารี LedControl ลงในไลบรารี Arduino ของคุณแล้ว ฉันใช้เวอร์ชันโดย Eberhard Fahle เพียงค้นหา MAX7219 ในเบราว์เซอร์ Manage Libraries แล้วคุณจะพบและติดตั้ง

ตรวจสอบให้แน่ใจว่าไฟล์ pitches.h อยู่ในโฟลเดอร์สเก็ตช์ของคุณ ใช้สำหรับเล่นเสียงในเกม

เล็กน้อยเกี่ยวกับเวลา

เนื่องจากคำสั่ง delay() จะหยุดการดำเนินการร่างของคุณชั่วคราวเมื่อรัน เราจึงมองหาช่วงเวลาที่ผ่านไปที่จะเกิดขึ้นเมื่อเราต้องการรันส่วนที่เกี่ยวข้องกับแอนิเมชันของสเก็ตช์ เรามองหาระยะเวลาที่กำหนดไว้ล่วงหน้าก่อนที่จะดำเนินการบางส่วนของภาพสเก็ตช์ เช่น การอัปเดตตำแหน่งของลูกบอลบนจอแสดงผล

ที่สำคัญกว่านั้น คำสั่ง delay() ถูกดำเนินการในเมธอด loop() เท่านั้น โดยทั่วไปจะไม่ดำเนินการตามที่คาดไว้ในวิธีอื่น ดังนั้นการจับเวลาที่เกี่ยวข้องกับแอนิเมชั่นทั้งหมดจึงเสร็จสิ้นในเมธอด loop()

ตัวอย่าง:

เรากำหนดตัวแปรประเภท 'long' และบูลีนสองสามตัว จากนั้นตั้งค่าไว้ที่ส่วนท้ายของการตั้งค่า ()

bThresh = 80; // เวลาเป็นมิลลิวินาทีระหว่างการอัปเดตลูก

ballTime = millis();// ตั้งค่าเป็นเวลาของระบบปัจจุบัน

บอน = เท็จ; // คือไฟ LED ของลูกบอลเปิดหรือปิด

ballReturn = เท็จ; // เรากำลังคืนลูกบอลหลังจากตีไม้พาย?

ในลูป () สำหรับการวาดลูกบอลที่เรามี:

if ((millis() - ballTime > bThresh) && bon == false) {// ถ้าลูกบอลปิดอยู่และเวลาเพียงพอผ่าน ballOn();// เปิดไฟ LED ของลูกบอล

บอน = จริง; // ตอนนี้บอลเปิดอยู่

ballTime = มิลลิวินาที (); // รีเซ็ต ballTime เป็นเวลาปัจจุบัน

}

if ((millis() - ballTime > bThresh) && bon == true) { // ถ้าลูกบอลเปิดอยู่และเวลาผ่านไปเพียงพอ

balloff(); // ปิดไฟ LED ของลูกบอล

บอน = เท็จ; // ตอนนี้ลูกบอลปิด

ballTime = มิลลิวินาที (); รีเซ็ต ballTIme เป็นเวลาปัจจุบัน

}

มีหลายวิธีที่จะทำให้เกมนี้ นี่เป็นเพียงความชอบของฉัน

สเก็ตช์ได้รับการจัดทำเป็นเอกสารอย่างสมบูรณ์ ดังนั้นฉันขอเชิญคุณอ่านโค้ดเพื่อดูว่ามันทำงานอย่างไร

ตรวจสอบ รวบรวม และอัปโหลดรหัสของคุณ

สนุกกับการเล่นเกมของคุณ!

ขั้นตอนที่ 3: บทสรุป

บทสรุป
บทสรุป
บทสรุป
บทสรุป

ขอขอบคุณ Elegoo Inc สำหรับการจัดหาชุดเริ่มต้นที่ใช้ในโครงการนี้ เป็นชุดที่มีชิ้นส่วนและโมดูลมากมายที่จะช่วยให้คุณเข้าสู่โลกของ Arduino Maker ได้เป็นอย่างดี

แนะนำ: