วันพุธที่ 30 เมษายน พ.ศ. 2557

เขียนโปรแกรมให้ Labview ติดต่อ Webcam และสามารถ Capture ภาพ เป็น ภาพขาวดำ

ทดสอบเขียนโปรแกรม Labview ติดต่อกับ Webcam

ซึ่งจะประกอบด้วย 3 ส่วน 
ส่วนมาก Tool ที่ใช้ อยู่ที่ Vision and Motion

ส่วนที่ 1 เมื่อมีการ รันโปรแกรม จะทำการติดต่อกล้องเว็บแคมที่เลือกตาม Device และให้ทำการ วน Loop ตรงกลาง เพื่อให้แสดงภาพแบบต่อเนื่อง

ส่วนที่ 2 เมื่อมีการกดปุ่มจะทำการนำ Image ที่ได้ จาก ส่วนที่ 1 มาแสดง และให้ผ่านกระบวนการ เพื่อให้ภาพเป็นภาพขาวดำ 

ส่วนที่ 3 นำภาพขาวดำสุุดท้าย แสดงเป็นกราฟ Histogram Graph


ผลลัพท์ดังภาพตัวอย่าง

วันจันทร์ที่ 28 เมษายน พ.ศ. 2557

เขียนโปรแกรมเชื่อมระหว่าง LabVIEW และ C# (Function คำนวน Cos) โดยสร้างไฟล์ .dll

เครื่องมือ
Visual Studio 2013
Labview 2012

ส่วนแรก สร้างไฟล์ .dll ใน Visual Studio

- เริ่มต้น สร้างโปรเจ็ค เป็นชนิด Class ใน Visual Studio ให้ใช้เป็น .Net Framework 3.5
-
- เปิดไฟล์ AssemblyInfo.CS ขึ้นมา ทำการแก้ไข Assembly Version ให้ค้นหา Version Automatically

- ทำการแก้ไขข้อมูล ตามที่ต้องการ
- ทำการลบ ที่ Visual Studio สร้างขึ้นมา
- เพราะว่า เราต้องการ เชื่อมต่อระหว่าง Labview กับ C# เพราะฉะนั้น เราต้องทำการเปลี่ยนแปลง
ผลลัพท์ ให้ Output Type = Class Library เราก็จะได้ไฟล์ .DLL ตอน Run โปรแกรม และเพราะในปัจจุบัน .Net Framework 4 ยังไม่เข้ากันได้กับ Labview จึงต้องเปลี่ยนมาใช้ .Net  3.5 แทน จากนั้นทำการแก้ไขชื่อต่างๆให้เรียนร้อย แล้วบันทึก

- ทำการสร้าง Class ขึ้นมา โดยการกด Add > New Item
- ทำการเขียน Source Code ขึ้นมา สำหรับคำนวณ ค่า Cos  แต่เนื่องจาก Class และ Method นี้โดนเรียกจากภายนอก จึงกำหนดให้เป็นชนิด Public ไว้
- ทำการ  Build Project  เราจะได้ ไฟล์ .dll ขึ้นมา ซึ่งจะอยู่ที่  Project Name \bin\Debug พร้อมสำหรับโปรแกรม Labview เรียกใช้งาน 

ส่วนที่ 2 จะเป็นการสร้างไฟล์ Labview ติดต่อกับ C#

- สร้าง โปรเจ็ค Labview ขึ้นมา และ Add ไฟล์ .dll มาเก็บไว้ใน Project ของ Labview ก่อน
- ตอนนี้ให้สร้าง Blank VI ขึ้นมา โดยการคลิกขวาที่ My Computer แล้ว เลือก New > VI 
- ตอนนี้ให้เลือกหาไฟล์ DLL โดยการเปิดที่ Block Diagram และคลิกขวา และค้นหา Connectivity จากนั้นเลือก .Net แล้วเลือก Constructor Node ขึ้นมา
- เมื่อเพิ่ม Constructor Node ขึ้นมา โปรแกรมจะแสดงหน้า Select .Net Connector ขึ้นมา ให้ทำการ Browse ไฟล์ .dll ขึ้นมา และเลือก Class ที่ทำการสร้างไว้
- ถึงตอนนี้เราจะได้ Node ขึ้นมา 1 Node ที่เรียกหาไฟล์ .DLL เรียบร้อย ต่อไปเราต้องทำการ สร้าง Node เพื่อเรียกหา Method ที่เราสร้างไว้ก่อนหน้านี้ โดยการคลิกขวาที่ Node ที่สร้างขึ้นตรงช่องเชื่อมต่อ Wire  New Reference > Create > Method for ..... > เลือก Method ที่สร้างขึ้นมาก่อนหน้านี้

- ทำการเชื่อมต่อ Wire ให้เรียบร้อย จะได้ดังภาพ ซึ่งจะแสดง Method ที่เราสร้างขึ้นมา โดยรับ ค่า X และแสดงผลลัพท์เป็นค่า Cos ออกมา
- เมื่อเราได้ Node ที่มาจาก Method ที่เราสร้างขึ้นมาแล้ว ต่อไปเราจะทำการเรียกใช้งาน โดยผมจะให้รับค่าเป็น ลูกบิด และผลลัพเป็น Tank น้ำ ละกัน
- แต่สุดท้ายต้องเข้าใจก่อนว่า พวกเราได้ทำการเขียนโปรแกรมติดต่อกับ Class ต่าง ซึ่ง ต้องมีการ ปิดการอ้างถึงด้วย คือ Close Reference นั้นเอง โดยการ คลิกขวาที่ New Reference ของ Method Node จากนั้นเพิ่ม Close Reference ด้วย

- ทำการเชื่อมต่อ
- ทดสอบ Run Program โดยเลือก Input เป็น ประมาณ 6 จากนั้น ดูผลลัพท์ เทียบกับ เครื่องคิดเลข









Labview การใช้ Probe ตรวจค่าของข้อมูลที่เินทางผ่าน

การใช้ Probe

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


เริ่มต้น กับ ชนิดของ Wire และ ทดสอบ Project ที่ 1

ในขณะที่ชนิดข้อมูลของโปรแกรมมีหลายประเภท (integer , charector , float, double , boolean ,….) การเรียกใช้และการประกาศตัวแปร เป็นสิ่งที่แยกแยะความแตกต่างของข้อมูลในการเขียนโปรแกรมแบบ text base แต่ใน Labview เราใช้ สี และ ขนาดของสายไฟ เป็นตัวบ่งบอกถึงความแตกต่างของข้อมูลนั้นๆ  
Labview : wire tutorial
     Labview จะมีการแจ้งให้ทราบว่าข้อมูลไม่ได้ถูกเชื่อมโยงกัน โดยจะแสดงลักษณะที่เรียกว่า broken wire เพื่อให้ผู้เขียนโปรแกรมทราบว่า ยังมีจุดที่สายไฟ ไม่ได้เชื่อมโยงกัน และจะไม่ยอมให้เราทำการ excute หรือ run โปรแกรม
Labview wire broken      การเกิด broken wire มีได้หลายสาเหตุ ตัวอย่างเช่น ระหว่าง object ที่มีความแตกต่างกันทางชนิดของข้อมูล ตัวอย่างเช่น เราไม่สามารถที่จะเอา out put ที่เป็น array จากบล๊อกไดอะแกรมหนึ่ง ไปต่อเข้ากับ input ที่เป็น numerical ของบล๊อกไดอะแกรมหนึ่ง ซึ่งแบบนี้จะทำให้เกิด broken wire ได้ ความแตกต่างของข้อมูลสามามารถแสดงได้ทั้งสี และขนาดของ wire ดังรูปต่อไปนี้
Labview data type

ทดสอบ ที่ 1
เขียนโปรแกรม บวก เลข ตามสูตร X/2 + Y = ? ผลลัพธ์ ให้แยกเป็น Integer และ Real


ผลลัพท์ ที่ได้