ชุบชีวิตลูกแก้วทำนายฝัน! สร้าง Magic 8-Ball อัจฉริยะด้วย Raspberry Pi

Magic 8 Ball toy

จากของเล่นเก่า สู่โปรเจกต์ DIY สุดคูล

โปรเจกต์นี้เริ่มต้นมาจากความอยากรู้อยากเห็นส่วนตัวครับ ผมอยากลองเอาหน้าจอกลมๆ ขนาด 1.25 นิ้ว มาใช้งานร่วมกับบอร์ดตระกูล Raspberry Pi Pico ดูสักครั้ง แล้วไอเดียก็มาบรรจบกับของเล่นสุดคลาสสิกอย่างลูกแก้วทำนายฝัน (Magic 8-Ball)

การเพิ่มเซ็นเซอร์วัดความเร่งและองศาการเอียง (Accelerometer) เข้าไป ทำให้ตัวอุปกรณ์สามารถรับรู้ทิศทางของตัวเองได้ มันรู้ได้ว่าเรากำลังเขย่า หมุน หรือวางทิ้งไว้นิ่งๆ ข้อมูลตรงนี้ช่วยให้เราเขียนโค้ดจำลอง "การลอยตัว" ของลูกเต๋า 20 หน้าในน้ำได้อย่างสมจริงสุดๆ ภาพลูกเต๋าที่โชว์บนหน้าจอกลมนั้น พอเอาไปใส่ในช่องหน้าต่างของของเล่น 8-Ball มันช่างลงตัวพอดีเป๊ะเลยล่ะครับ!

ตัวอุปกรณ์ยังฉลาดพอที่จะเช็คแรงดันแบตเตอรี่ได้ด้วย ถ้าแบตเริ่มอ่อน สีของสามเหลี่ยมบนจอจะเปลี่ยนจากสีฟ้าเป็นสีแดงเพื่อเตือนเรา

View more (ดูรูปภาพการแสดงผลและภาพเคลื่อนไหวเพิ่มเติม)
8-Ball Display 1 8-Ball Display 2 8-Ball Idle Screen

วิธีใช้งาน: ตัวเครื่องจะรอให้เราคว่ำหน้ามันลงแล้วเขย่า พอหงายหน้าขึ้นมา มันก็จะสุ่มคำทำนายโผล่ขึ้นมาบนลูกเต๋า (จากลิสต์ที่เราเขียนฝังไว้ในโค้ด) และถ้าเราวางทิ้งไว้ไม่ได้ใช้งาน เครื่องก็จะเข้าสู่โหมดหลับ (Sleep) เพื่อประหยัดแบตเตอรี่ครับ

อุปกรณ์ฮาร์ดแวร์ที่ต้องใช้ (Hardware)

ชิ้นส่วนสำหรับโปรเจกต์นี้มีไม่เยอะครับ ประกอบด้วย:

  • บอร์ดไมโครคอนโทรลเลอร์ RP2350 board
  • หน้าจอ 1.28 inch LCD module
  • เซ็นเซอร์วัดการเคลื่อนไหว MPU-9250 accel and gyro module
  • บอร์ดชาร์จแบตเตอรี่ Li-ion battery charger board TP4056
  • แบตเตอรี่ Li-ion

💡 ทริคเพิ่มเติม: หากคุณกำลังมองหาแหล่งซื้อชิ้นส่วนอิเล็กทรอนิกส์ บอร์ดพัฒนา หรืออยากสั่งพิมพ์ชิ้นส่วน 3D Printing ในไทยเพื่อทำเคสเจ๋งๆ สามารถเข้าไปดูและสั่งซื้อได้ที่ https://openlink.co/globalbyte เลยครับ!

Hardware Components

แผนผังการต่อสายไฟ (Wiring)

ด้านล่างนี้คือไดอะแกรมการต่อสายไฟระหว่างชิ้นส่วนต่างๆ ครับ ดูแล้วต่อตามได้ไม่ยากเลย

Wiring Diagram

การชำแหละเคสลูกแก้ว (Case)

ของเล่น Magic 8-Ball ตัวนี้ น้ำสีน้ำเงินข้างในมันถูกเจาะทิ้งไปนานแล้วครับ ผมเลยจัดการแยกชิ้นส่วนมันออกมา แล้วเอาของเหลวและกลไกข้างในออกให้หมด จนเหลือแค่เปลือกพลาสติกด้านนอกเอาไว้สำหรับใส่หน้าจอและบอร์ดของเรา

Disassembled Case 1
View more (ดูรูปการชำแหละเคสเพิ่มเติม)
Disassembled Case 2

ระบบเฟิร์มแวร์และการพัฒนา (Firmware & Development)

เฟิร์มแวร์ของโปรเจกต์นี้ถูกออกแบบมาให้ดึงประสิทธิภาพจากคอร์ (Cores) ของชิป Pico ทั้ง 2 คอร์เลยครับ: คอร์แรกเอาไว้ประมวลผลข้อมูลจากเซ็นเซอร์ความเร่ง ส่วนอีกคอร์เอาไว้วาดกราฟิกแอนิเมชันลูกเต๋าลอยน้ำ โค้ดชุดนี้พัฒนาขึ้นมาสำหรับแพลตฟอร์ม RP2040 ตอนแรก ดังนั้นถ้าคุณเอาไปรันบนชิป RP2350 รุ่นใหม่ อาจจะต้องมีการปรับจูนโค้ดนิดหน่อยเพื่อให้ทำงานได้ลื่นไหลที่สุดครับ

เครื่องมือที่ใช้พัฒนา: ผมใช้โปรแกรม Visual Studio Code คู่กับส่วนเสริม Pico extension ในการเขียนโค้ด และใช้ Raspberry Pi Debug Probe เป็นตัวตรวจสอบและแก้บั๊ก (Debugger)

สำหรับใครที่ประกอบฮาร์ดแวร์เสร็จแล้วและอยากเทสระบบไวๆ สามารถดาวน์โหลดไฟล์ UF2 file ไปก๊อปปี้ลงบอร์ดเพื่อทดสอบการทำงานได้เลยครับ

ไอเดียและบทความที่เกี่ยวข้อง (Related Ideas)

ถ้าคุณชอบโปรเจกต์ดัดแปลง Magic 8-Ball หรืออยากศึกษาเพิ่มเติมเกี่ยวกับการจัดการพลังงานในบอร์ดพัฒนา นี่คือบทความน่าสนใจที่คุณไม่ควรพลาดครับ:

อัปเดตเทรนด์ฮาร์ดแวร์และโปรเจกต์ DIY สุดครีเอท!

อยากลองดัดแปลงของเล่นเก่าให้กลายเป็น Gadget เจ๋งๆ หรือกำลังมองหาบอร์ดและเซ็นเซอร์ไปประกอบร่างอยู่ใช่ไหม? แวะมาพูดคุยและหาอุปกรณ์กับเราได้เลย!

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา โปรดอ้างอิงการต่อวงจรอย่างละเอียดจากต้นฉบับ
อ้างอิงจาก (References):
  • บทความสรุปและเรียบเรียงโดย: Globalbyteshop Blog
  • บทความต้นฉบับ (GitHub): pico_8ball by lds133

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี