เชื่อมต่อ Arduino ของคุณกับ Thorlabs PM101
ในโปรเจคนี้ เราจะเชื่อม Thorlabs PM101 เข้ากับ Arduino ผ่านพอร์ตอนุกรม เพื่อให้น้องสามารถอ่านค่าที่วัดได้เลย ตัวอย่างการใช้งานก็เช่น แสดงค่าบน Arduino แล้วทำเครื่องวัดกำลังแสงแบบพกพาใช้เองเลย!
ภาพรวมโปรเจค
โปรเจค "Opto-Meter" นี้ คือการย้ายอุปกรณ์ในแล็บที่ต้องอยู่ติดโต๊ะ มาเป็น เครื่องมือวัดแบบพกพา (Standalone Portable Instrumentation) โดยการเชื่อมต่อเซนเซอร์วัดกำลังแสงระดับมืออาชีพอย่าง Thorlabs PM101 เข้ากับ Arduino ทำให้เราวัดกำลังแสงเลเซอร์ได้อย่างแม่นยำสูง โดยไม่ต้องพึ่งพีซีเลย สิ่งสำคัญคือการทำ การแปลงสัญญาณระดับฮาร์ดแวร์ (UART Translation) และ การสื่อสารด้วยคำสั่ง SCPI (SCPI Command Forensics) เพื่อสร้างสะพานเชื่อมระหว่างเซนเซอร์ระดับอุตสาหกรรมกับระบบโอเพ่นซอร์ส
ลงลึกเรื่องเทคนิค
- การวิเคราะห์อินเตอร์เฟซฮาร์ดแวร์ (RS232 vs. UART):
- การเปลี่ยนจาก Bipolar เป็น Unipolar: โดยปกติ PM101 จะใช้การสื่อสารแบบ RS232 ที่มีแรงดันสูง (+/- 5V ถึง +/- 12V) เพื่อให้เข้ากับ Arduino ได้ เราต้องสลับสวิตช์บนแผงวงจรด้านในให้สัญญาณไหลผ่านเส้นทาง UART แบบ TTL (0V ถึง 5V) แทน การปรับแต่งขั้นตอนนี้สำคัญมาก เพราะป้องกันไม่ให้แรงดันสูงทำลายชิป ATmega328P ของเรา
- การแมปขาของ Sub-D 15 พิน: โปรเจคนี้ระบุขา TxD, RxD และ GND ที่เจาะจงบนคอนเนคเตอร์ 15 พินของ PM101 เพื่อให้มั่นใจว่าสัญญาณจะส่งได้สมบูรณ์สำหรับการใช้งานในแล็บ
- การใช้งานโปรโตคอล SCPI:
- การส่งคำสั่งมาตรฐาน: อุปกรณ์ของ Thorlabs ใช้โปรโตคอล Standard Commands for Programmable Instruments (SCPI) เฟิร์มแวร์บน Arduino จะส่งสตริงคำสั่งข้อความธรรมดา (เช่น
MEAS:POW?) และรอรับคำตอบในรูปแบบสัญกรณ์วิทยาศาสตร์ - การแยกสตริงสัญกรณ์วิทยาศาสตร์: ค่ากำลังแสงมักจะถูกส่งกลับมาในรูปแบบเลขยกกำลัง (เช่น
2.45e-04) โปรเจคนี้จะแสดงวิธีแยกสตริงเหล่านี้ให้เป็นตัวแปรทศนิยม เพื่อใช้คำนวณและแสดงผลแบบเรียลไทม์
- การส่งคำสั่งมาตรฐาน: อุปกรณ์ของ Thorlabs ใช้โปรโตคอล Standard Commands for Programmable Instruments (SCPI) เฟิร์มแวร์บน Arduino จะส่งสตริงคำสั่งข้อความธรรมดา (เช่น
- การสร้างสะพาน Software Serial แบบอะซิงโครนัส:
- การจัดการทรัพยากร: โดยการใช้ไลบรารี
SoftwareSerialบนพิน 10 และ 11 โปรเจคนี้จะสงวน UART หลักของฮาร์ดแวร์ (พิน 0/1) ไว้สำหรับดีบักและบันทึกข้อมูลไปยังพีซี สิ่งนี้สร้างสถาปัตยกรรม "Dual-Bus" ที่ Arduino ทำหน้าที่เป็นสะพานส่งผ่านข้อมูลอัจฉริยะ
- การจัดการทรัพยากร: โดยการใช้ไลบรารี
ขั้นตอนวิศวกรรมและการลงมือทำ
ขั้นตอนที่ 1: เตรียมอุปกรณ์
ต้องปรับโหมดการทำงานของ PM101 จาก RS232 (±5 V) เป็น UART ก่อน
- คลายสกรูที่ยึดคอนเนคเตอร์ 15pin sub-d ออก
- คลายสกรู TX9 ทั้ง 4 ตัวที่แผงด้านหน้าของเซนเซอร์
- ดึงแผงวงจร (PCB) ออกมา
- สลับสวิตช์ทั้งสองจากตำแหน่ง PC RS232 Operation (ค่าเริ่มต้น - สวิตช์ทั้งคู่อยู่ตำแหน่งบน) ไปที่ตำแหน่ง ± 5 V level UART (สวิตช์ทั้งคู่อยู่ตำแหน่งล่าง)
รายละเอียดเพิ่มเติมเกี่ยวกับการสลับไปใช้ UART ดูได้ในคู่มือ "Write your own application" บทที่ 2.1
- ขั้นตอนการแปลงระดับสัญญาณแบบละเอียด:
- เปิดฝา: ใช้ไขควง Torx หมุนสกรู TX9 เพื่อเปิดฝาและเข้าถึงแผงวงจรควบคุม SCPI ด้านใน
- สลับสวิตช์ลอจิก: เลื่อนสวิตช์ DIP ภายในไปที่ตำแหน่ง UART เพื่อปรับแต่งสเตจเอาต์พุตของทรานซีฟเวอร์
- ปรับ Baud Rate: ตั้งค่าให้ PM101 ใช้ Baud Rate เดียวกับ Arduino (เช่น 9600 หรือ 115200) โดยใช้เครื่องมือ Thorlabs Instrument Communicator
ขั้นตอนที่ 2: ติดตั้งและตั้งค่า
ตั้งค่า Baud Rate ของ PM101 ให้ตรงกับที่ Arduino Uno รองรับ โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
- ใช้ฟังก์ชัน "Set Baudrate" ในไดรเวอร์ TLPM
- ส่งคำสั่ง SCPI "SYST:SEN:TRAN:BAUD" ผ่าน Thorlabs Instrument Communicator หรือ Thorlabs OPM Terminal
ขั้นตอนที่ 3: ประกอบวงจร
เชื่อมต่อขาทั้งสี่ของ Thorlabs PM101 เข้ากับบอร์ด Arduino Uno ตามแผนภาพ layout.png ที่แนบมากับสเก็ตช์ จัดไปวัยรุ่น!
| PM101 Pin | Arduino Uno Pin | | TxD | Pin 10 | | RxD | Pin 11 | | VxD | 5V | | GND | GND |

- จัดการเรื่องไฟ (Power Management):
- PM101 ตัวนี้เราเลี้ยงไฟตรงจากขา 5V ของ Arduino เลยจ้า ถ้าอยากเอาไปใช้ข้างนอกแบบพกพา ก็แค่เสริมด้วย boost-converter กับแบต Li-Po เข้าไปให้ Arduino อีกที รับรองได้เครื่องมือวิทยาศาสตร์แบบพกพาส่วนตัวเลย
- เพิ่มจอให้มันดูเท่ (Handheld HMI Integration):
- แม้ว่าตัว bridge พื้นฐานจะส่งข้อมูลกลับมาแสดงบน terminal ได้ แต่โครงสร้างมันถูกออกแบบมาให้ ต่อ OLED/LCD เพิ่มได้สบายๆ เลยนะ ใส่จอเข้าไปเมื่อไหร่ PM101 จากเซ็นเซอร์เงียบๆ จะกลายเป็นเครื่องวัดกำลังแบบพกพาเต็มตัวทันที แสดงหน่วย (วัตต์, dBm) แบบเรียลไทม์จัดเต็ม
ขั้นที่ 4: เอาโค้ดลงไปรัน (Load the code) อัพโหลดโค้ดจาก sketch นี้ลงบอร์ด Arduino ของน้องได้เลย อย่าลืมเช็คบอร์ดกับพอร์ตนะ ไม่งั้น error แน่
สรุปสั้นๆ
Opto-Meter โครงการนี้คือพิมพ์เขียวสำหรับ การแฮกเครื่องมือวิทยาศาสตร์ (Scientific Instrument Hacking) เลยนะพี่น้อง พอเราเข้าใจการแปลงสัญญาณจาก มาตรฐาน RS232 แบบลับเฉพาะ ในแล็บ มาเป็น ลอจิกแบบ UART Bridge แบบโอเพ่นซอร์ส แล้ว เราก็สามารถหยิบเซ็นเซอร์ระดับอุตสาหกรรมแพงๆ มาสร้างเป็นอุปกรณ์วัดแบบพกพาได้เองเลย สู้งานนะน้อง!
ความแม่นยำระดับวิทยาศาสตร์: เชื่อมมาตรฐานแล็บผ่านการวิเคราะห์ SCPI