เรื่องราวการสร้างจอพิกเซลไม้ใน 6 ปี
(benholmen.com)- 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 เป็นโครงการเฉพาะตัวที่ผสานความโต้ตอบบนอินเทอร์เน็ตเข้ากับความเป็นกายภาพของโลกออฟไลน์ได้อย่างสร้างสรรค์
- กระบวนการสร้างที่ผ่านการลองผิดลองถูกและความพยายามทางเทคนิคมากมาย เป็นกรณีที่น่าสนใจและอาจสร้างแรงบันดาลใจแก่ผู้เชี่ยวชาญทำเอง (เมกเกอร์) และนักพัฒนา
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
รู้สึกว่าเป็นโปรเจกต์ที่น่าทึ่งมาก และตอนก่อนหน้านี้ฉันเคยทำจอแบบ 30 พิกเซลด้วยตัวเองมาก่อน ดูโปรเจกต์ PixelWeaver โครงสร้างเป็นแบบกลไก ใช้บัตรเจาะรูและคันโยกแบบเครื่องจักร ทำให้พิกเซลทั้งหมดเปลี่ยนสถานะพร้อมกันในคราวเดียวเลย กระบวนการพัฒนากลไกรู้สึกคุ้นเคยมากจริง ๆ
Mumbo Jumbo เคยทำแนวคิดที่คล้ายกันใน Hermitcraft ด้วยการใช้ trap door ก็ดีมาก โดยตอนนี้มีการปฏิวัติ "buildstone" ที่กำลังเกิดขึ้นเกี่ยวกับการสร้างเอฟเฟกต์ด้วย redstone ให้ดูสวยงาม วิดีโอ Mumbot 2.0 ดูได้ นอกจากนี้ Grian เคยใช้ดีสเพนเซอร์, ฝอยหิมะ และลูกศรยาเพื่อทำน้ำตกที่เคลื่อนไหวได้ วิดีโอ waterfall ของ Grian
โปรเจกต์นี้น่าทึ่งมาก เดินเรื่อง "แมวพูดว่า 'hi'" ไปจนดูจบแล้วเหมือนกัน ช่วง 9 วันล่าสุดแทบไม่มีโพสต์ใหม่บน Bluesky ของ @kilopx.com เลย เลยคิดว่ามีข้อเสนอแนะเล็กน้อยคือหลังจากส่งงานเสร็จ ควรให้ย้าย "ปากกา" ได้มากสุดเพื่อให้ถ่ายภาพผลงานที่เสร็จแล้วได้สวยขึ้น และน่าจะดีถ้าบนไซต์แสดงข้อมูลผู้ใช้ที่กำลังส่งงานอยู่ด้วย และควรแยกแสดงงานที่เสร็จสมบูรณ์ในแกลเลอรีชื่อ "history" ตอนนี้มีลิงก์คงที่แบบ "Timelapse will be available after this is drawn" ให้เฉพาะงานที่กำลังรอเท่านั้น และยังรู้สึกว่าหาส่งผลลัพธ์ที่เสร็จแล้วหรือที่กำลังทำอยู่ได้ไม่ง่าย
อัตรารีเฟรช 370 ไมโครเฮิรตซ์ทำให้แนวคิด "Calm Technology" มีความหมายใหม่ให้มากขึ้นในแบบที่น่าทึ่งมาก คำอธิบาย Calm Technology ในวิกิพีเดีย
หัวข้อนี้น่าทึ่งมากจริง ๆ ถ้าใครเคยอ่านหนังสือ "Calm Technology" ของ Amber Case คงน่าสนใจมากครับ
ส่วนนี่บอกเป็นนัยว่าส่วนเฟรมเรตของกล้องหลักสตรีม YouTube ก็บังเอิญเท่ากันด้วย และอยากให้ OP ปรับจุดนี้ให้ดีขึ้นด้วย
จากประสบการณ์จุดหนึ่งที่ค่อนข้างแพงที่สุดคงเป็นต้นทุนต่อพิกเซล แต่เป็นจอที่น่าหลงใหลที่สุดชิ้นหนึ่งที่เคยเห็น อย่างที่ดีที่สุด มันก็ "ผิดธรรมชาติ" ในความหมายที่ดีมาก
อีกตัวอย่างพิกเซลที่สวยและแพงอีกชุดหนึ่งคือผลงานกระจกของ Danny Rosin ที่ถูกพูดถึงในบทความนี้ วิดีโอที่เกี่ยวข้อง
ข้อดีอีกอย่างคือใช้ไฟฟ้าพลังงานเป็นศูนย์เมื่อไม่เปลี่ยนภาพ
ดูเหมือนว่า Mythbusters ยังคงครองสถิติอยู่นะ วิดีโอการทดสอบที่เกี่ยวข้อง
แท้จริงแล้วไม่อยากคำนวณราคาต่อพิกเซลเลย และพอรวมถึงมูลค่าของเวลาแล้ว ก็ยิ่งไม่อยากคำนวณ จึงไม่คิดต้นทุนสุดท้ายไว้เลย
ความคิดเสริมคือเมื่อหันลูกบาศก์ให้ขอบหันหน้า กล่องหน้าตรงจะไม่ใช่ผิวหน้าแต่เป็นขอบ และถ้าลูกบาศก์แต่ละลูกมีด้านมืด 2 ด้านและด้านสว่าง 2 ด้านที่ติดกัน หนึ่งด้านเห็นได้จาก 45° ซ้าย อีกด้านเห็นได้จาก 45° ขวา เราสามารถตั้งภาพเป็น "พร้อมกัน" สองภาพได้ในคราวเดียว (พิกเซลต่อหนึ่งตัวมี 4 สถานะ)
ถ้าจะยอมสละสีหนึ่งออกไปก็อาจใช้รูปทรงทรงปริซึมสามเหลี่ยมที่ทำให้แต่ละด้านเสมือนเป็นด้านติดกันและสามารถหมุนแยกกันได้ ภาพสเก็ตช์
อาจขยายต่อเป็นจอสีได้โดยทาสีแต่ละด้านเป็น RGBK หรือ CYMK
ในทำนองเดียวกัน คิดว่าถ้าตั้งกล้องทางด้านหน้า ก็อาจเพิ่มจำนวนพิกเซลได้เป็นสองเท่าด้วยฮาร์ดแวร์เดิม
โครงการนี้ทำได้ยอดเยี่ยมมาก แต่ยังคงทำให้ฉันคิดหาวิธีเร่งความเร็วต่าง ๆ (แม้จะรู้ดีว่า ความเร็วไม่ใช่ใจกลางของสิ่งนี้) หากอุปกรณ์หมุนบล็อกทำงานได้โดยไม่ต้องคอยสลับการจัดตำแหน่งแกน x ตลอดเวลา อาจประมวลผลทั้งคอลัมน์ได้เร็วขึ้น และหากโครงสร้างไม่จำเป็นต้องจัดตำแหน่งแกน y ก็อาจจัดการเป็นรายแถวได้ การออกแบบให้กลไกหมุนบล็อกไม่ต้องรีเซ็ตตลอดเวลา (เช่น โครงหมุนต่อเนื่อง) ก็น่าจะเร็วขึ้นมาก คิดภาพง่าย ๆ ว่าหากจ้างผู้เชี่ยวชาญระบบอัตโนมัติในโรงงานเข้าช่วย คงทำให้เกิดได้เร็วมาก โดยเฉพาะช่วงต้นที่ใช้แนวทาง e-ink อนาล็อกแบบใช้ลูกกลม ฉันประทับใจมากกับแนวคิดนี้
หากพูดถึง "ทางเลือกของเมทริกซ์จุดที่ใช้พลังงานเฉพาะตอนอัปเดตภาพ" นี่คือแนวคิดที่ไม่เคยได้คาดคิดมาก่อน: ในด้านหนึ่งของกล่องมีเครื่องพิมพ์เทอร์มอล ส่วนอีกด้านเป็นม้วนกระดาษเทอร์มอล+สปริงดึงที่ซ่อนอยู่ ทำให้กระดาษเทอร์มอลที่พิมพ์แล้วขยายผ่านกระจกบัง [UV] แล้วกลายเป็นจอ เมื่อมีการพิมพ์ภาพใหม่เพื่อ "รีเฟรช" จอ ก็อาจสร้างจอแบบนี้ได้
พรอมไปอีกขั้นได้ด้วยหมึกลบรอยเขียนจากปากกา Pilot Frixion ที่ปกคลุมผิวจอได้ หมึกนี้จะจางหายที่ 60 อีกรี และกลับเข้มอีกที่ -10 อีกรี ความเสถียรเกิดขึ้นที่อุณหภูมิเฉลี่ย จึงสามารถใช้ลูปเดิมซ้ำ ๆ ได้ แต่ปัจจัยว่าเหรอะคุมราวกี่รอบได้ยังไม่ชัดเจน
เครื่องแฟกซ์บางรุ่นใช้กระดาษเทอร์มอล ทำให้ขยายได้อย่างน้อย 8.5 นิ้ว
หากต้องทิ้งกระดาษทุกครั้งที่เปลี่ยนภาพ ฉันก็งงอยู่ว่าจะยังเรียกว่า "จอแสดงผล" ได้หรือไม่
โครงสร้างกล่องช่วยให้จอขยายเป็น 4 หน้าได้เช่นกัน หากออกแบบกลไกดี ๆ ก็จะทำได้ สลับภาพหน้าหลักไปอีกรูปแบบเพื่อให้ภาพที่เหลือกลายเป็นดิสเพลย์ที่ 2, 3, 4 และที่มุมแต่ละจุดอาจมีลูกกลิ้งซ่อนในเฟรมโดยเว้นช่องในเบซัลเพื่อให้เกิดความน่าสนใจ
โครงการนี้ยอดเยี่ยมมากและเนื้อหาก็อ่านสนุกมาก ทำให้นึกถึงสิ่งที่เคยเห็นในนิยายแนว steampunk ฉันค้นหาข้อมูลเพิ่มเติมผ่าน Google และเจอว่าเป็น kinotrope ใน Difference Engine ของ Gibson & Sterling มีคนเคยทำเวอร์ชันที่ใช้เซอร์โวที่แต่ละพิกเซล ซึ่งก็คงจะแพงมาก โพสต์บล็อกที่เกี่ยวข้อง
ความคิดเรื่อง "เวอร์ชันที่เร็วขึ้น" ยังตามมาหลายชิ้นอยู่เสมอ เช่น การยิงลูกกลมไม้ผ่านท่อหรือช่องสำหรับแต่ละบรรทัดสแกนเพื่อนำลูกที่เข้ากับสีที่ต้องการมาเติมให้เหมาะสม สามารถใช้แรงโน้มถ่วงหรือระบบลมอัดเพื่อรีเซ็ต/เติมพลังให้แถวหนึ่งได้ และฉันยังจินตนาการขยายไปถึงขนาดสนามกีฬาพร้อมพิกเซลลูกโบว์ลิ่งได้ อุปสรรคคือการแบ่งเวลาป้อนลูกกลับสู่ช่องเลี้ยงใหม่ให้แม่นยำและการลดเสียงจากการหน่วงการกระแทกเพื่อป้องกันความสึกหรอในระบบอีกด้วย ด้านตรงข้ามอาจใช้แมตริกซ์แอคทีฟ โดยแต่ละบล็อกหมุนที่ตำแหน่งเดิมด้วยโซลินอยด์/เซอร์โวเพื่อแสดงหลายสี