หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Arduino Nano Space Invaders

Space Invaders โคลน โดยใช้ TVout libraries

โปรเจกต์ Arduino Nano Space Invaders

รายการอุปกรณ์และเครื่องมือ

1x Rotary Potentiometer, 100 kohm
🛒 สั่งซื้อ
3x Resistor 100k ohm
-
1x Through Hole Resistor, 470 ohm
🛒 สั่งซื้อ
3x Pushbutton Switch, Momentary
🛒 สั่งซื้อ
}

รายละเอียดและวิธีทำ

นี่คือโปรเจกต์แรกของผมบน Arduino เลยครับ ฝากเนื้อฝากตัวด้วยนะ 555

ผมกำลังมองหาไอเดียดีๆ ในการเรียนรู้วิธีการทำงานของ Arduino และผมตัดสินใจที่จะสร้างเกม Space Invaders เลียนแบบขึ้นมา ผมทดสอบบน Arduino Nano แต่มันก็น่าจะใช้งานกับ Arduino Uno ได้เหมือนกันครับ

-------------------------------

คุณต้องติดตั้งไลบรารี TVout: โดยดาวน์โหลดจากลิงก์นี้:

https://github.com/Avamander/arduino-tvout

และทำตามคำแนะนำในหน้านั้นเพื่อทำการติดตั้งไลบรารีครับ

-------------------------------

ที่นี่คุณสามารถดูวิดีโอของเวอร์ชัน 1.0 ได้ครับ

นี่คือเวอร์ชัน 1.0 ครับ เวอร์ชันปัจจุบันจะมีเกราะป้องกันและปืนใหญ่ที่ดูดีกว่านี้

ในเวอร์ชัน 1.1 ผมได้แก้ไขบั๊กบางอย่าง ปรับปรุงรูปร่างและจำนวนของเกราะป้องกัน (ตอนนี้มี 4 อันเหมือนในเกมต้นฉบับแล้ว) ปรับปรุงรูปทรงของปืนใหญ่ และเพิ่มยานเอเลี่ยนเข้าไปในเกมครับ

ในเวอร์ชัน 1.2 ผมได้เพิ่ม Sound FX ปรับปรุงขนาดของปืนใหญ่ และเพิ่มตัวเลือกให้สามารถใช้ปุ่มกด 2 ปุ่มแทน Potentiometer เพื่อเคลื่อนที่ปืนใหญ่ (เหมือนกับเกมตู้ Arcade ต้นฉบับ)

-------------------------------

สิ่งที่คุณต้องมี (และเหตุผลที่ต้องใช้):

  • Arduino Nano / Uno
  • 1x 100 kohm Resistor (สำหรับปุ่มยิงปืนใหญ่)
  • 1 kohm Resistor (สำหรับ TV out)
  • 470 ohm Resistor (สำหรับ TV out)
  • 100 kohm Potentiometer -หรือ- ปุ่มกด 2 ปุ่ม (สำหรับการเคลื่อนที่ของปืนใหญ่)
  • 2x 100 kohm Resistors (ถ้าคุณต้องการเคลื่อนที่ปืนใหญ่ด้วยปุ่มกด)
  • ปุ่มกดแบบ Normally Open (สำหรับปุ่มยิงปืนใหญ่)
  • 1 RCA Connector (สำหรับ Video Out)
  • 1 Breadboard (ไม่บังคับ)

การต่อ Hardware (ดูภาพ Schematics ประกอบ):

1a) ถ้าคุณต้องการใช้ Potentiometer:

ต่อขาตรงกลางของ Potentiometer เข้ากับ Arduino Pins A0 และอีกสองขาที่เหลือของ Potentiometer ต่อเข้ากับ +5V และ GND ตามลำดับ

1b) ถ้าคุณต้องการใช้ปุ่มกด 2 ปุ่ม: ให้ต่อ Resistor ขนาด 100 kohm ระหว่าง GND และ Arduino D4; ต่อ Resistor ขนาด 100 kohm ระหว่าง GND และ Arduino D5; ต่อ ปุ่มกดด้านซ้ายระหว่าง +5V และ Arduino D4; ต่อ ปุ่มกดด้านขวาระหว่าง +5V และ Arduino D5;

2) ต่อ Resistor ขนาด 100 kohm ระหว่าง GND และ Arduino D12;

3) ต่อปุ่มกดระหว่าง +5V และ Arduino D12;

4) ต่อ Resistor ขนาด 1 kohm ระหว่าง Arduino D9 และขั้วต่อ Video Out (ขา Signal);

5) ต่อ Resistor ขนาด 470 ohm ระหว่าง Arduino D7 และขั้วต่อ Video Out (ขา Signal);

6) ต่อ Arduino GND เข้ากับขั้วต่อ Video Out (GND);

7) ต่อลำโพงระหว่าง D11 และ GND

อัปโหลด Sketch ลงใน Arduino Nano / Uno ของคุณ เท่านี้ก็เรียบร้อย!

หมายเหตุ: เนื่องจากความละเอียดต่ำ (และทำให้พื้นที่ไม่เพียงพอ) คะแนนและยานเอเลี่ยนจะปรากฏขึ้นก็ต่อเมื่อเหล่าเอเลี่ยนเลื่อนลงมาไม่กี่แถวเท่านั้น

---------------------

ปัญหาที่ทราบและมีแผนจะปรับปรุงในภายหลัง (จริงๆ แล้วไม่ใช่บั๊ก แต่เป็นวิธีแก้ขัดที่ผมใช้เพื่อให้เขียนโค้ดได้ง่ายขึ้นนิดหน่อยครับ 555):

- เมื่อคุณทำลายคอลัมน์ซ้ายสุด คอลัมน์อื่นๆ ทั้งหมดจะเลื่อนไปทางซ้าย

- ลูกระเบิดถูกปล่อยออกมาจากคอลัมน์ที่ว่างเปล่าด้วยเช่นกัน

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: arduino-nano-space-invaders-8b8d41
699 บาท
PromptPay QR Code