3 คะแนน โดย GN⁺ 2023-12-03 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็นต้นแบบอุปกรณ์แสดงผล 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 ความคิดเห็น

 
GN⁺ 2023-12-03
ความเห็นบน Hacker News
  • มีไอเดียปรับปรุงอยู่สองสามอย่าง ถ้ามีมอเตอร์รุ่นเดียวกันเหลืออีกตัว ก็สามารถถอดมาสองตัวแล้วใช้ brush จากชุดประกอบทั้งสองทำเป็นอุปกรณ์ส่งกำลังไฟขณะหมุนได้
    แม้จะต้องเสียมอเตอร์สองตัวต่ออุปกรณ์หนึ่งชิ้น แต่มันพอดีเป๊ะและเสถียรมาก และถ้าใส่คาปาซิเตอร์กับคอมมิวเตเตอร์เพิ่ม ก็แทบไม่ต้องกังวลเรื่องแบตเตอรี่อีกต่อไป
    คอมมิวเตเตอร์ยังส่งสัญญาณได้ด้วยว่าชุดประกอบหมุนครบหนึ่งรอบแล้ว จึงรักษาการทำ image stabilization ตาม ตำแหน่งจริง ได้โดยไม่ต้องเดาคาบ
    การส่งไฟด้วยการเหนี่ยวนำก็น่าจะเป็นไปได้ แต่ส่งได้ไม่มีประสิทธิภาพพอ เลยต้องดันแรงดันขาเข้าสูงเกินไปจนน่ากลัวว่าจะเกิดไฟไหม้
    คำแนะนำนี้มาจากโปรเจกต์ศิลปะ Burning Man ในปี 2001 รูปโปรโตไทป์ยุคแรกที่เละเทะมากดูได้ที่นี่: https://github.com/sowbug/tqw/blob/master/photos/side.jpg. ส่วนตัวงานติดตั้งสุดท้ายนั้นทำงานได้ดีมาก

    • ถูกทั้งหมด แต่ผมก็ชอบวิธีที่ใช้ IR sensor สำหรับซิงก์เหมือนกัน วิธีหมุนจอด้วยการเปลี่ยนตำแหน่งนิ้วนี่เจ๋งมาก และไม่ต้องเดาอะไรเลย
    • เป็นไอเดียที่ดีพอตัวเลย brush น่าจะทนได้นาน โชคดีที่ตอนนี้ การชาร์จมือถือไร้สาย แพร่หลายแล้ว เลยหา kit แบบ [1] หรือ [2] ได้
      ชักสงสัยเหมือนกันว่าบริษัท LIDAR จัดการเรื่องนี้กันยังไง
      1: https://www.adafruit.com/product/1407
      2: https://www.adafruit.com/product/2162
    • อีกไอเดียหนึ่งคือ ลองวาง จอ TFT เล็ก ๆ ไว้บนมอเตอร์ดีไหม ของถูกหาได้จาก aliexpress
    • ถ้าคงมอเตอร์ตัวเดิมไว้ แล้วใช้มอเตอร์ตัวที่สองเป็น generator ล่ะ?
    • ถ้ามอเตอร์ขับเป็น asynchronous motor ก็น่าจะใช้ขดลวดเหนี่ยวนำของโรเตอร์จ่ายไฟให้วงจรอิเล็กทรอนิกส์ที่หมุนอยู่ได้ แต่ phase shift อาจรุนแรงพอสมควร
  • เป็นหนึ่งใน ไอเดียอันชาญฉลาด ที่พอมาย้อนดูแล้วเหมือนเป็นเรื่อง obvious
    ทั้งที่เอาชิ้นส่วนแยก ๆ ค่อนข้างพื้นฐานมาประกอบกันด้วยมือ แต่ผลลัพธ์กลับดูน่าเชื่อถือขนาดนี้ ก็อดคิดไม่ได้ว่าทำไมพอถึงคริสต์มาสหน้า จะไม่มีเวอร์ชัน full-color ความละเอียดสูงจากแบรนด์ dropshipping ชื่อสุ่ม 7 ตัวอักษรบน Amazon ออกมาขาย

    • มันไม่ใช่ไอเดียใหม่ เรียกว่า swept-volume volumetric display และมีมานานแล้ว [1]
      แต่ส่วนใหญ่ก็แทบเป็นของเล่นมากกว่า ถ้าทำได้แค่พื้นผิวเรืองแสงโปร่งใสและแตะต้องไม่ได้ ก็ไม่มีอะไรให้ทำได้จริงมากนัก
      ยังมีเวอร์ชันไม่หมุนที่ใหญ่กว่ามาก ทำจาก 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/
    • ถ้าเป็นจอ 32 นิ้ว มอเตอร์คงต้องหมุนด้วย ความเร็วสูงมาก บนพื้นที่ pi*32^2
  • เป็นโปรเจกต์เล็ก ๆ ที่เท่มาก โปรเจกต์อื่น ๆ ของเขาก็ควรค่าแก่การดูเหมือนกัน บางอันเคยขึ้น HN มาก่อนแล้ว
    https://mitxela.com/projects/hardware
    ส่วนตัวผมชอบ MIDI slide whistle มากที่สุด

    • พอเห็นโปรเจกต์แอมป์หูฟัง[0] ก็ทำให้นึกถึงหนังสือ Schiit Happened ขึ้นมานิดหน่อย
      [0] https://mitxela.com/projects/headphone_amps
    • ใช่เลย ยังมี โปรเจกต์แปลง HDMI ไปเป็นจอ OLED ด้วย อันนั้นบ้าดีจริง ๆ
  • สร้างสรรค์ดีนะ น่าจะมีทั้งความพยายามและความสนใจที่จะทำอะไรแบบนี้จนสำเร็จ แต่ขาด จินตนาการ ที่จะนึกโปรเจ็กต์เจ๋ง ๆ แบบนี้ออกมา
    โชคดีที่มีอินเทอร์เน็ต เลยได้เห็นสิ่งน่าประทับใจที่ผู้คนสร้างขึ้น

    • นี่เป็นวิธีที่ Tom 7 เคยพูดถึงในวิดีโอหนึ่งของเขา คือให้คอยทำ รายการไอเดีย เอาไว้ แล้วไม่ว่าจะนึกอะไรออกมาก็จดไว้ให้หมด ถึงจะดูงี่เง่าก็ตาม ค่อยไปคัดกรองทีหลัง
      แบบนั้นพอมีพลังจะลงมือทำโปรเจ็กต์ ก็ไม่ต้องเปลืองแรงไปกับการคิดหาไอเดีย
      ปริมาณงานที่ทำจนเสร็จได้จริงในไซด์โปรเจ็กต์จะแตกต่างกันมาก มีโอกาสสูงว่าคุณจะมีไอเดียที่น่าสนใจกว่าที่คิดไว้เยอะ เพียงแต่ถ้าจังหวะที่ไอเดียเกิดขึ้นไม่ตรงกับช่วงที่มีเวลาและพลังจะลงมือทำหรือขยายมัน ไอเดียนั้นก็จะหายไป
    • ผมมีปัญหาตรงข้ามเลย คือมีไอเดียสร้างสรรค์ผุดขึ้นมาตลอด จนพอทำต้นแบบ v1 หรือ v2 ของไอเดีย A อยู่ ไอเดีย B ก็โผล่มาขัดขวางไม่ให้ดัน A ไปจนสุด
      ต่อให้มีความอึดและวินัยแล้ว คราวนี้สิ่งรบกวนก็ไม่ใช่ไอเดีย 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/

    • น่าสนใจนะ ในอเมริกามีพิพิธภัณฑ์แนวเทคโนโลยี x ศิลปะแบบนี้บ้างไหม?
  • ถ้าชอบอะไรแนวนี้ นี่เป็นช่อง YouTube ที่ยอดเยี่ยม
    สงสัยว่า จอ OLED ราคาถูกจะรีเฟรชได้เร็วพอจนให้ความละเอียดสูงกว่านี้มากไหม อาจเป็นไปได้ แต่ก็มีโอกาสสูงที่ช่องว่างระหว่างชิ้นส่วนแนวรัศมีจะใหญ่กว่าระยะห่างพิกเซลมาก จนสุดท้ายอาจดูแย่กว่าเดิม

  • ปัญหาเรื่องการจัดศูนย์น่าจะแก้ได้ด้วยการเอาบอร์ด LED สองแผ่นวางด้านบนแบบ หันหลังชนกัน
    บอร์ดหนึ่งขยับ LED ไปครึ่งหนึ่งเพื่อสร้างเอฟเฟ็กต์ interlace และเพิ่มความละเอียดเป็นสองเท่าได้พร้อมกัน

    • หรือไม่ก็ไม่ต้องจัดให้ตรงศูนย์ตั้งแต่แรก แค่เปลี่ยน สมการคณิตศาสตร์ ให้สะท้อนว่า LED ไม่ได้อยู่ตรงกลางก็พอ
    • น่าจะมีวิธีเปลี่ยนโครงสร้างที่ใช้หมุนแถบ LED ให้เบากว่านี้ได้แน่ ๆ เช่นใช้ กระจก หรือเมทริกซ์ light pipe อะคริลิก?
  • ถ้ามี เวอร์ชัน RGB ที่ใหญ่และแข็งแรงกว่านี้สักประมาณ 50x50 และแสดงภาพอื่น ๆ ได้โดยไม่ต้องเขียนโค้ด ผมยอมจ่ายเกิน 200 ดอลลาร์

    • อันนี้ไม่ใช่ volumetric display แต่ก็ยังเจ๋งมาก และอาจเหมาะกับงานที่ต้องการ https://spinprojector.com/
  • ยังมี โปรเจ็กต์ volumetric display เจ๋ง ๆ อีกอันที่เพิ่งโพสต์ไม่นานแต่แทบไม่ได้รับความสนใจ
    https://news.ycombinator.com/item?id=38406824