2 คะแนน โดย GN⁺ 2025-08-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โครงการ flip-card คือฮาร์ดแวร์โอเพ่นซอร์สที่ทำให้สามารถรัน การจำลองแบบ FLIP (Fluid-Implicit-Particle) ได้บนบัตรขนาดเล็กมาก
  • ไฟล์ออกแบบ PCB และตรรกะการจำลองถูกบรรจุไว้โดยตรง ทำให้สามารถอ้างอิงและนำไปประยุกต์ใช้ได้ง่าย
  • ผ่าน ตัวจำลอง WASM จึงสามารถดีบักการจำลองได้แม้ไม่มีฮาร์ดแวร์จริง
  • มีการนำเสนอการออกแบบเชิงสร้างสรรค์ เช่น แบตเตอรี่ที่ชาร์จใหม่ได้ และพอร์ต USB-C
  • พัฒนาขึ้นโดยอาศัยอัลกอริทึมล่าสุดและโครงการอ้างอิงของนักวิจัยชื่อดังอย่าง Matthias Müller

ภาพรวมโครงการ flip-card

  • flip-card เป็นโครงการฮาร์ดแวร์โอเพ่นซอร์สแบบตัวจริงที่ฝัง อัลกอริทึมการจำลองการไหล ลงบนบอร์ดวงจรขนาดเท่าการ์ดที่บางมากและทำงานได้จริง
  • โครงการนี้ได้รับแรงบันดาลใจจากโครงการ fluid simulation pendant ของ mitxela และเด่นตรงที่สามารถเห็นการเคลื่อนไหวของการไหลได้อย่างเป็นธรรมชาติและเข้าใจง่ายบนบัตร

ไฟล์หลักและโครงสร้าง

  • ไฟล์ออกแบบ PCB อยู่ในโฟลเดอร์ "kicad-pcb"
  • ตรรกะการจำลองการไหล แบบ FLIP อยู่ใน Rust crate แยกในโฟลเดอร์ "fluid_sim_crate" โดยอิงงานวิจัยของ Matthias Müller และแนวทางล่าสุดใน "Ten Minute Physics"
  • ไฟล์ "flip-card_firmware" มีการนำไปใช้เฟิร์มแวร์ที่ใช้ชิป RP2350

คุณสมบัติและจุดเด่น

  • ฝังแบตเตอรี่ชาร์จใหม่ได้: โดยอ้างอิงการออกแบบจากโครงการ tiny touch lcd ของ cnlohr และใส่ พอร์ต USB-C ที่ขอบบอร์ด เพื่อเพิ่มความใช้งานได้จริง
  • ตัวจำลอง WASM: เครื่องมือ WebAssembly ในโฟลเดอร์ "sim_display" ที่ช่วยให้ดีบักการจำลองได้ทั้งบน PC และเว็บ โดยไม่ต้องใช้ฮาร์ดแวร์
  • คำอธิบายรายละเอียดของแต่ละโฟลเดอร์จะอยู่ในไฟล์ README ของแต่ละโฟลเดอร์

ข้อมูลเพิ่มเติม

  • flip-card เหมาะสำหรับใช้เป็นแหล่งเรียนรู้และอ้างอิงด้านเทคโนโลยีฝังตัวล่าสุดหลากหลายด้าน เช่น การนำชิปการจำลองการไหลไปใช้จริง ประสบการณ์ออกแบบฮาร์ดแวร์วงจร การดีบักการจำลองด้วย WebAssembly และการออกแบบบอร์ดชาร์จใหม่ได้
  • เป็นโครงการที่ได้รับความสนใจจากชุมชนโอเพ่นซอร์สในฐานะ กรณีอ้างอิง และคลังความรู้การออกแบบ

1 ความคิดเห็น

 
GN⁺ 2025-08-09
ความคิดเห็นจาก Hacker News
  • ข้อดีของการใส่น้ำบางส่วนในภาชนะเปล่าขนาดนามบัตรคือสามารถทำการเคลื่อนไหวของของไหลให้สมจริงขึ้นได้ และทำได้ไม่แพง สร้างง่าย และดีบักสะดวก ข้อเสียคือเสี่ยงที่ก้นจะเปียกเมื่อผู้ใช้เดินนั่ง และความรู้สึกภูมิใจเมื่อต้องทำงานที่ยากและท้าทายอาจลดลง

    • ที่ขนาดนามบัตร การเคลื่อนไหวของของไหลจะเร็วเกินไป
  • พอร์ต USB-C ที่ปลายบอร์ดดูเท่มาก คิดว่าถ้าคนรู้ว่าพวกเขาสามารถติดตั้งพอร์ต USB-C ลงบนบอร์ดได้โดยไม่ต้องใช้ชิ้นส่วนเสริมหรือบัดกรีเพิ่มแล้ว คาดว่าแนวคิดแบบนี้จะถูกนำเสนอมากขึ้นเรื่อยๆ

  • นามบัตรตัวนี้สวยมาก แต่ความรู้สึกคือราคาอาจค่อนข้างสูงเกินไปสำหรับการแจก เคยเจอคนที่เคยทำนามบัตรฮาร์ดแวร์มาก่อน ความทรงจำไม่ค่อยชัดนัก แต่ชิ้นงานของเขาก็ไม่สวยสักเท่านี้ การ์ดของเขาถูกขูดขีดเสียหายไปมาก และหลังจากให้ไปแล้วเขาขอคืนอีก ทำให้รู้สึกแปลกไปหน่อย

    • ผมคงไม่ได้แจกให้ทุกคน แต่ผู้ที่ได้รับน่าจะจำได้ตลอดไป คงใส่มันไว้ที่ลิ้นชักโต๊ะแล้วค่อยๆ จับจ้องเล่นไปเรื่อยๆ จนจำอีเมลหรือ LinkedIn ของคนนั้นได้เอง
    • นามบัตรฮาร์ดแวร์ประเภทนี้มักถูกนำไปใช้เป็นโปรเจกต์พอร์ตโฟลิโอ ช่วยดึงดูดการเข้าชมเว็บไซต์ และถ้าคุณเป็นฟรีแลนซ์หรือตัวเองกำลังหางาน ก็ควรผลิตจำนวนเล็กน้อยเพื่อแจกในโอกาสพิเศษกับลูกค้าเป้าหมายหรือโอกาสหางาน
    • ถ้าขอให้คืนนามบัตรนี้แล้ว มันก็ไม่ใช่นามบัตรอีกต่อไป แต่เป็นของเล่นไปเสียแล้ว
    • สำหรับบางคน คงไม่จำเป็นต้องให้เขานามบัตรแบบนี้ก็ได้ ถ้ากำลังหางาน การเชื่อมโยงโปรเจกต์นี้ไปยังบล็อกโพสต์หรือเรซูเม่/เว็บไซต์ก็สร้างความประทับใจได้มากแล้ว
    • เคยคาดหวังว่าจะมีโหมดแสดง QR code หรือปุ่มกดบ้าง
  • หากอยากรู้ว่า PCB layout หรือ schematic มีลักษณะอย่างไร สามารถดูได้โดยตรงผ่าน online viewer ที่มีไฟล์ KiCad มีคำถามถึงผู้สร้างการ์ด (phirks?) ว่าเคยคิดเรื่องการแสดงข้อมูลที่ซับซ้อนขึ้น หรือข้อความผ่าน LED matrix บ้างแล้วหรือยัง ถ้าใช้ปุ่มสัมผัส การควบคุมจะทำได้โดยแทบไม่เพิ่มต้นทุนใน BOM (Bill of Materials) อย่างไรก็ตาม สถานะปัจจุบันก็ยังเท่มากอยู่แล้ว

    • เคยคิดจะเพิ่มเกมแบบ Tetris ด้วย accelerometer แผนคือทำต่อหลังจากเสร็จงานหางานก่อน โค้ดสำหรับแสดงตัวเลขเขียนเสร็จครบแล้ว แต่ยังไม่ได้ใช้งาน ข้อความไม่ค่อยเวิร์กอย่างที่คิด ต้องมีพื้นที่มากกว่าเดิม และเมื่อ LED มีระยะห่างมากแบบนี้ พิกเซลฟอนต์เล็กๆ ก็ไม่สวย ข้อความเลื่อนน่าจะใช้งานได้ แต่ยังไม่มีโอกาสลงรายละเอียดถึงระดับนั้น เคยลองแสดง QR code แล้วการสแกนไม่ค่อยเวิร์ค เพราะยึดหลักว่าไม่ใช้ปุ่ม หากจะใช้คลิกหรือดับเบิลคลิกจาก accelerometer ต่อก็อาจลองพิจารณาเพิ่ม หากใครมีอยาก fork, contribute, เปิด issue มาช่วยได้ยินดี และผมจะพยายามดูแลรักษาได้ดี
  • ที่จีนมีสินค้าประเภท “digital hourglass” (นาฬิกาทรายดิจิทัล) ที่ทำแบบนี้กันมานานแล้ว สำหรับ Acorn Archimedes มีเกมเต็มรูปแบบชื่อ Cataclysm ที่ทำบนแนวคิดนี้ และสามารถดูได้จาก วิดีโอ YouTube แม้จะผ่านมาหลายปี Xbox 360 ก็มีการรีเมค และตอนที่ออกมากับเครื่องนั้นดูน่าประทับใจมาก

    • เกมจำลองของไหลที่เท่และมีสไตล์เรโทรมาก ใน Oxygen Not Included มีการจำลองของไหลและก๊าซหลายชนิด พร้อมโหมด sandbox และ debug tools โดยเฉพาะสิ่งที่ชอบคือการแสดงการโต้ตอบของวัสดุหลายประเภทแบบดูเป็นภาพ มี วิดีโอเกมเพลย์
    • อยากทราบว่ามีอะไรคล้าย Digital Disco Ball หรือไม่
  • ถ้าคุณชอบโปรเจกต์แนวนี้ แนะนำแรงๆ ให้ลองดู fluid simulation pendant ของ mitxela งานทั้งหมดของเขาชวนให้ทึ่ง น่ารู้ และสนุกเสมอ เขาแชร์ข้อมูลได้อย่างเปิดเผย วิดีโอและบทความมีคุณภาพสูง และมีเสียงเล่าไพเราะมาก ทำให้ชอบมาก ควรมีคนแบบนี้เพิ่มมากขึ้นอีก แนะนำให้ชมวิดีโอและบทความของเขา

    • รูปทรงกลมเข้าเนื้อกับฟิสิกส์ของของไหลได้ดีกว่า
    • การออกแบบโดยรวมถูกใจมาก แต่ราคา £1200 อาจค่อนข้างสูง
  • การออกแบบมีความงามเชิงศิลปะ ส่วนตัวผมเห็นชั้นซิลค์ที่ซ้อนทับกันอยู่ และคิดว่าถ้าจัดระเบียบจุดนั้นใหม่หรือเอา designator (รหัสชิ้นส่วน) ออกทั้งหมดก็จะดีกว่า อยากลองใช้ฟอนต์ข้อความด้านหลังที่มีความเล่นสนุกมากขึ้น แม้จะขึ้นอยู่กับรสนิยมแต่ละคน โดยรวมเป็นโปรเจกต์ที่ทำอย่างดีมาก ช่วงนี้ผมกำลังทำงาน LED กับ RP2350 มาก คิดว่าจะลองรันโค้ดนี้บนเพนเดนต์ที่กำลังออกแบบเองได้ไหม

  • คิดนอกประเด็นไปหน่อยว่าอยากเรียนการเขียนโค้ดฟิสิกส์ซิมูเลชันจากจุดไหนกันดี เคยดูโปรเจกต์ taichi_mpm มาหลายปีมาแล้ว แม้จะเป็นแค่ 88 บรรทัด C++ ก็รู้สึกยากมาก เคยมีประสบการณ์พัฒนาอย่างง่ายๆ เรื่องคอมไพเลอร์หรือฐานข้อมูลมาก่อน แต่ส่วนฟิสิกส์ซิมูเลชันแทบเป็นจุดเริ่มต้นเท่านั้น

    • แนะนำให้เริ่มจาก "numerical methods" และ "computational physics" ฟิสิกส์ซิมูเลชันมีขอบเขตกว้างมาก วิธีจำลองของไหลกับการคำนวณวงโคจรของดาวเคราะห์ต่างกันค่อนข้างมาก แต่พื้นฐานร่วมกันคือการอินทิกรัลเชิงตัวเลขตัวแปรต่างๆ โดยอาศัยสมการเชิงอนุพันธ์และพีชคณิตเชิงเส้น อย่างพื้นฐานมี Euler's method ซึ่งอัปเดตค่าอัตราเร่ง ความเร็ว และตำแหน่งในแต่ละสเต็ป แต่ความคลาดเคลื่อนสูงมาก จึงนิยมใช้วิธีขั้นสูงอย่าง Runge Kutta ในทางปฏิบัติ ถ้าระบบฟิสิกส์มีคุณสมบัติที่ต้องคงไว้ (เช่นการอนุรักษ์พลังงาน) ก็มีวิธีเชิงตัวเลขที่รับประกันได้ นอกจากนี้ความแตกต่างระหว่าง particle simulation กับ grid simulation ก็ชัดมาก ทำให้ประเด็นนี้เชื่อมโยงกับแก่นฟิสิกส์ลึกๆ ได้ จบด้วยประโยคคลาสสิกว่า 'ทุกอย่างล้วนเป็นฟิสิกส์'
    • การจำลอง rigid body (rigid body) ง่ายกว่ามาก เอกสารการบรรยาย SIGGRAPH 2001 Rigid Body Simulation ค่อนข้างยาก แต่ช่วยให้อ่านตั้งแต่ความเข้าใจคณิตศาสตร์จนถึงกระบวนการทั้งหมดได้
    • บทเรียนจากแพลตฟอร์มเกมที่ลดประสิทธิภาพลงโดยจงใจอย่าง pico-8 ช่วยได้มาก ตัวอย่างเช่นฟิสิกส์ง่ายๆ แบบ Mario ที่อัปเดตตำแหน่ง x/y และ dx/dy (ความเร็ว) ทุกเฟรม เมื่อผู้เล่นกดปุ่ม jump ให้เข้าโหมด 'jump' และตั้ง dy=1 แล้วคูณ dy ด้วย 0.9 ทุกเฟรม เมื่อ dy <= 0 ให้เปลี่ยนเป็น 'falling' และคูณ dy ด้วย 1.1 จนถึง terminal velocity แค่รู้พื้นฐานเหล่านี้ก็สามารถทำเอฟเฟกต์ 'falling sand' แบบง่ายได้ไม่ยาก
    • ฟิสิกส์ซิมูเลชันส่วนใหญ่เป็นแบบ particle-based หรือ equation-integration-based ในทางปฏิบัติทั้งสองแบบผสมกันที่จุดของ discretization และการคำนวณเชิงตัวเลข หนังสือ "Numerical Recipes" เป็นตำราครบรสสำหรับนักฟิสิกส์ และ "Computer Simulation of Liquids" (Allen) ก็เป็นเล่มเริ่มต้นที่ดี ที่พูดถึงในที่นี้คือแนวทางที่มุ่งความแม่นยำทางฟิสิกส์จริง แต่ในเกมดิไซน์ เราสามารถใช้ heuristic ต่างๆ ที่ให้ความรู้สึกเหมือนฟิสิกส์จริงได้
    • สำหรับด้านสถิติฟิสิกส์ แนะนำคอร์ส Coursera Statistical Mechanics มีตัวอย่าง Python อยู่มากมาย วิดีโอ tenMinutePhysics ก็เหมาะมากสำหรับผู้เริ่มต้น
  • ตัวอย่างเทคโนโลยียุคใหม่ในช่วงปี 2009 สามารถดูได้ ที่นี่

  • อยากได้ข้อมูลรายละเอียดมากขึ้นเกี่ยวกับวิธีการผลิต เพราะคิดว่าการประกอบแบบ surface-mount อาจจ้างบริษัทภายนอกทำ

    • การผลิตอุปกรณ์อิเล็กทรอนิกส์ตอนนี้ทำได้ค่อนข้างถูกและง่ายกว่าที่คิด วงจรและ layout ออกแบบด้วย KiCAD ซึ่งเป็นเครื่องมือโอเพ่นซอร์ส และคาดว่าอาจสั่งผลิตที่โรงงาน PCB ต่างประเทศได้ ซึ่งความซับซ้อนระดับนี้จัดการได้ไม่ยาก โดยใช้เงินไม่กี่ร้อยดอลลาร์ก็สามารถทำและจัดส่งได้ภายในหนึ่งเดือน หากประกอบ SMD (surface-mount components) ด้วยมือ จะต้องทา solder paste วางชิ้นส่วนแล้วให้ความร้อนทั้งแผ่นเพื่อบัดกรี แต่ด้วย LED ที่มีมากขนาดนี้ การประกอบมือจะยุ่งยากมาก
    • ผมเคยทำงานกับโรงงานประกอบจริง (มีไฟล์ centroid บอกตำแหน่งชิ้นส่วน) แต่การประกอบชิ้นส่วนแบบนี้ทำมือได้เช่นกัน ในบางครั้งก็รู้สึกว่ามันยังง่ายกว่าแบบ through-hole เนื่องจากไม่ต้องคอยกลับบอร์ดตลอดเวลา อย่างไรก็ดี โอกาส 99.9% ว่าจะผลิตในระดับของ JLC หรือ PCBWay
    • แผ่น PCB แบบนี้สามารถผลิตเป็นล็อตเล็กได้ที่ JLCPCB ในต้นทุนหลักไม่กี่ดอลลาร์ แต่ LED ของตัวอย่างนี้ดูมีคุณภาพดีและบางชิ้นส่วนอาจมีต้นทุนสูง
    • อยากรู้ว่าการจัดเรียง LED อย่างแม่นยำเช่นนี้ทำอย่างไร ไม่รู้ว่าปรับผ่านกริดไกด์วัสดุคล้ายซิลิโคนเอง หรือให้เครื่องจักร pick-and-place วางอย่างอัตโนมัติด้วยความแม่นยำ