มาสร้างเครื่อง Scan Film กัน

ย้อนกลับไปเมื่อสักเกือบ 10 ปี ก่อน ผมชอบถ่ายภาพมาก โดยเฉพาะภาพแนวสารคดี และ Street ประกอบกับการอยู่กับสมาชิกชมรมถ่ายภาพกลุ่มหมีควายมาอย่างยาวนาน ทำให้หลงใหลในการถ่ายภาพขาวดำ แบบถอนตัวไม่ขึ้น

โดยเฉพาะอย่างยิ่งการถ่ายภาพด้วยกล้องฟิล์ม ซึ่งในสมัยนั้นราคาฟิล์มไม่แพงมาก ถูกกว่าตอนนี้ราวๆ 5 เท่าเป็นอย่างน้อย การถ่ายภาพด้วยกล้องฟิล์มจึงเป็นงานอดิเรกที่โปรดปราน

เมื่อถ่ายภาพด้วยกล้องฟิล์มแล้ว สิ่งที่ผมหลงใหลไม่แพ้กันคือการได้ล้างฟิล์มเอง การเขย่าขวดน้ำยาล้างฟิล์ม ลุ้นว่าภาพที่ถ่ายมาจะเสียหรือไม่ จะชัดหรือไม่ชัด เป็นสเน่ห์ที่หาอะไรมาแทนได้ยากมากๆ สมัยนั้นเครื่องไม้เครื่องมือก็พอมีครบถ้วน เครื่อง Scanfilm ก็มีพร้อมใช้งาน แต่พอหยุดงานอดิเรกนี้ด้วยความจำเป็นในชีวิตไปหลายสิบปี กลับมาค้นดูอุปกรณ์เก่าๆ อีกครั้งก็พอว่ามันใช้งานไม่ได้กันหมดแล้ว

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

ด้วยความห้าวหาญ ที่แถวบ้านเรียกว่า “เอิด” ถึงเพียงนี้แล้ว จึงขอบันทึกเส้นทาง การออกแบบเครื่อง Scan film ไว้ใน blog นี้แล้วกันครับ


04/12/2025 – เริ่มต้นวางแผน

เวลาต้องเริ่ม Project ใหม่ๆ แบบนี้ผมจะชอบอดนึกถึง มาร์ค วัทนีย์ ตัวละครโปรดในเรื่อง the martian ไม่ได้ทุกที ผมชอบตอนที่มาร์ครู้ว่าตัวเองติดอยู่บนดาวอังคาร แล้วพยามประเมินสถานการณ์ และ ทรัพยากรที่ตัวเองมี ว่าจะเอายังไงต่อดี เป็นซีนโปรดมากๆ ซีนหนึ่งของหนังเรื่องนี้ เพราะฉะนั้น เราจะมาเริ่มต้นกันแบบนั้นครับ

อุปกรณ์ที่พอมี

  • ผมมีครื่องพิมพ์ 3 มิติ Elegoo Centauri carbon และ Creality ender 3 V3 KE เป็นเครื่องสำรอง
  • พอจะมีความสามารถในการเขียนโปรแกรมที่หลากหลายภาษาอยู่บ้าง
  • มี Rasbery PI 5 รุ่น Ram 16 Gb
  • มี Rasbery Pi HQ camera พร้อมเลนส์ C mount ขนาด 16 mm จะทดลองใช้ตัวนี้ไปก่อน ถ้าไม่ได้ดั่งใจจะหา adaptor แปลงไปใช้ lens macro ของ nikon f ที่ผมมีแทน
  • มี arduino บอร์ด แต่ยังขาดพวก โมดูลในการขับเคลื่อน

Concept ของเครื่อง Scan film นี้

ผมอยากได้เครื่อง scan film ที่ผู้ใช้งานใส่ฟิล์ม กด start เครื่องมันก็จะเดินฟิล์มอัตโนมัติ และ ก็ scan เก็บเอาไว้ใน SSD จากนั้นค่อยเอาภาพไปจัดการต่อ นี่คือ flow ที่ผมเคยใช้กับเครื่อง pakon F135 ก่อนมันจะเจ๊งไป

แผน 5 ขั้น

  1. ขั้นที่ 1 ทดสอบคุณภาพภาพจาก Pi5 + HQ Camera (Critical Validation Stage)
    ขั้นตอนนี้เราจะต้องพิสูจน์ว่า Pi5 และ กล้องสามารถถ่ายภาพออกมาได้ จะรู้ความคมชัดของการถ่ายบน sensor ขนาด 12bit ที่ 12 ล้านพิกเซล ในเรื่องของ Noise / Dynamic range / Color response ความสม่ำเสมอของ backlight (flat exposure)

    เพราะภาพที่ถ่ายได้จะถูกส่งไปประมวลผล Convert เป็น tiff raw file 16 bit กลับสี negative เป็น positive ปรับ wb เบื้องต้น ใน process นี้

    นอกจากนี้ผมอยากทดสอบ Distortion / Sharpness / Vignetting ของเลนส์ด้วย โดยการพิมพ์กระดาษที่มีเส้น grid หรืออะไรก็ตามแต่

    เพราะ process นี้จะทำให้เรารู้ได้ว่า hardware ของเรามีปัญหามากน้อยแค่ไหน ระยะ focus ที่ดีเป็นยังไง ใช้งานได้จริงหรือไม่ ถ้าไม่ผ่านเราจะได้แก้ไขโดยไม่เสียหายมากนัก
  2. ขั้นที่ 2 ทำ Web UI รุ่นแรก (Basic, No Arduino, Manual Scan)
    ผมไม่คิดจะใช้จอมาติดตรงเครื่อง เพราะอยากให้เครื่อง compact ที่สุด และ ประหยัดที่สุด แต่ flow ที่วางไว้คือ ผู้ใช้งานกรอก JOB ID เช่น F0001 จากนั้นส่ฟิล์มเข้าเครื่องผมอยากให้ผู้ใช้งานเห็นภาพ ว่าฟิล์มอยู่ในตำแหน่งที่ถูกต้องหรือไม่ จึงตั้งใจวาดเฟรมสีเขียมไว้ตรงกลาง ให้ตรงกับภาพแรกของ negative

    ผู้ใช้งานแค่กดเลื่อนเข้า เลื่อนออก ให้ฟิล์มอยู่ตรงกลาง การกดเลื่อนเข้าเลื่อนออก จะกดได้จากหน้าจอมือถือ เพราะเราใช้ web ui จากนั้นคำสั่งจะถูกส่งไปที่บอร์ด arduino เพื่อสั่งมอเตอร์ให้เลื่อนฟิล์ม เมื่อ frame แรกเข้ากรอบแล้ว ก็พร้อมกด start แล้วกระบวนการทั้งหมดจะเป็น auto!

    ขั้นที่ 2 นี้เราจึงทำขึ้นมาเพื่อทดสอบกระบวนการ Web ui, Job id เราจะไม่ยุ่งกับ arduino ก่อน เราจะทดลองเลื่อนฟิล์มด้วยมือ ดูความเที่ยงตรงของคุณภาพ และ การ save ภาพแบบเป็น batch ส่งไปยังที่จัดเก็บปลายทาง เราจะคาดหวังผลลัพธ์ไว้ว่าเราจะเห็นไฟล์ลักษณะนี้ใน folder

    F00001_0001.tif
    F00001_0002.tif

  3. ขั้นที่ 3 เริ่มงาน Arduino + Mechanics แยกจาก Pi
    สิ่งที่คาดว่าจะทำในขั้นนี้
    – ออกแบบรางฟิล์ม + roller + belt
    – ติดตั้งมอเตอร์ NEMA17 + driver
    – ทดสอบเลื่อนฟิล์มไปหน้า/หลังแบบ manual
    – ปรับแรงกด roller
    – ตรวจสอบฟิล์ม “คด / ส่าย / ไม่เดินตรง”
    – เล่นกับ IR sensor จับ perforation ให้แม่นที่สุด
    หรือเราจะทำส่วนของกลไกการเลื่อนฟิล์มให้แม่นยำที่สุด คิดว่าน่าจะใช้เวลานานที่สุดในขั้นตอนนี้เช่นกันครับ
  4. ขั้นที่ 4 เชื่อม Pi + Arduino (Manual motor control in Web UI)
    เราจะทดลองสั่งงาน arduino จาก rasberry pi ผ่าน web ui ทดสอบการเดินฟิล์ม ความหน่วง ความ delay ที่เกิดขึ้น

    จนเรามั่นใจได้ว่ากระบวนการ auto scan ทำงานได้อย่างสมบูรณ์ในขั้นตอนนี้
  5. ขั้นที่ 5 Final Integration + Case Design
    เราจะออกแบบ case ของเครื่องการจัดเก็บแผงวงจร สายไฟ ปรับ web ui ให้สมบูรณ์ครับ เพื่อให้เครื่องของเราน่าใช้งาน

ทั้งหมดเป็นขั้นตอนที่ผมวางแผนจะดำเนินการ project นี้อาจใช้เวลายาวนานเป็นหลักปี หรือ อาจจะเร็วกว่านั้น ขึ้นกับทุนวิจัย และ เวลาว่างจากการทำงาน

เพื่อเป้าหมายคือการได้กลับมาสนุกกับสิ่งที่ตัวเองรัก อย่างการถ่ายภาพด้วยกล้องฟิล์มอีกครั้งครับ

05/12/2025 – เริ่มขั้นตอนที่ 1

อย่างที่วางแผนกันไว้ตอนต้น ว่าขั้นตอนที่ 1 เราจะทำการเชื่อมต่อกับ PI ให้รู้เรื่อง ไม่ใช่วางแผนไว้ดิบดี แต่พอลงมือจริง PI ที่เป็นสมองสำคัญของ Project ใช้งานไม่ได้ ไม่ยอมให้เราเชื่อมต่อ

หรือ PI โอเคแต่โมดูลกล้องไม่สามารถใช้งานได้ หรือ ถ้าใช้งานได้คุณภาพของภาพก็ไม่โอเคเท่าที่ควร เพราะฉะนั้นวันนี้ผมจึงตั้งใจทำง่ายๆที่สุด ด้วยการตั้งค่า PI ให้ PI ต่อกล้องได้ และ ถ่ายภาพแรกออกมาได้เพื่อดูคุณภาพของ File

และหลังจากการทดลองไปครึ่งวัน อันที่จริงแล้ว ไม่น่าจะนานขนาดนั้น แต่เสียเวลาไปกับเรื่องอะไรก็ไม่รู้ อย่างเช่น Write OS ลง SD card แล้วลืมเอามาใส่ใน PI นั่งมองหน้าจอตั้งนานสองนานว่าทำไมไม่ Boot

หรือต่อสายแพกล้องเข้า DSI ว่าต้องหันทองแดงด้านไหน ทั้งฝั่งบอร์ดและฝั่งกล้อง เล่นเอาเสียเวลาไปเปล่าๆเหมือนกัน

อีกข้อผิดพลาดที่อยากบันทึกไว้ ผมเอาเลนส์ต่อเข้ากับโมดูลกล้องตรงๆ ในตอนแรก พอภาพขึ้น หมุนโฟกัสเท่าไหร่ก็หาไม่เจอ แอบใจเสียว่ากล้องมันเสียหรือเปล่านะ พอลองเอากล่องกล้องกับเลนส์มาอ่านดีๆ ถึงได้เจอปัญหา

เพราะกล้องเป็น Mount CS ส่วนเลนส์เป็น Mount C แม้จะใส่กันได้ แต่โฟกัสยังไงก็ไม่เข้า โชคดีที่มี Adapter C to CS เป็นแหวนเล็กๆ แถมมาให้

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

อันนี้ตอนนั่งรอ PI BOOT อยู่นานสองนาน ว่าทำไมไม่ยอม Boot สักที กว่าจะนึกได้ว่ายังไม่ได้ใส่ SD Card ก็เสียเวลาเกือบชั่วโมง
อันนี้ตอนนั่งรอ PI BOOT อยู่นานสองนาน ว่าทำไมไม่ยอม Boot สักที กว่าจะนึกได้ว่ายังไม่ได้ใส่ SD Card ก็เสียเวลาเกือบชั่วโมง
C to CS mount Adapter
C to CS mount Adapter source : https://www.lensation.de/product/ADCTCS/
ตำแหน่งการเสียบสายแพระหว่าง pi กับ hq camera ที่ถูกต้อง
ตำแหน่งการเสียบสายแพระหว่าง pi กับ hq camera ที่ถูกต้อง source : https://forums.raspberrypi.com/viewtopic.php?t=362533
ภาพแรกที่เราสั่งให้ Pi ถ่ายออกมา
ภาพแรกที่เราสั่งให้ Pi ถ่ายออกมา

บทสรุป

สำหรับการทดลองเล็กๆ วันนี้เราประสบความสำเร็จในการเชื่อมต่อกล้อง สั่งให้ PI ถ่ายภาพได้ตามความต้องการ ผมได้ทดสอบความคมชัดของภาพ ความผิดเพี้ยนของเลนส์ ขอบดำของภาพ ตลอดจนสั่งถ่ายมาเป็นไฟล์ RAW ได้ผลลัพธ์โดยรวมที่น่าพอใจ คิดว่าเลนส์ 16MM ตัวนี้น่าจะใช้งานได้ในระดับที่ดีสำหรับ Project นี้

แผนต่อไป

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

อาจทำปุ่มถ่ายภาพจากหน้าเว็บ หรือ กลับ invert negative เพื่อดู preview สดของภาพโดยไม่ต้องถ่ายถ้าสามารถทำได้

อ้างอิง

https://www.thingiverse.com/thing:4672950

https://www.thingiverse.com/thing:5179032/files