Saturday, January 4, 2014

Omron PLC Model CP1H-X40DT-D

วันนี้ ตั้งใจว่าจะเปิดหัวข้อที่เกี่ยวกับ PLC ไว้สักหน่อย เพราะว่ามีโอกาสได้จับงาน PLC ของ Omron รุ่น CJ2M-CPU33 มา ซึ่CJ2M-CPU33งต้องขอบอกว่า ตอนนั้น ความรู้ที่ร่ำเรียนมา มันมีเพื่อเอาไว้สอบเท่านั้น พอมาเจองานจริง งง จริงๆ ไม่รู้จะเขียนลอจิก อย่างไร เพราะเงื่อนไข (สำหรับผมในตอนนั้น) มันซับซ้อนมากๆ มีหลายเงื่อนไข ต้องเขียนดักกันไป ดักกันมา จนทำให้ไม่สามารถที่จะเอาหน้า contact มา lock กันเองได้ เพราะไม่งั้น ไล่กันหูตั้ง แน่ๆ

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

ซึ่งเจ้า PLC CJ2M-CPU33 ตัวนั้นก็ได้ส่งลูกค้าไปแล้ว ครั้นจะซื้อมาเก็บไว้ศึกษา พอเห็นราคาแล้ว ก็ต้องหงายเงิบ แพงจริงๆ ไม่รู้ว่า มันแพงเพราะคุณสมบัติระดับเทพของมันหรือเปล่านะ

แต่ อย่างไรก็ดี ถ้ายังได้จับ PLC ของ Omron อีก ก็คงยังต้องใช้ CX-One Programmer ในการเขียน LADDER / Boolean อย่างแน่นอน อย่ากระนั้นเลย มาเขียนบันทึกสิ่งที่ได้ศึกษามาเก็บไว้บน Blog ดีกว่า จะได้เอาไว้เตือนความจำด้วย

ต้องขอย้อนกลับไป ตอนที่ทำโปรเจคกับเจ้า CJ2M-CPU33 ตอนนั้นสักหน่อย ต้องขอขอบคุณ thaiplc.com ที่มีเวบบอร์ด ไว้คอยตอบคำถามช่วยเหลือซึ่งกันและกัน เกี่ยวกับปัญหา และเกร็ดความรู้เกี่ยวกับ PLC ของไทย ซึ่งนับว่าเป็นแหล่งที่ใหญ่เชียวแหละ ที่มีคนเข้ามาอ่าน เพราะเท่าที่ดูแล้ว งานพวกนี้ คนที่ทำงานด้านนี้ คงไม่ค่อยได้เข้ามาตอบเท่าไหร่ เพราะ ดูแล้วแต่ละท่านคงจะยุ่งๆ แต่ ก็จะมีบางท่านที่แวะเวียนมาตอบคำถาม และคอยให้ความรู้อยู่อย่างสม่ำเสมอ ก็ต้องขอขอบคุณแหล่งความรู้ดีทีนี่ และแอดมิน ที่ดูแลระบบด้วยครับ

และก็เพราะ thaiplc.com นั่นแหละครับ ที่ทำให้ผมจะได้เริ่มต้นเปิดประเด็นหัวข้อ PLC ก็เพราะว่า มีพี่ท่านหนึ่งในเว็บบอร์ด thaiplc.com ได้ให้ผมยืม PLC Omron CP1H-X40DT-D มา 1 ตัว พร้อมด้วย RS232 และ Ethernet extension ที่ติดมากับ PLC ด้วย ผมก็ไม่นึกว่าจะมีคนใจดี ให้ผมยืม PLC ซึ่งราคาแต่ละตัว ก็ไม่ใช่ของที่จะให้ยืมกันได้ง่ายๆ ต้องขอขอบพระคุณความใจดีของพี่เขาจริงๆ ไว้ ณ ทีนี้ด้วย

CP1H-X40DT-D

ผมก็จะพยายามเขียนบันทึกไว้เรื่อยๆ ไว้ที่ blog นี่หล่ะกันครับ เดี๋ยวขอไปอ่าน manual มันก่อนหล่ะกันตอนนี้

อ่านเพิ่มเติม...

Monday, March 25, 2013

รีวิวโปรแกรม In-sight กับ Smart Camera ของ Cognex

เมื่อวันที่ 22 มีนาคม 2556 ผมมีโอกาสได้ไปอบรมการใช้งานโปรแกรม In-Sight ซึ่งเป็นโปรแกรมประเภท Machine Vision คือสามารถเขียนโปรแกรมตรวจสอบงานในสายพานการผลิต (จริงๆ ก็แล้วแต่จะไปประยุกต์ใช้ แต่ ถ้านำมาใช้ในสายพานการผลิตจะเหมาะกว่า) เช่น การตรวจสอลสลาก การตรวจสอบหาจุดบกพร่องของงานที่ผลิตออกมา การนับจำนวนชิ้นงาน ซึ่งในอุตสาหกรรมการผลิตชิ้นส่วนต่างๆ แม้กระทั่งการผลิตยา และอาหาร ก็มีงานที่เกี่ยวกับ Machine Vision รวมอยู่ด้วย

ซึ่งเจ้าโปรแกรมนี้ หากใครเคยได้ใช้โปรแกรม VisionBuilder ของทางค่าย NI แล้วหล่ะก็ คงทำความคุ้นเคยกับมันได้ ไม่ยากนัก เพราะเค้าออกแบบมาแทบจะคล้ายกัน คือ เน้นให้สามารถเขียนโปรกรมผ่าน Graphic เลือกค่าต่างๆ ผ่านบล๊อกการทำงาน แต่ละขั้นตอน สุดท้ายก็ได้โปรแกรมตรวจสอบชิ้นงานอย่างที่ต้่องการ ในเวลาอันรวดเร็ว เพราะงานพวกนี้ จะว่าไปแล้ว ก็มีลักษณะที่ซ้ำกันไป ซ้ำกันมา ต่างกันตรง สภาพชิ้นงานและภาพที่ได้จากชิ้นงาน และตำแหน่งที่จะตรวจวัดชิ้น ซึ่งขึ้นอยู่กับว่า เรากำลังตรวจวัดอะไร เช่น ตรวจวัดระดับของเหลว การวัดว่ามี หรือไม่มีชิ้นส่วนชิ้นใดชิ้นหนึ่ง หรือวัดความถูกต้องของชิ้นงานเมื่อเทียบกับต้นแบบ

ดูภาพเปรียบเทียบหน้าตาของโปรแกรม

In-Sight

หน้าตาโปรแกรม In-Sight

VisionBuilder

หน้าตาโปรแกรม Vision Builder


แต่ วันนี้ผมไม่ได้มาพูดถึงโปรแกรม VisionBuilder ครับ ผมจะมาพูดถึงการทำงานคร่าวๆ ของโปรแกรม In-sight เจ้าโปรแกรม  In-sight โดยหน้าที่แล้ว เป็นโปรแกรมที่ช่วยให้งาน Machine vision ง่าย และเสร็จในเวลาอันรวดเร็ว หน้าที่ของโปรแกรมเมอร์ ก็คือ ทำการนำภาพที่ได้จากกล้องมาทำการประมวลผล โดยผ่านขั้นตอน ที่ทางโปรแกรมได้วางเอาไว้ แต่ละขั้นตอน และทำการกำหนดค่าต่างๆ ตามที่ต้องการ ซึ่งในโปรแกรม จะมี อัลกอริธึมในการประมวลผลภาพ ไม่ว่าจะเป็นการทำ Threshold การหาขอบภาพ การนำภาพมาเปรียบเทียบกับภาพต้นแบบ ซึ่งอัลกอริธึมเหล่านี้ มีพร้อมอยู๋แล้วในโปรแกรม In-Sight หน้าที่ของเรา คือใช้มันให้เป็น จัดลำดับเงื่อนไขอย่างถูกต้อง เราก็จะได้โปรแกรม Machine Vision ที่สามารถนำไปใช้ได้อย่างรวดเร็ว

ความแตกต่างของโปรแกรมนี้ กับโปรแกรมอื่นๆ ทั่วไป คือ โปรแกรม In-sight นี้ ให้ดาวน์โหลดไปใช้ฟรีๆ แค่ นำ key ที่ได้จากโปรแกรม ไปลงทะเบียนผ่านหน้าเว็บ เราก็จะได้ key ที่ถูก gen ออกมา แล้วนำกลับมาลงทะเบียนที่โปรแกรม เพียงเท่านี้้ เราก็สามารถนำโปรแกรมไปใช้ได้เลย อะไร มันจะดีขนาดนี้ แต่ เดี๋ยวก่อน เจ้าโปรแกรม In-sight นี้ ใช้ได้แต่เฉพาะกับกล้อง Smart Camera ของ Cognex เท่านั้น ไม่สามารถนำไปใช้กับกล้อง Smart Camera ของบริษัทอื่นๆ ได้ 

ขอย้อนกลับไปเรื่องกล้องสักเล็กน้อย ในตลาดของงาน Machine Vision เราแบ่งกล้องได้เป็นสองประเภทใหญ่ๆ (ณ ตอนนี้) คือ
1. กล้อง Industrial ทั่วๆ ไป ซึ่งต้องมีคอมพิวเตอร์ 1 เครื่องในการรันโปรแกรม และรับภาพที่ได้จากกล้องพวกนี้มาประมวลผล 
2. กล้อง Smart Camera ซึ่งกล้องพวกนี้ต่างจากล้องแบบแรก คือ มันสามารถทำงานได้ด้วยตัวของมันเอง พูดง่ายๆ ก็คือ ตัวมันเองมีคอมพิวเตอร์ขนาดเล็ก อยู่ภายใน จะบอกว่าเล็กมากๆ แต่ ก็สามารถทำงานได้ด้วยตัวของมันเอง

Smart Camera

พวกกล้อง Smart Camera เกี่ยวข้องอย่างไรกับโปรแกรม In-sight ?

คือมันเป็นอย่างนี้ครับ คือหลังจากเราได้ดาวน์โหลดโปรแกรม In-Sight และได้ทำการติดตั้งเสร็จแล้ว จากนั้น เรานำภาพที่ได้จากกล้อง Smart Camera มาทำการประมวลผลตามลำดับขั้นตอนจนเป็นที่น่าพอใจแล้ว เราก็จะทำการอัพโหลดโค๊ดที่เราเขียนทั้งหมดนี้ กลับเข้าไปที่กล้อง Smart Camera ครับ เจ้าตัวกล้องนี้ ก็จะเข้าใจโค๊ดที่ถูกอัพโหลดมาใส่ที่ตัวมัน และทำงานตามลำดับที่ถูกกำหดนดไว้แล้วในโค๊ด จากนั้น ที่ตัวกล้องจะมีช่องสัญญาณเอาท์พุต เอาไว้ให้เรา ส่งค่ากลับออกมาจากโปรแกรม เช่น หากกล้องตรวจพบเจอสิ่งผิดปกติ ให้ส่งสัญญาณ มาหยุดที่สายพานลำเลียงชิ้นงาน หรือส่งออกมาแสดงค่าที่ไฟสถานะของเครื่องจักร นอกจากนี้ มันยังมีช่องอินพุต เพื่อรับสถานะ เช่น จากเซนเซอร์ต่างๆ ได้อีกด้วย ยิ่งถ้ากล้องมีราคาแพง จะยิ่งมีลูกเล่นพวกนี้เยอะตามไปด้วย ซึ่งในการทำงาน เราสามารถปล่อยให้กล้องทำงานได้ตามลำพัง โดยไม่ต้องต่อคอมพิวเตอร์กับกลัองอีกต่อไป ซึ่งเจ้าตัวกล้อง Smart Camera พวกนี้จะประมวลผลบนตัวของมันเองเลย หากจะถามเรื่องความเร็วในการประมวลผล เท่าที่ผมถามจากผู้รู้ เค้าก็บอกว่า ถ้างานที่ต้องการวัด หรือตรวจจับนั้น วิ่งผ่านกล้องด้วยความเร็วไม่เกิน 600 ชิ้น ต่อ นาที ก็สามารถใช้กล้อง Smart Camera พวกนี้ ได้ ที่ต้องบอกว่า ไม่เกิน 600 ชิ้น ต่อ นาที นั้น ก็เพราะว่า ด้วยความที่มันมีคอมพิวเตอร์ขนาดเล็กอยู่ภายในนั้น มันก็ย่อมมีข้อจำกัดในการประมวลผล ซึ่งแน่นอน ย่อมสู้คอมพิวเตอร์ตั้งโต๊ะ ไม่ได้อย่างแน่นอน

แล้วถ้าถามว่า ข้อเสียของกล้อง Smart Camera นอกจากเรื่องความเร็วในการประมวลผลหล่ะ อีกประเด็นหนึ่งก็คือ เอาหล่ะ โปรแกรม  In-Sight หน่ะมันฟรี ก็จริงอยู่ แต่ ราคาโปรเจคทั้งหมด มันจะไปตกอยู่ที่กล้องครับ ซึ่งแพงมากๆ คือหลังจากผม ได้ยินเรื่องราคาแล้ว ผมเข้าใจเลยว่า งาน Machine Vision ทำไมราคา มันถึงได้มากขนาดนั้น

แต่ ถึงราคาจะแพงขนาดนั้น แต่ในแง่ การนำไปใช้งาน ก็ สะดวกสบายและคล่องตัวมากเลย นอกจากเรื่องโปรแกรมที่ง่าย และสร้างงานได้อย่างรวดเร็ว ผมขอยกตัวอย่างให้ฟัง สมมติว่า คุณไปติดตั้งระบบไว้ ณ ที่โรงงานแห่งหนึ่ง ซึ่งอยู่คนละจังหวัด เกิด วันดีคืนดี งานมีปัญหา คือ อาจจะด้วยสาเหตุอะไรก็แล้วแต่ ทำให้คุณจะต้องไปทำการแก้ไขโปรแกรมที่อยู่ในกล้อง คุณจะทำอย่างไร หากไม่ต้องเดินทางไปที่โรงงานแห่งนั้น ง่ายๆ ก็คือ คุณก็ให้คนหน้างานนั้น ทำการ capture ภาพที่ได้จากกล้อง Smart Camera ตัวนั้น ส่งกลับมาให้คุณ โดยที่คุณสามารถที่จะทำการปรับแต่งโปรแกรมที่คุณได้ Backup ไว้แล้ว กับภาพที่ได้ขณะนั้น คุณก็สามารถแก้ไขปัญหาได้ และสามารถทำการส่งไฟล์โค๊ดที่ได้รับการแก้ไขแล้วกลับไปที่หน้างาน และอัพโหลดใส่กลับไปที่ตัวกล้อง โดยที่คุณไม่ต้องเดินทางไปที่หน้างานเลย เห็นไหมหล่ะครับ ว่ามันสะดวกขนาดไหน เพราะเจ้ากล้อง Smart Camera พวกนี้ มันทำได้สบาย อยู่แล้ว บวกกับโปรแกรม In-Sight ที่โหลดมาได้ฟรีๆ มองการไกล ผมก็ว่ามันก็คุ้มอยู่นะ


ก็เป็นเรื่องที่จะมาเล่าสู่กันฟัง หลังจากที่ได้รับการอบรมมา จริงๆ ผมต้องการทราบว่าเจ้าโปรแกรม In-Sight มันต่างจากโปรแกรม VisionBuilder ที่ผมเคยใช้อยู่อย่างไร ซึ่งหลังจากที่ได้รับการอบรมแล้ว ก็มีความเข้าใจกับกล้อง Smart Camera และเจ้าตัวโปรแกรม In-Sight มากขึ้น ต้องขอขอบคุณทีมงาน Cognex Training Thailand เป็นอย่างยิ่งครับ ที่ให้ผมได้เข้ารับการอบรมในครั้งนี้

In-Sight Training

In-Sight Training

อ่านเพิ่มเติม...

Tuesday, October 16, 2012

LabVIEW Interface for Arduino ( Part II)

    จากตอนที่แล้ว (คลิกกลับไปอ่าน) เป็นการติดตั้งโปรแกรมเสริมทางฝั่ง Labview เพื่อทำให้ Labview ติดต่อกับ Arudino อย่างมีรูปแบบ เพื่อให้ง่ายต่อการพัฒนาโปรแกรมต่อไป และทำการโปรแกรมส่วนเฟิร์มแวร์ให้ Arudino เพื่อให้ Arduino ติดต่อกับ Labview ผ่านทาง Serial comm

หากเรามองที่ซอร์ฟแวร์ที่เป็นหัวใจหลัก ที่ทำให้ทั้งสองอย่างเข้าใจกัน เราสามารถพิจารณาได้ดังนี้

ทางฝั่งของ Labview
- Labview Interface for Arduino tool kit ซึ่งเป็นโปรแกรมเสริมให้กับ Labview เราจะต้องเลือก tool block ให้เหมาะสมกับหน้าที่การทำงานของ pin ของ arduino UNO  (ขึ้นอยู่กับการออกแบบ และการใช้งานโปรแกรม)

Labview Interface for Arduino tool kit Arduino Board

ทางฝั่งของ Arduino
- Firmware (โค๊ด) ซึ่งเขียนด้วยภาษา wiring ของทางฝั่งของ arduino ในที่นี้ผมจะเรียกตามโปรเจคของมัน ซึ่งก็คือ LVIFA_Base
  ซึ่งเราจะต้องทำการ burn ลงบนบอร์ด Arduino (ซึ่งจะทำการ burn ลงแค่ครั้งเดียวเท่านั้น)

LVIFA_Base

เมื่อเราติดตั้งโปรแกรมทั้งสอง ลงบน PC และบน Arduino board เรียบร้อยแล้ว ทีเหลือก็เหลือเพียงทำให้ทั้งสองรู้จัก และเข้าใจคำสั่งที่ต่างฝ่าย ต่างส่งมาให้กันและกัน ก็แค่นั้นเอง

คำถามก็คือ

Labview Interface for Arduino tool kit และ LVIFA_Base มันเข้าใจกันได้อย่างไร ?


คำตอบก็คือ ทั้งสองโปรแกรมนี้ รับส่ง ข้อมูล ซึ่งเป็น คำสั่ง และ ผลลัพธ์ผ่านทางการสื่อสาร Serial Communication ซึ่ง PC จะมองเห็นบอร์ด Arduino เป็นเหมือน Comport อนุกรม(เสมือน)  ซึ่งข้อมูลจะวิ่งเข้า ออก ณ จุดนี้ จาก PC ไป Arduino และจาก Arduino ไป PC

แล้วมันคุยกันอย่างไรหล่ะ?


คำถามนี้ ดูเหมือนจะไม่ต้องไปสาวลงไปลึกมากนัก เพราะผู้พัฒนาต้องการให้มองเจ้า Labview Interface for Arduino tool kit และ  LVIFA_Base เป็นเสมืองกล่องดำ (Black box) ที่เราไม่จำเป็นต้องไปรู้การทำงานภายในของมัน ขอแค่เพียงเรารู้แค่ว่า จะเอามันมาใช้งานได้อย่างไรก็พอ

แล้วเราจะเริ่มต้นใช้งานมันได้อย่างไร?


อันนี้สิ เป็นเรื่องสำคัญ หากไม่มีตัวอย่างโปรแกรม และ Help มาให้แล้วไซร้ เจ้า Black box ที่ว่า ก็ไม่มีความหมายเลย ก็เพราะ เราก็ยังนำมันมาใช้ไม่เป็นอยู่ดี ต่อให้โค๊ดที่เขียนอยู่ภายใน เลิศหรูอลังการเพียงใด มันก็คงเป็นการลำบากที่เราจะนำของที่ควรจะนำมาใช้ได้เลย แต่กลับต้องมานั่งไล่โค๊ดเพื่อให้เข้าใจการทำงานของมัน จึงจะเอามาใช้งานได้ ถ้าเป็นแบบนั้นจริง ก็คงไม่ดีแน่ๆ

เมื่อเรารู้แล้วว่า ตัวอย่าง และ help ที่ให้มานั้น เป็นจุดเริ่มต้นการนำมาใช้งาน เราก็เริ่มจากตัวอย่างของมันกันเลย ให้ไปที่
C:\Program Files\National Instruments\LabVIEW 2011\vi.lib\LabVIEW Interface for Arduino\Palette Examples
(อาจจะไม่เหมือนกัน ขึ้นอยู่กับเวอร์ชั่นของ Labivew)

ซึ่งจะปรากฏตัวอย่างมากมาย ให้เราเริ่มต้น ในที่นี้ เราจะมาเริ่มต้นจาก Analog Read Pin Example.vi ถ้าเราดับเบิลคลิกที่ไฟล์นี้ ก็(ควร)ที่จะเข้าสู่โปรแกรม Labview  และเปิดหน้าต่างของโปรแกรมนี้เลยทันที

Palette Examples

จากรูป ( ผมกด Ctrl+T เพื่อให้แสดงผล Tile left and Right )  ซ้ายมือ เป็นการออกแบบหน้าต่าง GUI คือเป็นส่วนที่ให้ผู้ใช้งานไว้สำหรับทำงาน ส่วนขวามือ เป็นหน้าที่ของโปรแกรมเมอร์ที่จะต้องทำการเขียนโปรแกรมแนว Graphic Programming เพื่อให้โปรแกรมที่ออกแบบไว้ทำหน้าที่ได้อย่างที่ต้องการ ซึ่งส่วนใหญ่แล้ว โปรแกรมเมอร์ก็จะทำหน้าที่ผู้ใช้งานไปด้วยในตัว

Analog Read Pin Example.vi

ในทางด้านซ้ายมือ เราเรียนรู้ได้ไม่ยาก หากมีพื้นฐานเรื่องการเขียนโปรแกรมบน Labview มาก่อนแล้ว แต่ที่เป็นปัญหาตอนนี้ คือ การนำ Labview Interface for Arduino tool kit มาใช้  ซึ่งมันมีลำดับการทำงาน พอจะอธิบายคร่าวๆ ได้ดังนี้

ถ้าเราต่อวงจรในโลกแห่งความจริง หมายถึงต่อวงจรจริงๆ ตามวงจรนี้ โดยเราให้ แรงดันที่ถูกแบ่งจาก R ปรับค่าได้ ต่อเข้ากับขา Analog In ช่อง AN0 ของ Arduino 

Analog Read Pin Example circuit

แล้วทำการเขียนโปรแกรมบน Labview ด้าน Block Diagram ตามรูปภาพ

Analog Read Pin block diagram

ความหมายของมันก็คือ โปรแกรมจะเริ่มจากหมายเลข 1 tool block ส่วนนี้ จะทำหน้าที่เตรียมการสื่อสารทาง Serial Communication ซึ่งมีพารามิเตอร์ที่ถูกกำหนดเป็นค่าเริ่มต้นไว้เรียบร้อยแล้ว หากเราสนใจให้ดับเบิลคลิกที่ Init จะปรากฏหน้าต่างของโปรแกรมย่อยของ Labview ขึ้นมาอีกที

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

จากเส้นสีชมพูที่เราเห็น ข้อมูลเหล่านี้ นี่แหละ ที่จะวิ่งเข้าสู่ Comport อนุกรม(เสมือน) ฉะนั้นไม่ว่า arduino board จะส่งอะไรเข้ามา หรือ รับข้อมูลอะไรออกไป มันจะใช้ข้อมูลในเส้นสีชมพูในการอ้างอิง

แต่เมื่อเข้ามาอยู่ใน loop while ของโปรแกรม (ส่วนที่ 2 ) โปรแกรมจะวนอยู่ในนี้จนกว่าจะมีกดปุ่ม stop หรือไม่ก็เกิดเหตุการณ์ Error จากเส้นสีเหลือง จึงจะหลุดออกจาก loop while แล้วคืนค่าอ้างอิงที่เคยจองไว้ กลับสู่ระบบต่อไป (ส่วนที่ 3)

กลับมาที่ส่วนที่ 2 อีกครั้ง เป็นส่วนที่โปรแกรมเราจะทำงานเป็นหลัก (หลังจากผ่านส่วนที่ 1 ในตอนเริ่มต้นมาแล้ว) ในส่วนนี้ เราเลือกใช้ tool block ที่เป็น Analog Read นั่นก็เพราะว่า ในวงจรจริงที่เราได้ต่อไว้นั้น มีการนำเข้าสัญญาณ Analog นั่นก็คือแรงดันไฟฟ้าไฟกระแสตรงที่ถูกแบ่งมาจาก ตัวต้านทานปรับค่าได้ เข้ามาที่ขา AN0 ของ Arduino ที่ทำหน้าที่เป็นขาอินพุต (เท่านั้น) จะเห็นได้ว่า tool block ที่ถูกเลือกไว้ จะต้องสัมพันธ์กันกับวงจรที่ต่อจริง โดยเลือกใช้ Analog Read ที่ถูกกำหนดค่า Analog Input Pin = 0  จะเห็นได้ว่าสัมพันธ์กันจริง ทั้งวงจรที่ต่อจริง กับ วงจรที่ต่อบน Labview

จากนั้น เราต้องการให้มันแสดงผลที่หน้าจอคอมพิวเตอร์ เราก็แค่หา Guage แสดงค่า มารับที่ช่อง Voltage ของ Analog Read Pin เพียงเท่านั้น เราก็จะได้โปรแกรมง่ายๆ ที่สามารถนำค่าจากโลกภายนอก เข้ามาแสดงผลในโลกของคอมพิวเตอร์ได้แล้ว 

Analog Read Pin setting and display

หมายเหตุ เอาเมาส์ชี้ที่ tool block แล้วกด Ctrl +H จะปรากฏหน้าต่างแสดงคำอธิบาย tool block นั้นๆ

analog read pin help

ถ้าจะมีคำถามว่า แล้วถ้าต้องการเอา arduino ไปวัดค่าจากเซ็นเซอร์ที่เป็นตัวอ่านค่าอุณหภูมิ หรือ ค่ากระแสไฟฟ้าได้ไหม ก็ต้องถามกลับไปว่า ตัวอ่านค่าอุณหภูมิกับตัวอ่านค่ากระแสไฟฟ้า ให้เอาท์พุตออกมาเป็น Analog ไหมหล่ะ ถ้าใช่ ตัวอย่างที่ได้นำเสนอไป ก็เกือบจะเอาไปใช้ได้เลย เพราะเรากำลังรับค่าที่เป็นแรงดันไฟฟ้า ที่แปรผันตามค่าตามที่มันกำลังวัดค่าอยู่นั่นเอง เพียงแต่ค่าที่เราต้องการให้มันแสดง มันไม่ใช่ค่าแรงดันไฟฟ้า เราต้องการอ่านค่าอุณหภูมิหรือค่ากระแสไฟฟ้า ฉะนั้นค่าที่รับมาได้จะเป็นค่าแรงดันไฟฟ้า เราก็ต้องนำค่าเหล่านั้นมาทำทางคณิตศาสตร์โดยใช้เครืองมือ + - x / ทาง labview ในการแปลงค่าแรงดันให้กลายเป็นค่าที่เราต้องการ โดยสมการในการแปลงมันก็อยู่ในดาต้าชีทของเซ็นเซอร์เบอร์นั้นๆ นั่นแหละ

ยังมีตัวอย่างที่อยู๋ในโฟวเดอร์ดังกล่าวอีกเยอะแยะ หากเราเข้าใจตัวอย่างนี้แล้ว เราก็สามารถที่จะเข้าใจตัวอย่างอื่นๆ ได้อย่างไม่ยากเย็นนะ ขอให้เรามีพื้นฐานของ Labview Programming + Circuit + หน้าที่การทำงานของแต่ละ pin ของ arduino เราก็น่าจะพอแก้ไข ปรับปรุง พัฒนาจากตัวอย่างที่เค้าให้มาได้อยู่แล้ว

หวังว่าพอจะได้แนวทางการนำไปประยุกต์นะครับ

อ่านเพิ่มเติม...

Monday, October 15, 2012

Robotic wheelchair

Robotic wheelchair

    หุ่นยนต์เก้าอี้ผู้พิการทางขา สร้างโดยคุณ Shuro Nakajima ซึ่งเป็นหัวหน้าทีม Chiba Institute of Technology ได้ถูกสร้างให้มีความแตกต่างจากหุ่นยนต์เก้าอี้ผู้การทางขาจากตัวอื่นๆ ตรงที่มันมีความสามารถในการข้ามสิ่งกีดขวางได้ ซึ่งโดยปกติแล้ว รถเข็นเก้าอี้ผู้พิการทางขานั้น ตัวล้อจะไม่สามารถยกตัวขึ้นเองได้ จะเดินทางไปได้ในที่ราบเรียบ ไม่มีสิ่งกีดขวาง แต่เจ้าหุ่นตัวนี้ มีความสามารถทำได้ ซึ่งนับว่าเป็นการพัฒนารถเข็นสำหรับผู้พิการทางขา ก้าวไปอีกขั้น

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

 

ที่มาของข่าว คลิก

อ่านเพิ่มเติม...
 

แจกฟรี พื้นที่ฝากไฟล์ 15 GB

ติดตามข่าวสารผ่าน Twitter

Blog อื่นๆของฉัน

ผู้ติดตาม Blog นี้

เว็บเพื่อนบ้าน