บทความนี้เราจะมาเรียนรู้ว่าเราจะใช้งาน PicoScope ร่วมกับ LabVIEW ได้อย่างไร? ก่อนอื่นเลย เราต้องทำการดาวน์โหลดและติดตั้งซอฟต์แวร์ที่จำเป็นก่อน โดยจะมีทั้งหมด 5 ซอฟต์แวร์ ได้แก่
- PicoSDK: ประกอบไปด้วยไดรเวอร์และไลบรารี่ที่จำเป็นสำหรับการควบคุม PicoScope โดยเราสามารถดาวน์โหลดได้จาก https://www.picotech.com/downloads เลือกรุ่นของ PicoScope ที่เราต้องการใช้งานแล้วทำการดาวน์โหลดซอฟต์แวร์ PicoSDK รุ่น Stable 32 หรือ 64 บิท สำหรับระบบปฏิบัติการวินโดว์ส เมื่อดาวน์โหลดเสร็จแล้วให้ดับเบิ้ลคลิ๊กไฟล์ที่ดาวน์โหลดแล้วเลือก Install เพื่อทำการติดตั้งลงบนคอมพิวเตอร์ของเรา
- PicoSDK driver wrapper dll: เป็นไลบรารี่สำหรับเรียกใช้งานไดรเวอร์ PicoSDK สามารถดาวน์โหลดได้จาก https://github.com/picotech/picosdk-c-wrappers-binaries/archive/refs/heads/master.zip สำหรับวินโดว์ส 32 บิทให้นำไฟล์ในโฟลเดอร์ Windows 32-bit ไปไว้ที่ C:\Program Files (x86)\Pico Technology\SDK\lib และสำหรับวินโดว์ส 64 บิทให้นำไฟล์ในโฟลเดอร์ Windows 64-bit ไปไว้ที่ C:\Program Files\Pico Technology\SDK\lib
- ตัวอย่างการใช้งาน PicoScope กับ LabVIEW: สามารถดาวน์โหลดได้จาก https://github.com/picotech/picosdk-ni-labview-examples
- Example Dependencies: เป็น VI ที่เรียกใช้งานโดยไฟล์ตัวอย่างของ LabVIEW สามารถดาวน์โหลดได้จาก https://github.com/picotech/picosdk-ni-labview-shared เสร็จแล้วให้นำไฟล์ไปไว้ที่โฟลเดอร์ shared ในตัวอย่างของ LabVIEW ที่ดาวน์โหลดมาในข้อ 3
- เอกสารอ้างอิงในการเขียนโปรแกรมเพื่อควบคุม PicoScope รุ่นต่าง ๆ: สามารถดาวน์โหลดได้จาก https://www.picotech.com/library/documentation โดยทำการเลือกดาวน์โหลด ไฟล์พีดีเอฟสำหรับรุ่นที่เราต้องการใช้งาน โดยในบทความนี้เราจะอ้างอิงจากเอกสาร PicoScope 2000 Series (A API) Programmer’s Guide เพื่อใช้งานกับ PicoScope 2208B MSO โดยเอกสารจะอ้างอิงกับ API ภาษา C ซึ่งสามารถประยุกต์ใช้กับ LabVIEW และภาษาอื่น ๆ ได้เช่นเดียวกัน
โดยในบทความนี้เราจะอ้างอิงตัวอย่างในโฟลเดอร์ ps2000a เพื่อใช้กับ PicoScope 2208B MSO โดยเริ่มจาก PicoScope2000aExampleEts.vi ซึ่งเป็นการอ่านสัญญาณแบบ equivalent time sampling (ETS) ซึ่งช่วยให้เราสามารถอ่านสัญญาณที่มีรูปแบบซ้ำ ๆ ได้ที่ความถี่สูงกว่าแซมปลิ้งเรท โดย front panel และ block diagram ถูกแสดงในภาพด้านล่าง
- เปิดไฟล์ TDMS ที่ใช้สำหรับบันทึกคลื่นสัญญาณ
- เรียกใช้งาน PicoScope2000vi เพื่อนำ handle และ Device Info ไปใช้ในขั้นตอนถัดไป
- เมื่อเข้าไปในลูปใช้ PicoScope2000vi เพื่อทำการตั้งค่าช่องสัญญาณและทริกเกอร์
- ใช้ PicoScope2000vi เพื่อตั้งค่าการอ่านคลื่นสัญญาณแบบ ETS
- ใช้ vi และ PicoScope2000aSetDataBuffers.vi เพื่อสร้างบัฟเฟอร์สำหรับเก็บคลื่นสัญญาณไว้ในหน่วยความจำ
- เข้าไปในลูปชั้นใน vi เริ่มอ่านคลื่นสัญญาณตามขนาดที่ระบุไว้ แล้ว PicoScope2000aIsReady.vi จะทำการรอจนกระทั่งอ่านคลื่นสัญญาณเสร็จสิ้น
- PicoScope2000vi ทำการอ่านค่าในแกนเวลา PicoScope2000aGetValues.vi ทำการอ่านว่ามีคลื่นสัญญาณกี่จุด?
- PicoScope2000aGetTimebasevi ทำการอ่านคุณสมบัติของคลื่นสัญญาณ PicoReadPicoMultiBuffers.vi ทำการอ่านค่าในบัฟเฟอร์ออกมาแล้วแปลงค่าจากข้อมูลดิบเป็นเลขทศนิยมด้วย PicoScopeAdcToVolts.vi แล้วแสดงผล
- ทำการบันทึกค่าข้อมูลดิบลงไฟล์ TDMS
- เมื่อหยุดทำงาน vi จะทำการเคลียร์บัฟเฟอร์ PicoScope2000aClose.vi หยุดทำการติดต่อกับ PicoScope และปิดไฟล์ TDMS
อีกตัวอย่างที่เราจะเรียนรู้คือ PicoScope2000aExampleAWG.vi ซึ่งเป็นตัวอย่างในการสร้างสัญญาณโดยใช้ฟังค์ชัน AWG โดย front panel และ block diagram ถูกแสดงในภาพด้านล่าง
- เมื่อเริ่มต้นการทำงาน มีการเรียกใช้งาน PicoScope2000vi เพื่อนำ handle และ Device Info ไปใช้ในขั้นตอนถัดไป
- เข้าไปในส่วนของลูป มีการเรียกใช้ PicoScope2000vi เพื่อควบคุม AWG โดยทำการป้อนพารามิเตอร์ Standard Waveform Settings (การตั้งค่าเกี่ยวกับการกวาดความถี่), General AWG Settings (ประเภทของคลื่นสัญญาณ ขนาดและทริกเกอร์) และ Arbitrary Waveform Settings (ไฟล์คลื่นสัญญาณ)
- ในกรณีที่เรียกใช้งาน Software Trigger จะมีการตรวจสอบการกดปุ่ม Software Trigger ใน case structure เพื่อส่ง Software Trigger ไปยัง PicoScope
- หลังจากนั้นทำการตรวจสอบว่ามีปัญหาเกิดขึ้นหรือไม่?
- ทำการตรวจสอบว่ามีการกดปุ่มอัพเดทเพื่อเปลี่ยนค่าของคลื่นสัญญาณหรือกดปุ่มหยุดการทำงาน
- ปิดการติดต่อกับ PicoScope เมื่อออกจากลูป
หวังว่าบทความข้างต้นจะช่วยให้ท่านสามารถใช้งาน PicoScope ร่วมกับ LabVIEW ได้อย่างเต็มประสิทธิภาพ ท่านสามารถติดต่อทีมงาน เทคสแควร์ เพื่อติดต่อสอบถามข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน PicoScope หรือผลิตภัณฑ์จาก Pico Technology ร่วมกับ LabVIEW หรือภาษาโปรแกรมมิ่งอื่น ๆ
บทความที่เกี่ยวข้อง