**Leap Motion Controller** คืออุปกรณ์จาก [Leap Motion](https://www.leapmotion.com/) สำหรับตรวจจับการเคลื่อนไหวของมือ นิ้วมือ และเครื่องมือที่มีลักษณะเป็นแท่งทรงกระบอก (อย่างเช่นปากกาหรือพู่กัน) โดยสามารถตรวจจับได้ด้วยอัตราการส่งข้อมูลที่สูง (สูงสุดถึง 120 fps) และมีความแม่นยำสูง ในระดับ 0.01 มิลลิเมตร (หน่วยที่ใช้ในข้อมูลจะเป็นมิลลิเมตร)
ถ้านึกภาพไม่ออก อุปกรณ์ตัวนี้จะมีลักษณะการตรวจจับคล้ายๆ กับ Kinect ของ Microsoft คือใช้อินฟราเรดในการตรวจจับ ซึ่งก็หมายความว่าถ้าหากนำไปใช้ในที่ๆ มีแสงจ้า ก็อาจจะไม่สามารถทำงานได้เลย
วิดีโอสำหรับใครที่ยังไม่รู้จักเจ้าตัวนี้ครับ
##รูปทรงและลักษณะ

ตัวอุปกรณ์มีลักษณะค่อนข้างเล็ก ขนาดประมาณยางลบก้อนใหญ่ 1 ก้อน น้ำหนักเบา

ด้านบนเป็นกระจกสีดำ ใต้กระจกมีหลอด LED แสงอินฟราเรดจำนวน 3 หลอด และมีเซนเซอร์รับแสงอีก 2 ตัว ด้านข้างทำจากอลูมิเนียม มีช่องเสียบ USB 3.0 (ซึ่งสามารถใช้สาย microUSB เพื่อเชื่อมต่อแบบ USB 2.0 ได้ตามปกติ) และช่องไฟ LED สีเขียวเพื่อแสดงสถานะ ด้านใต้เป็นยางกันลื่นครับ

##ความสามารถของ Leap Motion Controller
ตัวอุปกรณ์จะจำตำแหน่งของวัตถุต่างๆ โดยอ้างอิงกับแกน X, Y, และ Z โดยมีจุด origin อยู่ที่กลางผิวกระจกของตัวอุปกรณ์ ซึ่งแกน X แทนแกนขนานกับแนวยาว แกน Y แทนแกนความสูง และแกน Z เป็นแกนแนวขวางที่พุ่งออกจากหน้าจอ

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

##การตรวจจับท่าทาง (gesture)
ตัว SDK นั้นมี API ที่ทำให้สามารถดึงเอาลักษณะท่าทาง (gesture) ต่างๆ ออกมาใช้งานได้จำนวนหนึ่งโดยที่นักพัฒนาไม่ต้องลงทุนเขียนขึ้นเอง (ซึ่งคาดว่าจะมีเพิ่มขึ้นในอนาคต) โดยท่าทางที่สามารถนำมาใช้ได้มีอยู่ 3 ลักษณะหลักๆ
- **วงกลม (circle)** คือการวาดนิ้วหรือเครื่องมือในลักษณะวงกลม โดยตัวอุปกรณ์สามารถตรวจจับตำแหน่ง ทิศทาง และขนาดของวงกลมที่เกิดขึ้นได้
 
- **การปัด (swipe)** คือการปัดนิ้วหรือเครื่องมืออย่างรวดเร็วในลักษณะเป็นเส้นตรง ซึ่งตัวอุปกรณ์สามารถตรวจจับตำแหน่งและทิศทางได้
 
- **การแตะ (tap)** คือการใช้นิ้วหรือเครื่องมือเคลื่อนที่ลงแล้วขึ้นอย่างรวดเร็ว ลักษณะคล้ายกับการแตะจอสัมผัสที่ลอยอยู่บนอากาศนั่นเอง ตัวอุปกรณ์จะสามารถตรวจจับตำแหน่งของการแตะได้
 
##SDK - ชุดสำหรับพัฒนาแอพพลิเคชัน
สำหรับผู้ที่มี Leap Motion Controller อยู่ในครอบครองแล้ว สามารถสร้าง Developer ID แล้วเข้าไปดาวน์โหลดชุด SDK มาใช้งานได้ทันทีครับ ซึ่งในชุด SDK นั้นจะมีทั้งตัวอย่างแอพพลิเคชัน ไดรเวอร์ และไลบรารีให้เรียกใช้สำหรับหลายภาษา ไม่ว่าจะเป็น C++, C#, Objective-C, Python, Unity, Java หรือ JavaScript ได้ (ใช่ครับ มันรันในเบราว์เซอร์ได้ แต่เบราว์เซอร์นั้นจะต้องลงไลบรารีนิดหน่อย ซึ่งเมื่อเปิดไฟล์ตัวอย่างครั้งแรก ระบบจะแจ้งลิงก์สำหรับดาวน์โหลดให้อัตโนมัติ) ซึ่งสำหรับเรื่องการเขียนโค้ดนั้น ผมจะขอข้ามไปครับ
##ข้อจำกัดของอุปกรณ์
ถึงแม้ว่ามันจะสามารถนำไปประยุกต์ใช้ได้หลายอย่าง แต่มันก็มีข้อจำกัดเช่นกัน
- **ระยะที่จำกัด** แน่นอนว่าตัวอุปกรณ์นั้นมีระยะที่จะตรวจจับที่จำกัด โดยระยะตามที่ทาง Leap Motion บอกเอาไว้ใน SDK คือ 600 มิลลิเมตร มีลักษณะเป็นรูปทรงกรวยชี้ลง ทำมุมกับพื้น 45 องศาจากพื้น แต่เท่าที่ผมได้ลองกับแสงที่ความเข้มต่างๆ กัน พบว่าระยะไกลสุดที่ทำได้ในที่แสงน้อยนั้นได้ราว 500 มิลลิเมตร และแสงมีผลกระทบต่อการตรวจจับพอสมควร ยิ่งแสงภายนอกแรง (โดยเฉพาะแสงอินฟราเรด) ก็จะยิ่งทำให้ความแม่นยำและระยะที่สามารถตรวจจับได้นั้นลดลง หากแสงส่องเข้าโดยตรงไปที่เซนเซอร์แล้ว อาจจะทำให้ไม่สามารถทำงานเลยก็ได้ ระยะของมือหรือเครื่องมือที่อยู่ใกล้ตัวอุปกรณ์มากเกินกว่าระยะ 10 มิลลิเมตร ก็ไม่สามารถตรวจจับได้เช่นเดียวกันครับ
- **ลักษณะของวัตถุ** เนื่องจากว่าตัว Leap Motion Controller นั้นใช้แสงอินฟราเรดในการตรวจจับวัตถุ ดังนั้นมันจะไม่สามารถตรวจจับวัตถุที่อยู่ซ้อนกันได้ ซึ่งจะเห็นเป็นวัตถุชิ้นเดียวที่ใหญ่ที่สุด นอกจากนั้นวัตถุที่อยู่ใกล้กันมากเกินไป ก็จะถูกตีความเป็นวัตถุเพียงชิ้นเดียวเช่นกัน ข้อจำกัดของวัตถุข้อต่อมาคือ อีกหนึ่งข้อจำกัดของวัตถุคือ แนวของวัตถุ ถ้าเราชี้นิ้วไปด้านข้างให้ขนานกับตัวอุปกรณ์ ตัวอุปกรณ์จะไม่สามารถตรวจจับได้ กรณีนี้ผมคาดว่าเป็นเพราะนิ้วที่อยู่ในแนวเดียวกันกับเซนเซอร์
##สรุป - ความเป็นไปได้ของอุปกรณ์คงขึ้นอยู่กับนักพัฒนา
ผมมองว่า Leap Motion Controller มีความเป็นไปได้ที่หลากหลายในการนำมาประยุกต์ให้เข้ากับการใช้งานคอมพิวเตอร์ในปัจจุบัน แม้ว่าในความคิดเห็นของผม ส่วนใหญ่อาจจะเป็นการเล่นเกมเสียมากกว่า แต่ด้วยศักยภาพที่เรียกได้ว่าน่าทึ่ง เช่นการแยกแยะวัตถุที่เป็นเครื่องมือออกจากนิ้วมือปกติได้ อาจจะนำไปใช้ในด้านการออกแบบ หรือการทำโมเดลต่างๆ ได้ หรือหากอุปกรณ์ชิ้นนี้สามารถทำให้มีความแม่นยำที่สูงขึ้น เราอาจเห็นการนำไปใช้กับจอธรรมดาๆ แล้วพัฒนาให้เป็นจอที่รองรับการสัมผัสได้ในอนาคต ด้วยราคาที่ไม่แพงมาก ผมว่ามันเป็นอีกทางเลือกหนึ่งของผู้ใช้ที่ต้องการความแปลกใหม่ของการสั่งงานคอมพิวเตอร์เลยทีเดียว เพียงแต่อาจจะต้องรอแอพพลิเคชันที่เป็นรูปเป็นร่างมากกว่าในปัจจุบัน
สำหรับนักพัฒนาในตอนนี้ สามารถสั่ง Leap Motion Controller จากเว็บไซต์ของ [Leap Motion](https://www.leapmotion.com/preorder/new) ได้ในราคา $79.99 (รวมภาษีและค่าจัดส่งมาที่ไทยแล้วอยู่ที่ $100.58 หรือประมาณ 3,000 บาท) โดยทาง Leap Motion แจ้งไว้ว่าจะจัดส่งทั่วโลกในวันที่ 13 พฤษภาคม และจะสามารถหาซื้อจาก BestBuy ได้ในวันที่ 19 พฤษภาคมนี้ครับ
