- Kilopixel เป็นจอพิกเซลไม้ขนาดใหญ่ที่พัฒนามาเป็นเวลา 6 ปี และเป็นระบบที่ใครก็สามารถวาดภาพผ่านอินเทอร์เน็ตได้ด้วย พิกเซลไม้จำนวน 1,000 ตัว
- โครงการนี้ถูกทำให้สมบูรณ์ผ่านการออกแบบต้นแบบทางกายภาพหลากหลาย การทดสอบวัสดุ และการทดลองเปลี่ยนรูปทรงพิกเซลหลายรอบ
- ใช้ CNC machine, Raspberry Pi, เว็บแอป, เซนเซอร์ ฯลฯ ในการเชื่อมต่อโลกออนไลน์และออฟไลน์ผ่านโครงสร้างที่เป็นเอกลักษณ์
- ผู้ใช้สามารถมีส่วนร่วมได้ผ่านการส่งภาพโดยตรงบนเว็บไซต์หรือการโหวต และยังมีระบบสตรีมแบบเรียลไทม์และวิดีโอไทม์แล็ปส์
- โครงการนี้เป็นโปรเจกต์ที่เปิดกว้างและสร้างสรรค์ พร้อมสำรวจการโอนสิทธิ์การควบคุมจอให้ผู้อื่นในอนาคต รวมถึงแนวทางการใช้งานที่หลากหลาย
ภาพรวมโครงการ
- Kilopixel เป็นจอพิกเซลไม้ 1,000 ตัวที่ไม่มีประสิทธิภาพที่สุดในโลก ที่พัฒนามาเป็นเวลา 6 ปี
- ออกแบบเป็น ระบบเชิงโต้ตอบ ที่ให้ใครก็ได้วาดภาพลงบนหน้าจอนี้ผ่านเว็บไซต์ kilopx.com
- โครงการเป็นผลลัพธ์ที่รวมเอาองค์ประกอบ IT และเมกเกอร์หลายด้าน ไม่ว่าจะเป็นเว็บแอป, ตัวควบคุมทางกายภาพ, การกลึง CNC, การสร้าง G-code, การทำแบบจำลองและพิมพ์ 3D
จุดเริ่มต้นของแนวคิดและแรงบันดาลใจ
- ได้แรงบันดาลใจจาก ผลงานกระจกเงาแนวทดลอง ของ Danny Rozin และตัวเล่นวิดีโอ eInk แบบความเร็วต่ำมาก
- ต่างจากจอความละเอียดสูงในปัจจุบัน โครงการนี้เลือกใช้วิธีที่ช้ามากและไม่ค่อยมีประสิทธิภาพ โดยเปลี่ยนพิกเซลได้เพียง 10 ครั้งต่อนาที
- ใช้กริดขนาด 40×25 เพื่อแสดงผล 1,000 พิกเซลอย่างแม่นยำ และตั้งชื่อโดเมนเป็น
kilopx.com เพราะจำง่าย
การผลิตต้นแบบแรก (21×3 พิกเซล)
- เริ่มจากใช้โครงไม้เป็นหลัก ก่อนเปลี่ยนมาใช้ชิ้นส่วนอะลูมิเนียมของ Openbuilds kit ทันที ซึ่งมีโครงสร้างคล้ายเครื่องพิมพ์ 3D
- ทดลองประกอบระบบอัตโนมัติพื้นฐานด้วย Raspberry Pi, ตัวควบคุม CNC และสเต็ปเปอร์มอเตอร์เพื่อทดลองใช้งาน
- พบข้อจำกัดและปัญหาทางเทคนิคหลายด้านในกลไกการเลือกและควบคุมพิกเซล
ความยากในการหาพิกเซลที่เหมาะสม
- ทดลองวัสดุทรงกลมหลายแบบ เช่น ลูกปิงปอง, สไตรีโอโฟม, ลูกไม้
- เผชิญปัญหาปฏิบัติจริงด้าน ต้นทุน, น้ำหนัก, ความยากในการหาแหล่งซื้อ และความไม่สม่ำเสมอของขนาด
- ตัวอย่าง: หากใช้ลูกบอลราคาประมาณ 50 เซนต์ จำนวน 1,000 ลูก จะมีต้นทุนราว 500 ดอลลาร์สหรัฐ
- ลูกปิงปองจะเสียรูปง่ายเมื่อเจาะรู และล้มเหลวจากความผันแปรของขนาด
- นี๊อฟบอล, บอลเด้ง, ลูกไม้, สไตรีโอโฟม ฯลฯ ก็ตัดสินว่าไม่เหมาะสมเช่นกัน เพราะปัญหาเจาะรู การลงสี ความทนทาน และน้ำหนัก
การทดลองกลไกการหมุนพิกเซล
- พยายามหมุนพิกเซลโดยใช้ ล้อเลโก้, มอเตอร์ และเซนเซอร์ ร่วมกัน
- ทดสอบการทำงานด้วยโซลินอยด์, เซอร์โวมอเตอร์ และกลไกอื่นๆ หลายแบบ แต่ทุกอย่างถูกยกเลิกเพราะควบคุมความสัมพันธ์ที่ต้องละเอียดได้ยาก
เปลี่ยนจากพิกเซลทรงกลมไปเป็นพิกเซลทรงลูกบาศก์
- หลังการพูดคุยผ่านพอดแคสต์ จึงเปลี่ยนไปใช้ พิกเซลไม้ทรงลูกบาศก์ และเริ่มผลิตเอง
- การผลิตแบบ mass production ใช้เวลามากพอสมควร แต่ผลลัพธ์ด้านภาพและการเคลื่อนไหวสุดท้ายให้ความพึงพอใจ
การสร้างกริดพิกเซล
- แทนการออกแบบพิกเซลเองโดยตรง เลือกออกแบบ โครงกริดคงที่ เพื่อให้การจัดเรียง 40×25 ถูกต้อง
- เจาะชิ้นไม้แผ่นบาง 25 ชิ้น ให้มีรู 40 รู แล้วร้อยพิกเซลผ่านลวดโลหะเพื่อคงระยะห่างสม่ำเสมอ
- ออกแบบให้แต่ละพิกเซลทำงาน อย่างอิสระสมบูรณ์ โดยไม่ถูกกระทบจากพิกเซลรอบข้าง
CNC และระบบควบคุม
- มีคำอธิบายพื้นฐานเกี่ยวกับ หลักการ CNC และการใช้ G-code
- ใช้ Raspberry Pi และตัวควบคุม CNC, สคริปต์ Python, เซนเซอร์แสง, ไลบรารี pigpio ฯลฯ
- เชื่อมต่อกับเว็บ API เพื่อเลือกพิกเซลต่อไปที่ต้องเปลี่ยน ควบคุมด้วย G-code ตรวจผลลัพธ์ด้วยเซนเซอร์ แล้วส่งกลับมายัง API เป็น feedback loop
กลไกการจัดการพิกเซล (pixel poking)
- พิกเซลมีร่องรับเฉพาะทุก 90° และหมุนโดยดันขอบด้วยแท่งยืดหยุ่น (glue stick)
- การเคลื่อนไหวทั้งหมดถูกทำให้อัตโนมัติโดย G-code
โหมดการแสดงผลภาพและเว็บอินเทอร์เฟซ
- API ถูกควบคุมผ่านเว็บแอป และมี 3 โหมดในการแสดงผลจอ
- ส่งโดยผู้ใช้: ใครก็ได้สามารถส่งภาพขนาด 40×25 และโหวตได้ และระบบจะแสดงผลงานตามลำดับความนิยม
- ร่วมมือแบบเรียลไทม์: ผู้ร่วมสามารถเปลี่ยนพิกเซลแบบสด แต่ถ้าจำนวนผู้ร่วมงานมากเกินไปอาจไม่เหมาะสม
- โหมดพัก (Idle): แสดงผลตามอัลกอริทึม เช่น นาฬิกา รูปร่างต่างๆ
- สแตกเว็บแอปพัฒนาจาก Node/Socket.IO และ Laravel+Livewire สุดท้ายกลายเป็น Laravel+InertiaJS+VueJS
สตรีมมิ่งแบบเรียลไทม์และไทม์แล็ปส์
- ใช้เว็บแคม 2 ตัว (โหมดใกล้และโหมดกว้าง) ร่วมกับ OBS และ ffmpeg เพื่อสตรีมจอแบบเรียลไทม์ลง YouTube
- รองรับการตรวจสอบสถานะ API และการสร้าง/เผยแพร่วิดีโอไทม์แล็ปส์ของผลงานที่เสร็จสมบูรณ์
ความปลอดภัยและการดำเนินงานของระบบแบบเปิด
- สร้างการตรวจสอบขั้นต่ำเพื่อป้องกันการใช้งานผิดวัตถุประสงค์ และมีระบบลบงานอย่างรวดเร็วเมื่อจำเป็น
- ยังคงโครงสร้างการมีส่วนร่วมที่เปิดกว้างเป็นหลัก โดยใช้การล็อกอินผ่าน Bluesky OAuth เป็นต้น
แผนอนาคต
- คาดหวังการมีส่วนร่วมหลากหลายจากผู้ใช้ และหลังจากนี้จะพิจารณาโอนสิทธิ์ควบคุมผ่าน API ให้ผู้ใช้รายอื่น
- โดยสุดท้ายมองว่าจะนำไปใช้เป็นพื้นหลังเว็บแคมของตัวเอง หรือใช้งานในพื้นที่ต่างๆ เช่น สำนักงาน, คาเฟ่
- ใครก็สามารถเข้าร่วมแบบเรียลไทม์และเข้าชมผ่านเว็บไซต์ได้
บทสรุป
- Kilopixel เป็นโครงการเฉพาะตัวที่ผสานความโต้ตอบบนอินเทอร์เน็ตเข้ากับความเป็นกายภาพของโลกออฟไลน์ได้อย่างสร้างสรรค์
- กระบวนการสร้างที่ผ่านการลองผิดลองถูกและความพยายามทางเทคนิคมากมาย เป็นกรณีที่น่าสนใจและอาจสร้างแรงบันดาลใจแก่ผู้เชี่ยวชาญทำเอง (เมกเกอร์) และนักพัฒนา
ยังไม่มีความคิดเห็น