โปรเจกต์ Arduino Nano Space Invaders
Space Invaders โคลน โดยใช้ TVout libraries
Space Invaders โคลน โดยใช้ TVout libraries
นี่คือโปรเจกต์แรกของผมบน Arduino เลยครับ ฝากเนื้อฝากตัวด้วยนะ 555
ผมกำลังมองหาไอเดียดีๆ ในการเรียนรู้วิธีการทำงานของ Arduino และผมตัดสินใจที่จะสร้างเกม Space Invaders เลียนแบบขึ้นมา ผมทดสอบบน Arduino Nano แต่มันก็น่าจะใช้งานกับ Arduino Uno ได้เหมือนกันครับ
-------------------------------
คุณต้องติดตั้งไลบรารี TVout: โดยดาวน์โหลดจากลิงก์นี้:
https://github.com/Avamander/arduino-tvout
และทำตามคำแนะนำในหน้านั้นเพื่อทำการติดตั้งไลบรารีครับ
-------------------------------
ที่นี่คุณสามารถดูวิดีโอของเวอร์ชัน 1.0 ได้ครับ
ในเวอร์ชัน 1.1 ผมได้แก้ไขบั๊กบางอย่าง ปรับปรุงรูปร่างและจำนวนของเกราะป้องกัน (ตอนนี้มี 4 อันเหมือนในเกมต้นฉบับแล้ว) ปรับปรุงรูปทรงของปืนใหญ่ และเพิ่มยานเอเลี่ยนเข้าไปในเกมครับ
ในเวอร์ชัน 1.2 ผมได้เพิ่ม Sound FX ปรับปรุงขนาดของปืนใหญ่ และเพิ่มตัวเลือกให้สามารถใช้ปุ่มกด 2 ปุ่มแทน Potentiometer เพื่อเคลื่อนที่ปืนใหญ่ (เหมือนกับเกมตู้ Arcade ต้นฉบับ)
-------------------------------
สิ่งที่คุณต้องมี (และเหตุผลที่ต้องใช้):
การต่อ 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):
- เมื่อคุณทำลายคอลัมน์ซ้ายสุด คอลัมน์อื่นๆ ทั้งหมดจะเลื่อนไปทางซ้าย
- ลูกระเบิดถูกปล่อยออกมาจากคอลัมน์ที่ว่างเปล่าด้วยเช่นกัน
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้