จอแสดงผลวอลูเมตริกขนาดเล็ก
(mitxela.com)- เป็นต้นแบบอุปกรณ์แสดงผล 3D ขนาดเท่าฝ่ามือที่ใช้หลัก ภาพติดตา (POV) โดยหมุนทั้งเมทริกซ์ LED ขนาดเล็ก, บอร์ด RP2040, แบตเตอรี่ LIR2450 และมอเตอร์ไปพร้อมกัน
- หมุนเมทริกซ์ LED ขนาด 8x10 และอ่านคาบด้วยเซ็นเซอร์ IR เพื่อแสดงผล บัฟเฟอร์วอลูเมตริก ให้สอดคล้องกับความเร็วที่วัดได้
- ใช้ประโยชน์จากดูอัลคอร์ของ RP2040 และการควบคุม GPIO พร้อมกัน โดยให้คอร์หนึ่งวัดช่วงเวลาการหมุน ส่วนอีกคอร์ส่งข้อมูล LED ออกไปเป็น รายไซเคิล
- ข้อจำกัดหลักคือวงจรป้องกันแบตเตอรี่ วิธีชาร์จ ความทนทานของตัวยึดพิมพ์ 3D และการไม่มีตัวจำกัดกระแส LED โดยในต้นแบบจะแสดงคำเตือนเมื่อแรงดันต่ำกว่าประมาณ 3.6V
- สร้างสไลซ์พิกัดเชิงขั้ว 3D และข้อมูลจำลองของไหล/ไฟด้วย Blender แต่กล้องถ่ายทอด ความเป็นสามมิติ ได้น้อยกว่าของจริง และเวอร์ชันถัดไปจำเป็นต้องปรับปรุงการจัดแนวและความละเอียด
ไอเดียเทียนอิเล็กทรอนิกส์แบบหมุน
- เป้าหมายคือการสร้างเทียนอิเล็กทรอนิกส์ที่ดูเหมือน เปลวเทียนกะพริบ ไม่ว่าจะมองจากมุมใด
- จอภาพติดตาทั่วไปต้องมีโครงสร้างรองรับอย่างแบริ่งและสลิปริง จึงเลือกวิธีทำให้มอเตอร์และแบตเตอรี่เล็กพอจน ทั้งอุปกรณ์หมุนไปด้วยกัน
- บอร์ดเมทริกซ์ LED ถูกสั่งทำอย่างรวดเร็วโดยรวมไปกับคำสั่งซื้อ PCB อื่น
- PCB ขนาดเล็กจากจีนแทบจะมีราคาถูกอยู่แล้ว และปัจจัยสำคัญกว่าคือการจัดส่งที่รวดเร็ว
- ใช้เครื่อง pick-and-place Charmhigh CHM-T36VA
- การใส่ม้วนชิ้นส่วนใช้เวลานาน แต่เมทริกซ์ LED นี้มีชิ้นส่วนเพียงชนิดเดียว จึงประกอบบอร์ดซ้ำได้อย่างรวดเร็ว
- ไม่ได้สั่งทำสเตนซิลอย่างเป็นทางการ แต่ใช้วิธี เลเซอร์เอชชิ่ง บนแผ่นอะซีเตต
- ทำเมทริกซ์ LED ด้วยชิ้นส่วน 0603 และ 0805 ตามลำดับ และในเวอร์ชันถัดไปได้คิดแบบ PCB วงกลมสำหรับค้ำยันมุมฉาก
องค์ประกอบฮาร์ดแวร์
- เลือก Waveshare RP2040-tiny เป็นไมโครคอนโทรลเลอร์ โดยพิจารณาจากขนาดเล็กและความจุแฟลช
- Raspberry Pi Pico มีข้อดีคือดูอัลคอร์ 125MHz, แฟลชสูงสุด 16MB และราคาต่ำ แต่ตัวบอร์ดมีขนาดใหญ่เกินไป
- bare RP2040 ต้องใช้แฟลช QSPI ภายนอก, คริสตัล และคาปาซิเตอร์เสริม ทำให้ใช้งานเดี่ยวๆ ยุ่งยาก
- RP2040-tiny แทบจะเป็น Pico ที่ลดขนาดลงครึ่งหนึ่ง โดยพอร์ต USB และปุ่ม reset/boot อยู่บนบอร์ดย่อยที่เชื่อมต่อด้วยสายแพแบบแบน
- ใช้แบตเตอรี่ LIR2450
- เป็นลิเธียมไอออนแบบชาร์จได้และจ่ายกระแสได้มากกว่า 100mA
- แบตเตอรี่ Li-ion ที่เล็กกว่านี้จะมีความจุและความสามารถในการจ่ายกระแสลดลง
- บอร์ด RP2040 มีแนวทแยงประมาณ 29mm ดังนั้นแม้ใช้แบตเตอรี่เล็กกว่านี้ ผลลัพธ์ก็ไม่ได้เล็กลง
- ตัวยึดแบตเตอรี่พิมพ์ 3D ด้วย PETG
- เวอร์ชันแรกมีผนังหนา 0.5mm และเป็นโครงสร้างสองชิ้นติดกาว จึงมีจุดอ่อนที่แนวกาวแตกทุกครั้งที่ทำตก
- ภายหลังทดลองผนังหนา 1mm และโครงสร้างการพิมพ์ในทิศทางอื่น
- ตรวจจับการหมุนด้วย เซ็นเซอร์ IR TCRT5000
- เอาต์พุตเป็นอนาล็อก แต่ใส่ pull-up แล้วต่อเข้ากับ GPIO โดยตรง
- อินพุตของ RP2040 มี Schmitt trigger ที่ปิดได้ด้วยซอฟต์แวร์ จึงใช้งานได้เสมือนคอมพาเรเตอร์
- เลือกมอเตอร์ RF-410CA
- มอเตอร์จากไดรฟ์ CD/DVD ที่คล้ายกันมีเส้นผ่านศูนย์กลางและความยาวแกนต่างกันเล็กน้อย
- เพื่อให้ได้ 30FPS ต้องใช้ประมาณ 1800RPM และความเร็วไร้โหลด 5000~10000RPM ของมอเตอร์ขนาดเล็กจำนวนมากนั้นเร็วเกินไป
- แนวทางคือใช้ PWM ลดความเร็ว
วงจรและการประกอบต้นแบบ
- เมทริกซ์ LED เป็นโครงสร้าง 8x10 จึงใช้ GPIO 18 ขา
- นอกจากนี้ยังพิจารณาเพิ่มอินพุตเซ็นเซอร์ 1 ขา, ควบคุมมอเตอร์ 1 ขา และมอนิเตอร์แรงดันแบตเตอรี่ 1 ขา
- LED WS2812 บนบอร์ดเดิมต่ออยู่กับ GPIO16 และเพื่อให้มี GPIO สำหรับเมทริกซ์ จึงถอด LED ออกแล้วบัดกรีลวดเคลือบอีนาเมลแทน
- การควบคุมมอเตอร์ใช้ MOSFET SOT-23 ขนาดเล็กและ ไดโอด flyback ติดแบบ dead bug
- IR LED ต่อเข้ากับสายไฟโดยตรง
- ตามอุดมคติควรควบคุมด้วยซอฟต์แวร์เพื่อประหยัดพลังงานเมื่อไม่หมุน แต่ในต้นแบบละไว้เพื่อประหยัด GPIO
- เมทริกซ์ LED ต่อเข้ากับ GPIO โดยตรงโดยไม่มีตัวต้านทานจำกัดกระแสหรือทรานซิสเตอร์ไดรเวอร์
- กระแส source/sink รวมของ GPIO บน RP2040 อยู่ที่ประมาณ 50mA
- เป็นวิธีที่อาศัยความต้านทานขณะนำของ GPIO และการจำกัด duty cycle ของ PWM และหากชิปค้างจนเมทริกซ์ติดค้าง LED อาจถูกขับเกินกำลังได้
- ขั้วบวกแบตเตอรี่ต่อเข้ากับ VBUS ของบอร์ดโดยตรง
- ในโครงสร้างนี้ หากเสียบสาย USB อาจมี 5V ไปตกที่ขั้วแบตเตอรี่ จึงค่อนข้างเป็นการแฮ็กชั่วคราวในขั้นต้นแบบ
- เจาะรูเล็กๆ ด้านหลังเพื่อถอดแบตเตอรี่ และหลังจากพลาสติกแตกก็ใช้ยางรัดยึดแบตเตอรี่แทน
ซอฟต์แวร์ควบคุมการแสดงผล
- ซอฟต์แวร์เฝ้าดูเซ็นเซอร์ IR และใช้เวลาระหว่างทริกเกอร์เพื่อกำหนด ความเร็วการแสดงผลของเมทริกซ์
- จุดเด่นของ RP2040 คือสามารถตั้งค่าหรืออ่านขา GPIO ทั้งหมดในไซเคิลนาฬิกาเดียวกันได้
- สำหรับ STM32 แม้จะเป็นโปรเซสเซอร์ 32 บิต แต่ IO ถูกจัดเป็นรีจิสเตอร์ 16 บิต และมีปัญหา bus contention เมื่อพยายามเปลี่ยนพร้อมกัน
- ข้อมูลเอาต์พุต GPIO ที่ต้องใช้ถูกเตรียมล่วงหน้าไว้ และส่งออกตามลำดับตามสัดส่วนของความเร็วการหมุนที่วัดได้
- ดูอัลคอร์ ARM Cortex-M0 ถูกใช้เป็น ลูป busy-wait แทนอินเทอร์รัปต์
- คอร์แรกเฝ้าดูเซ็นเซอร์ IR และใช้ SysTick วัดจำนวนไซเคิลระหว่างทริกเกอร์
- คอร์ที่สองรอสัญญาณแสง จากนั้นใช้ SysTick ของตัวเองไล่ผ่านบัฟเฟอร์วอลูเมตริกด้วยความแม่นยำระดับไซเคิล
- การควบคุมมอเตอร์เริ่มจากลอจิกง่ายๆ
- หาก RPM ต่ำกว่า 1200 จะขับมอเตอร์ที่เอาต์พุต 90%
- ไม่เช่นนั้นลดลงเป็นเอาต์พุต 60%
- ด้วยแรงเฉื่อยและแรงต้านอากาศ การควบคุมง่ายๆ นี้ทำงานได้เพียงพอในต้นแบบปัจจุบัน
- เมทริกซ์สแกนเป็นรายคอลัมน์
- เมื่อมองจากด้านบน เส้นรัศมีแต่ละเส้นจะเป็นเกลียวเล็กน้อย แต่แก้ไขได้ง่ายกว่าการทำให้ทั้งหมดกลายเป็นเฮลิกซ์
- duty cycle ของ LED ส่วนกลางลดลงตามสัดส่วนเมื่อเทียบกับส่วนรอบนอก
การตรวจแรงดันแบตเตอรี่และการชาร์จ
- เซลล์เปล่า LIR2450 ไม่มีวงจรป้องกัน จึงอาจ เสียหายถาวร ได้หากแรงดันต่ำเกินไป
- หากต่ำกว่า 3V มากๆ จะเกิดปัญหา และขีดจำกัดจริงอยู่ราว 2.7V แล้วแต่เซลล์
- การตรวจแรงดันใช้ตัวต้านทาน 100K สองตัวแบ่งแรงดันแล้วต่อเข้ากับ GPIO ขาสุดท้ายที่เหลือใช้งานได้
- ใน RP2040-tiny แรงดันอ้างอิงของ ADC เป็นตัวแปร
- หากแรงดันอ้างอิงของ ADC คือแรงดันจ่าย เมื่อแรงดันจ่ายลดลงก็จะตรวจจับแรงดันแบตเตอรี่ตกได้ยาก
- LDO 3.3V รุ่น RT9193-33 มี dropout 220mV ที่ 300mA ดังนั้นเมื่อแบตเตอรี่ถึง 3.52V แรงดันจ่ายของ RP2040 ก็เริ่มลดลงด้วย
- ในต้นแบบตั้งให้แสดงคำเตือนเมื่อแรงดันต่ำกว่าประมาณ 3.6V
- เวอร์ชันถัดไปมีแผนเพิ่มแรงดันอ้างอิง
- ตอนแรกใช้วิธีถอดแบตเตอรี่ออกไปใส่ในเครื่องชาร์จแยก แต่เครื่องชาร์จใหม่เสียตั้งแต่ใช้ครั้งแรก
- หลังจากนั้นตั้งแหล่งจ่ายไฟบนโต๊ะเป็น จำกัดกระแส 50mA และแรงดันคงที่ 4.2V เพื่อชาร์จเซลล์ลิเธียมไอออนเดี่ยว
- เนื่องจากไม่แน่ใจว่าความจุแบตเตอรี่เป็น 120mAh หรือ 60mAh จึงเลือกกระแสชาร์จที่ระมัดระวังกว่า 1C
- เพื่อความสะดวกในการพัฒนา จึงทำบอร์ด intercept USB ใส่ระหว่าง PC กับบอร์ดโปรแกรมมิงของ RP2040-tiny
- แยกสาย 5V ออกและเผยขาแบตเตอรี่ ทำให้ต่อแหล่งจ่ายไฟได้โดยไม่ต้องถอดแบตเตอรี่
- สายข้อมูลยังเชื่อมต่ออยู่ จึงโปรแกรมได้ขณะใส่แบตเตอรี่
- ต่อมานำ IC ชาร์จลิเธียมไอออน BQ21040DBVR มาติดไว้กลางบอร์ด intercept USB
- สามารถชาร์จแบตเตอรี่ได้ขณะเสียบสายโปรแกรมมิงทิ้งไว้
- ต้นแบบไม่ได้ดับสนิท โดยมีเพียง IR LED ที่กินกระแสต่อเนื่องประมาณ 9mA และกระแสสแตนด์บายรวมก็ประมาณ 15mA จึงไม่ถึงเงื่อนไขสิ้นสุดการชาร์จเต็ม
- เพราะแรงดันตกคร่อมในสายเคเบิล แรงดันแบตเตอรี่อาจไม่ขึ้นเกิน 4.1V เช่นกัน
การสร้างข้อมูลวอลูเมตริกด้วย Blender
- ข้อมูลแสดงผลต้องสร้างในรูปแบบ พิกัดเชิงขั้ว 3D r, theta, z
- การทดสอบแรกทำด้วยคิวบ์แบบ wireframe
- ใช้ wireframe modifier กับคิวบ์พื้นฐานของ Blender
- หมุน 45 องศารอบแกน x และหมุนรอบแกน y เท่ากับ
atan(1/sqrt(2))เพื่อให้มุมของคิวบ์ชี้ขึ้น
- เพื่อสร้างสไลซ์ จึงแปลงคิวบ์อีกก้อนให้เป็นชิ้นตัดบางๆ แล้วใช้ boolean modifier
- ผูกกล้องและสไลซ์เป็น parent กับ Empty แล้วทำแอนิเมชันการหมุน Z ของ Empty
- ตั้งกล้องเป็น orthographic และปรับความละเอียดเป็น 8x10
- ตั้งพื้นหลังเป็นสีดำ วัสดุของคิวบ์เป็น emissive และกำหนดค่า threshold ด้วย colour ramp ใน compositor
- จอปัจจุบันใช้เพียง voxel 1 บิต
- voxel แต่ละอันมีเพียงสถานะเปิดหรือปิด
- ปรับ threshold ใน Blender เพื่อเลือก cutoff ที่เหมาะสมด้วยสายตา
Render animationสร้างภาพสไลซ์ 24 ภาพของคิวบ์ wireframe แล้วใช้สคริปต์ Python แปลงเป็นไฟล์ header เพื่อนำเข้าในโค้ด- ใช้ Blender driver ควบคุมการหมุนกล้องและการหมุนคิวบ์ด้วยสูตรตามเฟรม
- การหมุนกล้องใช้
(frame/24)*2*pi - การหมุน y ของคิวบ์ใช้
floor(frame/24)*pi/24เพื่อให้หมุนทีละส่วนในแต่ละรอบ - พยายามคงเฟรมข้อมูลแต่ละเฟรมให้เป็นแบบไม่ต่อเนื่อง เพื่อให้ปรับความเร็วการเล่นตาม RPM ของมอเตอร์ได้
- การหมุนกล้องใช้
การจำลองของไหลและไฟ
- การจำลองของไหลใน Blender เริ่มต้นได้ง่าย แต่ปรับให้ได้ผลตามต้องการยากเพราะมีพารามิเตอร์จำนวนมาก
- การจำลองของเหลวแปลงอนุภาคของไหลเป็น mesh ได้ง่าย จึงย้ายไปยังจอวอลูเมตริกได้ค่อนข้างสะดวก
- หลังจากจำลองที่ความเร็ว 1/24 แล้วพยายามดึงข้อมูลวอลูเมตริกเชิงขั้วด้วยวิธีเดียวกัน แต่สเกลเวลาที่ช้ามากทำให้เกิดความไม่เสถียร และไม่พบวิธีง่ายๆ ในการลดความเร็วการเล่น
- ตรวจสอบฟีเจอร์ Multi-view หรือ Stereoscopy ด้วย
- สามารถเพิ่มกล้องหลายตัวเพื่อเรนเดอร์หลายมุมมองพร้อมกันได้
- แต่ไม่แน่ใจวิธีที่รวดเร็วในการหมุนกล้อง 24 ตัวให้กระจายเท่าๆ กัน และยังมีปัญหาว่าต้องเรนเดอร์ boolean modifier สำหรับสไลซ์ร่วมด้วย
- ลองทางอ้อมด้วยการเรนเดอร์ชิ้นบางๆ ของฉากด้วย camera clipping distance
- มีปัญหาวัตถุที่ถูกตัดไม่ถูกเติมด้านใน แต่แสดงเฉพาะพื้นผิว
- ทดลองว่า volumetric material จะช่วยเติมบางส่วนได้หรือไม่ แต่ไม่สำเร็จ
- สุดท้ายใช้สคริปต์ Blender Python เรนเดอร์ 24 ครั้ง
- เปลี่ยนการหมุน Z ของ Empty เป็น 24 มุม และเรนเดอร์แอนิเมชันทั้งหมดซ้ำในแต่ละมุม
- วิธีนี้ทำให้ยังคงการจำลองของไหลแบบเรียลไทม์ไว้ได้ พร้อมกับได้สไลซ์ของแต่ละทิศทางการหมุน
- การจำลองไฟถูก bake เป็น OpenVDB แล้วนำกลับเข้า Blender เพื่อประมวลผล
- ใช้ Volume to Mesh modifier ทำ threshold กับข้อมูลวอลุ่ม
- จากนั้นใช้สไลซ์กล้องและ boolean modifier แล้วรันสคริปต์เดิมอีกครั้ง
คุณภาพการแสดงผลและเวอร์ชันถัดไป
- อุปกรณ์จริงดูมี ความเป็นสามมิติ ชัดกว่าภาพถ่ายหรือวิดีโอ
- ความคลาดเคลื่อนในการจัดแนว LED อาจแก้ด้วยซอฟต์แวร์ได้
- สามารถเลื่อนตำแหน่งของ boolean slice ออกจากศูนย์กลางเล็กน้อยเพื่อให้ตรงกับศูนย์กลางการหมุนจริง
- เพื่อแก้รูปแบบการสแกนของเมทริกซ์ อาจใช้รูปทรงที่โค้งเล็กน้อยแทนคิวบ์ที่ยืดออก
- ที่ความละเอียดปัจจุบัน การปรับปรุงเหล่านี้อาจไม่เห็นผลชัด
- เงื่อนไขสำคัญที่สุดคือ voxel แต่ละจุดบริเวณรอบนอกต้องดูเป็นจุดเดียวจากทุกมุม
- หากจัดแนวผิด หนึ่ง voxel อาจดูยาวเหมือนถูกจุดสองครั้ง
- ตัวอักษร
mตรงกลางเรนเดอร์ด้วยวิธีแยกต่างหากเพื่อให้อ่านได้จากทุกทิศทาง- ทำให้ข้อความเลื่อนไปในทิศทางที่อ่านได้ทั้งจากด้านหน้าและด้านหลัง
- ต้นแบบถัดไปมีแผนปรับปรุงการจัดแนวและความละเอียด
- เนื่องจากไม่มีสวิตช์สไลด์ขนาดเล็ก จึงไม่ได้ใส่ฟังก์ชันปิดเครื่องโดยไม่ถอดแบตเตอรี่ แต่แก้ด้วยการสอดแผ่นอะซีเตตชิ้นเล็กๆ ระหว่างแบตเตอรี่กับหน้าสัมผัส
- เนื่องจากมีเซ็นเซอร์ IR อยู่แล้ว การเพิ่มรีโมตก็ดูเป็นไปได้ แต่เซ็นเซอร์ปัจจุบันไม่ใช่แบบ demodulated
- ซอร์สโค้ดเผยแพร่บน GitHub: source code on github
1 ความคิดเห็น
ความเห็นบน Hacker News
มีไอเดียปรับปรุงอยู่สองสามอย่าง ถ้ามีมอเตอร์รุ่นเดียวกันเหลืออีกตัว ก็สามารถถอดมาสองตัวแล้วใช้ brush จากชุดประกอบทั้งสองทำเป็นอุปกรณ์ส่งกำลังไฟขณะหมุนได้
แม้จะต้องเสียมอเตอร์สองตัวต่ออุปกรณ์หนึ่งชิ้น แต่มันพอดีเป๊ะและเสถียรมาก และถ้าใส่คาปาซิเตอร์กับคอมมิวเตเตอร์เพิ่ม ก็แทบไม่ต้องกังวลเรื่องแบตเตอรี่อีกต่อไป
คอมมิวเตเตอร์ยังส่งสัญญาณได้ด้วยว่าชุดประกอบหมุนครบหนึ่งรอบแล้ว จึงรักษาการทำ image stabilization ตาม ตำแหน่งจริง ได้โดยไม่ต้องเดาคาบ
การส่งไฟด้วยการเหนี่ยวนำก็น่าจะเป็นไปได้ แต่ส่งได้ไม่มีประสิทธิภาพพอ เลยต้องดันแรงดันขาเข้าสูงเกินไปจนน่ากลัวว่าจะเกิดไฟไหม้
คำแนะนำนี้มาจากโปรเจกต์ศิลปะ Burning Man ในปี 2001 รูปโปรโตไทป์ยุคแรกที่เละเทะมากดูได้ที่นี่: https://github.com/sowbug/tqw/blob/master/photos/side.jpg. ส่วนตัวงานติดตั้งสุดท้ายนั้นทำงานได้ดีมาก
ชักสงสัยเหมือนกันว่าบริษัท LIDAR จัดการเรื่องนี้กันยังไง
1: https://www.adafruit.com/product/1407
2: https://www.adafruit.com/product/2162
เป็นหนึ่งใน ไอเดียอันชาญฉลาด ที่พอมาย้อนดูแล้วเหมือนเป็นเรื่อง obvious
ทั้งที่เอาชิ้นส่วนแยก ๆ ค่อนข้างพื้นฐานมาประกอบกันด้วยมือ แต่ผลลัพธ์กลับดูน่าเชื่อถือขนาดนี้ ก็อดคิดไม่ได้ว่าทำไมพอถึงคริสต์มาสหน้า จะไม่มีเวอร์ชัน full-color ความละเอียดสูงจากแบรนด์ dropshipping ชื่อสุ่ม 7 ตัวอักษรบน Amazon ออกมาขาย
แต่ส่วนใหญ่ก็แทบเป็นของเล่นมากกว่า ถ้าทำได้แค่พื้นผิวเรืองแสงโปร่งใสและแตะต้องไม่ได้ ก็ไม่มีอะไรให้ทำได้จริงมากนัก
ยังมีเวอร์ชันไม่หมุนที่ใหญ่กว่ามาก ทำจาก LED ที่แขวนกับสายเคเบิลด้วย [2] ซึ่งเท่มาก แต่ความตื่นตาตื่นใจก็หายไปเร็ว แล้วคุณจะรู้ว่ามันไม่ใช่จอสำหรับงานที่มีประสิทธิผล
ถ้าต้องการภาพ 3D แท้ ๆ ที่ render อะไรก็ได้อย่างมีคุณภาพและโต้ตอบได้ ดูเหมือนว่า VR/AR headset จะเหมาะกว่า และก็มีจอ 3D แบบใหม่ที่ไม่ต้องใส่แว่นด้วย แต่ยังมีไม่กี่คนที่ได้เห็นกับตาจริง
อาจจะทำของเล่นที่ขายบน Amazon ได้ แต่ก็ยังไม่แน่ใจว่าของแบบนี้มี killer app หรือเปล่า
[1] https://en.wikipedia.org/wiki/Volumetric_display#Swept-volum...
[2] https://www.ledpulse.com/
เป็นโปรเจกต์เล็ก ๆ ที่เท่มาก โปรเจกต์อื่น ๆ ของเขาก็ควรค่าแก่การดูเหมือนกัน บางอันเคยขึ้น HN มาก่อนแล้ว
https://mitxela.com/projects/hardware
ส่วนตัวผมชอบ MIDI slide whistle มากที่สุด
[0] https://mitxela.com/projects/headphone_amps
สร้างสรรค์ดีนะ น่าจะมีทั้งความพยายามและความสนใจที่จะทำอะไรแบบนี้จนสำเร็จ แต่ขาด จินตนาการ ที่จะนึกโปรเจ็กต์เจ๋ง ๆ แบบนี้ออกมา
โชคดีที่มีอินเทอร์เน็ต เลยได้เห็นสิ่งน่าประทับใจที่ผู้คนสร้างขึ้น
แบบนั้นพอมีพลังจะลงมือทำโปรเจ็กต์ ก็ไม่ต้องเปลืองแรงไปกับการคิดหาไอเดีย
ปริมาณงานที่ทำจนเสร็จได้จริงในไซด์โปรเจ็กต์จะแตกต่างกันมาก มีโอกาสสูงว่าคุณจะมีไอเดียที่น่าสนใจกว่าที่คิดไว้เยอะ เพียงแต่ถ้าจังหวะที่ไอเดียเกิดขึ้นไม่ตรงกับช่วงที่มีเวลาและพลังจะลงมือทำหรือขยายมัน ไอเดียนั้นก็จะหายไป
ต่อให้มีความอึดและวินัยแล้ว คราวนี้สิ่งรบกวนก็ไม่ใช่ไอเดีย B แต่กลายเป็นงานธรรมดาที่ต้องทำเพื่อจ่ายบิลแทน
เห็นด้วยกับการจดสิ่งต่าง ๆ เอาไว้ เหมือนกับหลายเรื่องในชีวิต ถ้าฝึกอย่างจริงจังก็จะเก่งขึ้น
สิ่งที่มักถูกมองข้ามคือ (1) ความรู้ทางเทคนิค (2) การประดิษฐ์อย่างเป็นระบบ และ (3) แรงจูงใจ
ความรู้ทางเทคนิคทำให้รู้ว่าโปรเจ็กต์แบบไหนเป็นไปได้ หรือคุ้มค่าทางเศรษฐกิจหรือไม่ และช่วยให้มองเห็นอุปสรรคระหว่างทางได้ การประดิษฐ์ที่เป็นไปไม่ได้จริงก็ไม่ค่อยมีประโยชน์
การประดิษฐ์อย่างเป็นระบบ คือการมองสิ่งต่าง ๆ อย่างเป็นระบบแทนที่จะนึกแบบสุ่ม ๆ เช่นวิเคราะห์ว่า (a) อยากสร้าง volumetric display หรือ (b) อยากทำให้วัตถุ 3D เสมือนมีชีวิตขึ้นมา ซึ่งสองอย่างนี้ต่างกันแบบละเอียดอ่อน
volumetric display แบบ (a) มีตั้งแต่ light-field display ที่มีพื้นฐานเชิงทฤษฎีอันงดงาม ไปจนถึง volumetric persistence-of-vision display แบบที่เห็นอยู่นี่ ถ้าศึกษาพื้นที่ปัญหานี้ลึกพอ ก็น่าจะไปถึงแนวทางแก้ที่เป็นไปได้ในที่สุด
ส่วนการทำให้วัตถุ 3D มีชีวิตขึ้นมาแบบ (b) อาจหมายถึงขอบเขตปัญหาที่กว้างกว่ามาก เช่น digital fabrication, แว่น VR, ปฏิสัมพันธ์แบบสัมผัส, หุ่นยนต์ ฯลฯ
แรงจูงใจก็สำคัญมากเช่นกัน การเข้าใจว่าทำไมเราถึงอยากประดิษฐ์ และอยากทำอะไรให้เกิดขึ้นจริง ก็มีความหมายมาก เช่น อยากมอบความสุขให้ผู้คน มันดูเจ๋งมากเฉย ๆ หรือเป็นอุปกรณ์การแพทย์ที่มีประโยชน์และอาจช่วยชีวิตคนได้
การเรียนรู้ว่าจะโฟกัสกับหัวข้อที่มีคุณค่าอย่างไรก็ฝึกได้ และช่วยยกระดับความสามารถในการประดิษฐ์ได้มาก แน่นอนว่าแค่ทำเพราะเราชอบก็ยังสำคัญและสมเหตุสมผลเหมือนกัน :)
สำหรับผม ส่วนที่สำคัญที่สุดคือการสนุกกับกระบวนการนั้น
อันนี้คล้ายกับวิธีทำงานของพัดลมโฮโลแกรมมาก อุปกรณ์อิเล็กทรอนิกส์ทั้งหมดอยู่ใน ชิ้นส่วนที่หมุน
พัดลมพวกนั้นมักใช้ การส่งพลังงานแบบไร้สาย เพื่อจ่ายไฟให้บอร์ดด้านบน
https://youtu.be/bT716nyK0AY
ถ้าอยู่ลอนดอนหรือมีโอกาสไปเที่ยว ที่ 180 Studios มักใช้เทคโนโลยีแบบนี้ในงานแสดงศิลปะ [1]
ถ้าสนใจ ศิลปะและเทคโนโลยี ก็น่าไปดู
[1] https://www.180studios.com/
ถ้าชอบอะไรแนวนี้ นี่เป็นช่อง YouTube ที่ยอดเยี่ยม
สงสัยว่า จอ OLED ราคาถูกจะรีเฟรชได้เร็วพอจนให้ความละเอียดสูงกว่านี้มากไหม อาจเป็นไปได้ แต่ก็มีโอกาสสูงที่ช่องว่างระหว่างชิ้นส่วนแนวรัศมีจะใหญ่กว่าระยะห่างพิกเซลมาก จนสุดท้ายอาจดูแย่กว่าเดิม
ปัญหาเรื่องการจัดศูนย์น่าจะแก้ได้ด้วยการเอาบอร์ด LED สองแผ่นวางด้านบนแบบ หันหลังชนกัน
บอร์ดหนึ่งขยับ LED ไปครึ่งหนึ่งเพื่อสร้างเอฟเฟ็กต์ interlace และเพิ่มความละเอียดเป็นสองเท่าได้พร้อมกัน
ถ้ามี เวอร์ชัน RGB ที่ใหญ่และแข็งแรงกว่านี้สักประมาณ 50x50 และแสดงภาพอื่น ๆ ได้โดยไม่ต้องเขียนโค้ด ผมยอมจ่ายเกิน 200 ดอลลาร์
ยังมี โปรเจ็กต์ volumetric display เจ๋ง ๆ อีกอันที่เพิ่งโพสต์ไม่นานแต่แทบไม่ได้รับความสนใจ
https://news.ycombinator.com/item?id=38406824