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

โปรเจกต์ Super Mario Odyssey IRL

มันเจ๋งใช่ไหมตอนที่ Mario ขว้าง Cappy ใน Odyssey? ผมเลยสร้างมันขึ้นมาในชีวิตจริง

โปรเจกต์ Super Mario Odyssey IRL

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

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

1x Battery Holder, AA x 2
-
1x SparkFun RedBot Sensor - Line Follower
-
1x Slide Switch
-
1x Wheels for the motors
-
1x 3d pen (optional)
-
1x 9V Battery Clip
-
1x Arduino Nano R3
-
2x AA Batteries
-
1x DC Motor, 12 V
-
1x 9V battery (generic)
-
1x L298n Motor Driver
-

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

ก่อนอื่นต้องขออภัยหากมีข้อผิดพลาดในการพิมพ์ (ผมไม่ใช่เจ้าของภาษาอังกฤษครับ)

จุดเริ่มต้นของโปรเจกต์

ในโปรเจกต์นี้ ผมตั้งใจที่จะสร้าง Cappy จากเกม Super Mario Odyssey ผมคิดว่ามันน่าจะเป็นโปรเจกต์เดี่ยวชิ้นแรกที่เรียบง่ายและสนุกสนาน หลักการของผมคือถ้าผมต่อเชือกเข้ากับ Motor และปลายอีกด้านผูกกับหมวก เมื่อผมสั่งให้ Motor ทำงาน หมวกก็จะหมุนไปรอบๆ ดังนั้นถ้าผมสามารถติดตั้งกลไกแบบนั้นไว้บนหัวได้ หมวกก็จะหมุนไปรอบตัวผมเหมือนในเกมเลย

หลังจากผ่านการทดสอบหลายครั้ง นี่คือผลลัพธ์ที่ได้ครับ (สำหรับวิดีโอเพิ่มเติม สามารถเข้าไปดูได้ที่ Instagram ของผม @alguienmuyrobotico):

หลักการทำงาน

สุดท้ายแล้วมันใช้ Motor 2 ตัว ตัวหนึ่งสำหรับ ส่วนที่หมุน (spinning part) และอีกตัวหนึ่งสำหรับ รอก (pulley) ซึ่งทั้งสองส่วนนี้ทำงานร่วมกันเพื่อให้ผมสามารถทำท่า Spinning Attack และ Normal Attack ได้ ในการตรวจจับว่าหมวกอยู่บนหัวของผมหรือไม่ ผมใช้ IR Light Sensor ร่วมกับพื้นผิวสีขาวที่ด้านล่างของหมวก (ซึ่งวิธีการนี้ทำให้เกิดปัญหาในภายหลัง) ผมเริ่มสร้างตัวต้นแบบด้วยบอร์ด Arduino UNO แต่หลังจากนั้นก็เปลี่ยนเป็น Arduino Nano ในตอนแรกผมใช้ Battery 9V ซึ่งภายหลังก็ได้อัปเกรดเช่นกัน สำหรับการติดตั้งอุปกรณ์ทั้งหมดบนหัว ผมซื้อหมวกกันน็อกมาแล้วถอดโครงด้านในออกจากตัวพลาสติก (ซึ่งส่วนนั้นกลายเป็นส่วนที่มีประโยชน์มาก)

การโจมตีแบบหมุน (Spinning attack)

ในการโจมตีนี้ หมวกจะเริ่มหมุนรอบตัวเรา จากนั้น Pulley จะคลายเชือกออกเพื่อให้หมวกเคลื่อนห่างออกไป แล้วจึงดึงกลับ และสุดท้าย Motor อีกตัวก็จะหยุดหมุน นี่เป็นฟีเจอร์หลักของกลไกนี้และกลายเป็นส่วนที่ซับซ้อนที่สุดด้วย ปัญหาแรกของผมเกิดขึ้นทันทีที่ผูกหมวกเข้ากับเชือก คือ Motor น่าจะตัวเล็กเกินไปสำหรับงานนี้ มันไม่สามารถหมุนหมวกจริงหรือแม้แต่หมวกกระดาษได้ ผมจึงเพิ่ม Battery (AA, 1.2V) อีก 2 ก้อน ซึ่งครั้งนี้เป็นการรีดประสิทธิภาพจนเกือบถึงขีดจำกัด 6V ของ Motor เลยทีเดียว ผมยังได้เปลี่ยนจาก Arduino UNO มาเป็น Arduino Nano เพื่อลดน้ำหนักลงนิดหน่อยและเพิ่มพื้นที่สำหรับ Battery ที่เพิ่มเข้ามา หลังจากผ่านการทดสอบอย่างหนัก ในที่สุดมันก็ใช้งานได้ และผมก็เริ่มทำฟีเจอร์ถัดไป

การโจมตีแบบปกติ (Normal attack)

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

โปรแกรมในขั้นตอนสุดท้าย (The final program)

เพื่อให้โปรเจกต์นี้เสร็จสมบูรณ์ ผมได้เขียน Code ลำดับการทำงานให้ท่าโจมตีทั้งสองแบบถูกสั่งงานด้วย IR Light Sensor (เป็น State Machine แบบ 4 สถานะอย่างง่าย) โดยลำดับขั้นตอนเป็นดังนี้:

  • คลายเชือก Pulley
  • รอจนกว่าคุณจะสวมหมวกไว้บนหัว
  • รอจนกว่าคุณจะถอดหมวกออก
  • ทำการโจมตีแบบ Normal Attack
  • รอจนกว่าคุณจะสวมหมวกไว้บนหัว
  • รอจนกว่าคุณจะถอดหมวกออก
  • ทำการโจมตีแบบ Spinning Attack
  • เริ่มต้นใหม่อีกครั้ง

มีปัญหาอย่างหนึ่งเกี่ยวกับ Sensor คือมันตรวจจับค่าได้ต่างกันขึ้นอยู่กับระดับแสงในสภาพแวดล้อม ดังนั้น Code และส่วนล่างของหมวกจึงต้องมีการปรับเปลี่ยนตามสถานที่ว่าใช้งานในร่มหรือกลางแจ้ง ผมยังไม่ได้แก้ปัญหานี้เพราะถึงจุดนี้ผมแค่อยากจะทำให้มันเสร็จครับ

หวังว่าคุณจะพบว่าโปรเจกต์นี้น่าสนใจ ขอบคุณที่อ่านครับ

Code

🔒 ปลดล็อก Code

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

รหัสอ้างอิงโปรเจกต์: super-mario-odyssey-irl-598fc1
699 บาท
PromptPay QR Code

ประเมิน Project

อยากได้งานคล้ายโปรเจคนี้? กดไปหน้าประเมินราคา

เอาฟอร์มยาวออกจากท้ายหน้า Project แล้ว เหลือเป็นปุ่มให้กดไปกรอกหน้าเดียว ตัวใหญ่ เว้นบรรทัดเยอะ อ่านง่ายกว่า

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...