ถ้าน้องมีลูก หรือมีน้องเล็กๆ อยู่บ้าน น้องคงเจอปัญหาเดียวกันกับพี่แน่ๆ เลย คือซื้อเลโก้เซ็ตให้เค้าเล่น พอเล่นไปซักพัก เซ็ตสวยๆ ก็กลายเป็นกองอิฐเลโก้กองเดียวไปซะงั้น พอน้องเค้าโตขึ้น ก็ไม่รู้จะเอากองอิฐพวกนี้ไปทำอะไรดี
ทีมเราก็เลยตัดสินใจรีไซเคิลเลโก้ที่ไม่ได้ใช้แล้ว มาทำเป็นเกมตู้อาเขตกัน! งานนี้จัดไปวัยรุ่น
คู่มือทีละขั้นตอนนี้ เป็นผลงานจากหลายเดือนของการทดลอง เพื่อให้เกมมันทำซ้ำได้ง่าย และต้นทุนต่ำมากๆ ใครๆ ก็ทำตามได้! โค้ดเขียนมาให้ไม่มี dependency อะไรให้วุ่นวาย และคอมไพล์ลงบอร์ด Arduino ไหนก็ได้ แน่นอนว่าเกมผ่านการทดสอบโดยผู้เชี่ยวชาญตัวน้อย (ลูกๆ ของพวกเรา) มาแล้ว :-)
แล้วเกมนี้มันต่างจากเกม Arduino อื่นๆ ที่เคยมีคนทำยังไงล่ะ?
อย่างแรกเลย มันมีเกมส์อยู่ข้างในตั้ง 5 เกม:
- เกมความจำ (แบบ Simon-Says คล้ายๆ เกม Touch Me)
- เกมวัดรีแอคชั่น (คล้ายๆ เกมตีตุ่น Whack-a-Mole)
- เกมแข่งกัน (สำหรับ 2-4 ผู้เล่น)
- เกมเมโลดี้ (โหมดกดเล่นอิสระสำหรับเด็กเล็ก)
- เกมสงคราม (สำหรับผู้ใหญ่ 2-4 คน)
อย่างที่สอง มันดีไซน์เท่ห์มาก (ในมุมของพวกเรานะ) และทำซ้ำได้ง่าย
อย่างที่สาม มันเป็นมิตรกับโลก เพราะช่วยให้น้องรีไซเคิลพลาสติกได้
ท้ายคู่มือนี้มีวิดีโอสอนทีละขั้นตอนด้วย ถ้าน้องชอบดูวิดีโอมากกว่า
ขั้นตอนที่ 1: รายการชิ้นส่วน
ถ้าน้องชอบโปรเจคนี้แต่ไม่มีเลโก้กองโต ให้ไปซื้อเลโก้ชุด Classic 10704 ที่มี 900 ชิ้นข้างในมาเลย ง่ายสุด
นี่คือรายการของที่ต้องใช้:
- เลโก้ที่ไม่ได้ใช้แล้ว 1 กิโล (หรืออิฐบล็อคยี่ห้ออื่นเช่น Mega Bloks)
- แผ่นฐานเลโก้ขนาด 25 x 25 ซม. (หรือยี่ห้ออื่น) แผ่นฐานเลโก้มาตรฐานจะมีจุด 32 x 32 จุด ถ้าไม่มี ให้หาซื้อออนไลน์ได้ในราคาประมาณ 3$ รวมส่ง
- แผ่นอะคริลิคใสหนา 5 หรือ 6 มม. ขนาด 30 x 30 ซม.
- ปุ่มอาเขตขนาดใหญ่ 60 มม. 4 ปุ่ม (แนะนำสีแดง, เขียว, น้ำเงิน, เหลือง) ชิ้นส่วนที่แพงที่สุดของโปรเจคนี้ ราคาประมาณ 2$ ต่อปุ่ม
- ปุ่มกดแบบ Momentary ขนาด 16 มม. 2 ปุ่ม (แนะนำสีขาวกับดำ)
- สวิตช์ร็อคเกอร์เปิด-ปิด ขนาดติดตั้ง 27x21 มม. (แนะนำแบบใสสีแดงมี 4 ขา)
- Arduino Nano
- จอ LCD 1602 และโมดูลเชื่อมต่อ I2C
- ลำโพง 4 โอห์ม 5 วัตต์ ขนาด 30 x 70 มม. 2 ตัว (ใช้ตัวอื่นได้ แต่แบบ CAD วาดไว้สำหรับขนาดนี้)
- บอร์ดทดลองวงจรขนาด 8 x 6 ซม. หรือ Breadboard 830 จุด
- แบตเตอรี่ 18650 แบบชาร์จไฟได้ 2 ก้อน (เอามาจากแบตล็อปท็อปเก่าได้)
- ตัวถือแบตเตอรี่ 18650 แบบคู่
- บอร์ดชาร์จและป้องกันการคายประจุ TP4056
- Converter แบบ Step-up 5V (ขนาดเล็ก 500mA ก็พอ)
- ของจิ๊บจ๊อย: ลวดสายไฟ, สาย Mini-USB หรือปลั๊ก DIY, ซ็อกเก็ต Micro-USB บน PCB breakout, สลักเกลียว/น็อต/แหวนรอง M3, สกรูยึดฝาด้านบน 4 ตัว
- ตัวต้านทาน (Resistor): 100 โอห์ม 6 ตัว, 1k 1 ตัว, 10k 3 ตัว
ขั้นตอนที่ 2: ต่อกล่อง
นี่คือส่วนที่ง่ายที่สุดของโปรเจค โยนให้น้องเล็กที่บ้านทำได้เลย สู้งานนะน้อง
เอาแผ่นฐานเลโก้ 32x32 จุดมา แล้วต่อผนังด้วยเลโก้รีไซเคิล ควรได้สูงประมาณ 9 ชั้น พวกเราเลือกสีเทาอ่อนเป็นฐาน จะได้ให้ผนังอิฐสีสันสดใสเป็นจุดเด่น
ไม่มีกล่องไหนจะเหมือนกันแน่ ใช้ความคิดสร้างสรรค์เวลาต่อชั้น รีไซเคิลแม้แต่ชิ้นส่วนเล็กๆ มันดูคูลดี ชิ้นส่วนรูปร่างประหลาดๆ ก็ดูดีเหมือนกัน ใส่หน้าต่าง กระจกหน้ารถจากชุดรถ ประตู กล่อง ลงไปด้วย
กล่องต้องมีประตูเลโก้เต็มบานอย่างน้อย 1 บาน ไว้ติดตั้งสวิตช์ร็อคเกอร์บนผนัง
ขั้นตอนที่ 3: ทำฝาด้านบน
ฝาด้านบนทำจากแผ่นอะคริลิคใส (Plexiglas) หนา 5 หรือ 6 มม. ดาวน์โหลดแบบ CAD ลง USB แล้วไปที่ร้าน CNC ใกล้บ้าน เค้าจะกัดให้เอง แบบ CAD ยังรวมแผ่นยึดสวิตช์ร็อคเกอร์ไว้ด้วย (ดูรูป)
น้องต้องตกแต่งแผ่นฝาบนนิดหน่อย ขัดมุมเอียงด้วยกระดาษทรายกับบล็อกไม้ แล้วก็เจาะรูสำหรับติดลำโพงและจอ LCD 1602 จอ LCD 1602 ยังต้องมีร่องสามเหลี่ยมเล็กๆ เจาะที่ด้านข้างของช่องจอในแผ่นอะคริลิคด้วย (ดูรูป) พี่ทำโดยใช้เครื่องมือแบบโรตารี่ (Dremel) และหัวกัดเล็กๆ เจาะให้ลึกครึ่งแผ่น
ขั้นตอนที่ 4: ติดตั้งชิ้นส่วนทั้งหมดบนฝา
ติดตั้งปุ่มอาเขตใหญ่ 4 ปุ่ม, ปุ่มเปลี่ยน/เลือกเกม 2 ปุ่ม, ลำโพง 2 ตัว และโมดูล LCD 1602+I2C ทุกอย่างยึดด้วยสลักเกลียว M3 + แหวนรองและน็อต M3 ด้านหลัง
ก่อนติดตั้งปุ่มอาเขต ให้ถอดตัวยึดไฟ LED ออกก่อน น้องต้องดัดแปลงมันนิดหน่อย ดูขั้นตอนต่อไป
ขั้นตอนที่ 5: ดัดแปลงไฟ LED ในปุ่มอาเขต
ปุ่มอาเขตพวกนี้ออกแบบมาสำหรับไฟ 12V มันจะทำงานกับ 5V ซึ่งเป็นแรงดันมาตรฐานของโปรเจคนี้ได้ แต่แสงจะมัวเกินไป พี่เลยถอดซ็อกเก็ต LED ออกจากปุ่มอาเขต ดันตัวยึด LED ออกมา แล้วถอด LED กับตัวต้านทานออก ตัวต้านทาน 460 โอห์มต้องถูกถอนออกและแทนที่ด้วยตัว 100 โอห์ม พอเสร็จแล้วก็ประกอบทุกอย่างกลับเข้าไป แล้วติดตั้ง LED พร้อมตัวยึดกลับเข้าไปในปุ่ม
ขั้นตอนที่ 6: (ไม่บังคับ) ป้ายกำกับปุ่มควบคุม
น้องอาจสังเกตเห็นป้ายบนปุ่มควบคุม 2 ปุ่ม เวอร์ชั่นแรกของพวกเราไม่มีป้ายนะ แต่พี่ตัดสินใจเพิ่มตอนทำครั้งที่สอง
ปุ่มทั้งสองมีหลายฟังก์ชั่น ขึ้นอยู่กับสถานะของเกม ปุ่มสีขาวใช้เริ่มเกมที่เลือก หรือยืนยันการเลือกในบางเกม ปุ่มสีดำใช้เปลี่ยนเกมที่เลือก หรือออกจากเกม

การทำป้ายกลมๆ ต้องใช้แผ่นอลูมิเนียมบางๆ (หนาสุด 1 มม.), สว่านหัว Hole-saw, สว่านหัวขั้นบันได (Stepped drill bit) และตัวตอกตัวอักษร (ดูรูป) เริ่มต้นโดยตัดวงกลมด้วย Hole-saw จากนั้นขยายเส้นผ่านศูนย์กลางด้านในด้วยสว่านหัวขั้นบันได แล้วใช้ตัวตอกตัวอักษรสร้างป้าย เพื่อให้ตัวอักษรเห็นชัดขึ้น ให้ใช้ปากกาเมจิกสีดำทับ
ขั้นตอนที่ 7: ทำ Breakout Board
น้องมีสองทางเลือก ใช้ Breadboard แล้วเดินสาย Arduino ผ่าน Breadboard หรือติดตั้ง Breakout เล็กๆ ไว้ด้านหลังแผง LCD

สำหรับการทำครั้งแรก เราใช้ Breadboard (ดูรูป) สำหรับครั้งที่สอง เราตัดสินใจใช้เวลามากขึ้นเพื่อสร้าง Breakout board ฟังก์ชั่นการทำงานไม่เปลี่ยน แต่สายไฟน้อยลง และ Breakout ถูกซ่อนไว้ใต้แผง LCD
ถ้าน้องเลือกทำ Breakout board ให้เอา Prototype board ขนาด 8x6 ซม. มาตัดตามรูป ส่วนใหญ่จะใช้ทำ Breakout ส่วนเล็กใช้ทำแหล่งจ่ายไฟ

บัดกรี Arduino Nano ลงบน Proto board นี้
ขั้นตอนที่ 8: ต่อสายเชื่อมโยงวงจร

เตรียมสายไฟและเดินสายเซ็ตอัพ, สวิตช์ และการเชื่อมต่อต่างๆ ไปยัง Nano ตามแผนภาพ

ตั้งแต่พี่เริ่มใช้สายคู่บิดเกลียว Ethernet ก็ลืมเรื่องปวดหัวหาสายไฟสำหรับโปรเจคไปเลย มันมีหลายสีและเป็นสายหลายแกน (Multicore) เลยไม่ขาดง่าย สิ่งเดียวที่ต้องระวังเวลาทำงานกับมันคือ การบัดกรีต้องเร็วมากๆ จะได้ไม่ไหม้ฉนวน

สังเกตการต่อตัวต้านทาน 100 โอห์มสำหรับสายไปยังลำโพง
หมายเหตุเล็กน้อยเกี่ยวกับการต่อสาย:
- ปุ่มควบคุมสีดำ/ขาว ต่อจากขา D2/3 ลง Ground โดยตรง เพราะใช้ Internal Pull-up resistors ใน Nano
- A4/5 ต่อกับขา I2C SDA/SCL จำเป็นสำหรับโมดูล LCD I2C
- ลำโพงต้องต่อกับ D10/11 เพราะขาเหล่านี้รองรับ PWM
- แนะนำให้เพิ่มเส้นทองแดงเล็กๆ เป็นราง Ground เพื่อให้ต่อสาย Ground ทั้งหมด (จะมีประมาณ 5 เส้น) ได้ง่ายขึ้น

ขั้นตอนที่ 9: ต่อสายปุ่มกด

ปุ่มอาเขตทั้งหมดต่อกับขา A1 ขาเดียวผ่านตัวต้านทานหลายตัว A1 ถูกตั้งค่าเป็น Internal Analog Pull-up นี่คือหนึ่งในฟีเจอร์ลับๆ ของ Arduino ที่ช่วยให้เราประหยัดจำนวนสายไฟที่ต้องเดินไปยังปุ่มกด
การเซ็ตอัพเป็นดังนี้: จาก A1 ไปปุ่มแรกผ่านตัวต้านทาน 1k จากปุ่ม1 ไปปุ่ม2 ผ่าน 10k จากปุ่ม2 ไปปุ่ม3 ผ่าน 10k และจากปุ่ม3 ไปปุ่ม4 ผ่าน 10k แต่ละปุ่มในสถานะ "ปิด" จะชอร์ตลง Ground เนื่องจากมี