IoT Busy Board
เนื่องในโอกาสวันเกิดของหลานชายที่กำลังจะมาถึง ผมได้พบแผงควบคุมเก่าๆ นี้ จึงตัดสินใจนำมาสร้างเป็น busy board ให้เขา:

หลักการทำงาน
บอร์ด Arduino จำเป็นต้องมีช่องเชื่อมต่อแบตเตอรี่และ WiFi เพื่อให้สามารถปิดเสียงผ่าน Arduino IoT Cloud Remote App ได้ ด้วยเหตุนี้ ผมจึงตัดสินใจใช้ Arduino MKR WiFi 1010 เนื่องจากผมมีเวลาไม่มากในการวิเคราะห์เลย์เอาต์ของ PCB เก่า ผมจึงตัดร่องรอยวงจรที่เชื่อมต่อกับปุ่มกด, switches และ LEDs เพื่อป้องกันพฤติกรรมที่ไม่คาดคิด จากนั้นผมจึงบัดกรีสายไฟ, สาย ground และสาย I/O จากส่วนประกอบต่างๆ เข้ากับ MKR proto shield ในการชาร์จแบตเตอรี่และเชื่อมต่อกับบอร์ดทางกายภาพ จะใช้สาย USB เสียบเข้ากับ Arduino และนำสายออกนอกกล่องหุ้ม

อินพุตอนาล็อกของแกน x- และ y- ของจอยสติก รวมถึง potentiometers 1 และ 3 ใช้ควบคุม buzzers ทั้งสองตัว (ระยะเวลาของเสียง/การหยุด และความถี่)
Switches 1 และ 3 ใช้เลือกให้ LEDs 1 และ 3 หรี่แสงหรือกะพริบ ทั้งสองฟังก์ชัน (ความสว่างสำหรับการหรี่ และช่วงเวลาสำหรับการกะพริบ) ถูกควบคุมด้วย potentiometers 2 และ 4
Switches 2 และ 4 ใช้สำหรับเปิดและปิด LEDs 2 และ 4 เท่านั้น Potentiometer 5 ควบคุมเกจ และปุ่ม emergency stop จะ reset Arduino เมื่อถูกกด

ลูกเล่นเล็กน้อย
ทำไมต้องจำกัดความคิดสร้างสรรค์ด้วยการให้ inputs นำไปสู่ outputs เดิมๆ เสมอไป? การเปิดใช้งาน random mode บน IoT Remote App จะทำการกำหนด inputs (switches, potentiometers) ใหม่ให้กับ outputs (LEDs, buzzers, gauge) โดยใช้ random function และด้วยเหตุนี้จึงเป็นการทำลายการกำหนดแบบตายตัวเดิม
ข้อเท็จจริงสำหรับสายเนิร์ด:
ใน tone() reference ระบุว่า "สามารถสร้างเสียงได้เพียงครั้งละหนึ่งเสียงเท่านั้น" ซึ่งเป็นความจริงแน่นอน อย่างไรก็ตาม buzzers สองตัวสามารถส่งเสียงบี๊บ สลับกันไปมา และเกือบจะฟังดูเหมือนกับว่าพวกมันส่งเสียงบี๊บพร้อมกัน
สิ่งที่ได้เรียนรู้:
ผมจะเปลี่ยนอะไรบ้างหากทำมันอีกครั้ง?
- Li-Po battery มีขนาดเล็กเกินไปมาก (เดิมตั้งใจจะใช้กับโปรเจกต์อื่น) ในคู่มือการจ่ายไฟให้กับ MKR WiFi 1010 ด้วยแบตเตอรี่, แนะนำให้ใช้ขนาดอย่างน้อย 1024 mAh
- เมื่อประกอบฝาด้านล่างของเคสแล้ว buzzers ก็ไม่ดังเท่าตอนที่เปิดโล่ง ที่จริงแล้วมันค่อนข้างเงียบเลยทีเดียว ครั้งหน้าผมจะใช้ buzzers ที่เสียงดังขึ้น หรืออาจใช้ speakers ไปเลย
- ปุ่ม emergency stop ("Not Aus") ถูกต่อสายเข้ากับ reset pin ของ Arduino น่าเสียดายที่ปุ่มสีแดงขนาดใหญ่ที่กดได้นี้ดึงดูดความสนใจได้มาก ซึ่งทำให้ฟังก์ชันอื่นๆ ถูกปิดไปบางครั้ง การเปลี่ยนฟังก์ชันนี้ในซอฟต์แวร์จะง่ายกว่าการบัดกรีมาก
- การเดินสายไฟค่อนข้างยุ่งเหยิง การใช้บางส่วนของ traces ใน PCB ทั่วไปน่าจะทำให้ดูเรียบร้อยขึ้น
รายละเอียดทางเทคนิคเพิ่มเติม
ศูนย์กลางการเรียนรู้เชิงโต้ตอบ
IoT Busy Board เป็นเครื่องมือการเรียนรู้แบบสัมผัสที่หลากหลายรูปแบบ ออกแบบมาเพื่อสอนเด็กๆ (และผู้ใหญ่) เกี่ยวกับ hardware interfaces และ cloud connectivity
- การโต้ตอบแบบ Multi-Sensor: มี inputs ที่หลากหลาย ได้แก่ rotary potentiometer, 4x4 matrix keypad, และ toggle switches หลายตัว Arduino จะจับข้อมูล inputs ทางกายภาพเหล่านี้ และสร้างการตอบสนองด้วยภาพหรือเสียงที่สอดคล้องกัน
- การซิงค์กับ Arduino IoT Cloud: ทุกการกระทำทางกายภาพ (เช่น การเปิด toggle switch) จะถูกแมปเข้ากับ "Cloud Variable" ซึ่งช่วยให้ผู้ปกครองหรือครูสามารถดูสถานะของบอร์ดได้แบบ real-time บน dashboard ของสมาร์ทโฟน
Actuators สำหรับการตอบสนอง
- การขับเคลื่อน Multi-Output: บอร์ดนี้จัดการ NeoPixel ring (สำหรับทฤษฎีสี), piezo buzzer (สำหรับดนตรี), และ servo motor ขนาดเล็ก (สำหรับการเคลื่อนไหวทางกายภาพ) ซึ่งมอบแพลตฟอร์มแบบ all-in-one สำหรับการสำรวจ electronics