วันพุธที่ 6 สิงหาคม พ.ศ. 2557

About NXT Sensor EP.2 Ultrasonic Sensor!!!!

   จากบทความ About NXT Sensor EP.1 Touch Sensor!!! ครั้งที่แล้ว ได้เล่าถึงหลักการทำงานง่ายๆของเจ้าตัว NXT Touch Sensor ไปแล้ว วันนี้เราลองมาดูเจ้า NXT Ultrasonic Sensor (บ้างก็เรียกว่า NXT Sonar Sensor) ว่ามีหลักการทำงานอย่างไร แล้วเวลาเราเอาไปใช้ 
ใช้ทำอะไรได้บ้าง ^^

ก่อนอื่นเลยต้องเล่าเรื่องการทำงานของมันก่อน เดี๋ยวจะหาว่าใช้งานได้ แต่กลับไม่รู้ว่ามันทำงานอย่างไรกันแน่

     Ultrasonic Sensor นั้นมีหลักการทำงานทั่วๆไปเฉกเช่น เรดาห์(Radar) หรือ โซน่าร์(Sonar) คือ ใช้การสะท้อนกลับของคลื่นความที่สูง (สูงกว่าที่มนุษย์จะได้ยิน)ที่ตัวส่ง ได้ส่งคลื่นออกไป แล้วเกิดการกระทบกับวัตถุและสะท้อนกลับมายังที่ตัวรับ คลื่นที่ใช้งาน(Ultrasonic wave)มีความถี่ตั้งแต่ 20kHz ขึ้นไป แต่ว่าไม่เกิน 50kHz เพราะถ้าหากเกินไปมากกว่านี้ จะทำให้คลื่นเสยงถูกดูดกลืนไปในอากาศได้มากขึ้น ซึ่งความถี่ที่เลือกใช้งานก็ขึ้นอยู่กับลักษณะของงานที่แตกต่างกันออกไปด้วย


เอาเป็นว่า กล่าวโดยสรุป การทำงานของมันคือ ตัวส่งคลื่นของUltrasonic Sensor จะทำการปล่อย Ultrasonic wave ออกไป และเมื่อกระทบกับวัตถุที่ขวางทางอยู่ คลื่นก็จะสะท้อนกลับมาที่ตัวรับคลื่น และนำเอาสัญญาณทางไฟฟ้าที่ได้มาประมวลผล และ NXT Intelligent brick ก็จะทำการแปลงสัญญาณทางไฟฟ้าเป็นตัวเลขนั่นเอง

คราวนี้ เรามาลองดูตัวอย่างการใช้งานอย่างง่ายๆของเจ้า NXT Ultrasonic Sensor กันดีกว่าครับ

สร้างรถที่จะทำการทดสอบ(รถคันเดิมจากAbout NXT Touch Sensor EP.1)





จากนั้นตามมาด้วยเจ้า Ultrasonic Sensor






จับทั้งสองส่วนมารวมร่างกัน ก็จะกลายเป็นรถที่มี Ultrasonic Sensor เป็นตัวอ่านระยะทาง


หลังจากที่ทำการสร้าง ตารางความจริง และ Flowchart Diagram จากนั้นเริ่มทำการเขียนโปรแกรมและDownloadโปรแกรมลงเข้า NXT Intelligent brick


และเรามาลองดูผลลัพธ์ของโปรแกรมที่เขียนไว้เลยครับ ^^


            จากคลิปข้างบนก็จะเห็นได้ว่า ถ้าหากหุ่นยนต์เดินไปเจอวัตถุในระยะที่กำหนด(10cm)เข้า มันจะหยุดนิ่งประมาณ 2 วินาที ถ้าหากวัตถุเคลื่อนที่เข้าหาหุ่นยนต์ในระยะ 2วินาที หุ่นจะเดินถอยหลังเพื่อหลบหนีสิ่งที่เคลื่อนที่เข้ามาใกล้ แต่ถ้าหากไม่มีวัตถุเคลื่อนที่เข้ามาใกล้ภายใน 2 วินาที หุ่นก็จะเลี้ยวไปทางอื่นแล้วก็เดินต่อไปเรื่อยๆจนกว่าจะเจอวัตถุอีกครั้ง (เป็นเพราะใช้คำสั่งการวนLoopเข้ามาเกี่ยวข้อง)


นึกสนุกขึ้นมาอีกหน่อย เลยลองต่อเจ้า Ball Shooter เข้าไปด้วย




ผลลัพธ์ที่ได้ กลายเป็นอย่างที่เห็นครับ^^


มาดูกันซิ ว่ามันจะยิงโดนรึปล่าว


อย่างที่เคยบอกไว้นะครับ ว่าเจ้าNXT Mindstorm มันทำอะไรได้หลายอย่าง บทความต่อๆไป อาจจะพรีเซ็นท์เซ็นเซอร์ไม่ใช่หุ่นยนต์ที่เป็นรถ แต่จะเป็นหุ่นอะไรนั้น ติดตามกันได้นะครับ ^^


วันจันทร์ที่ 4 สิงหาคม พ.ศ. 2557

About NXT Sensor EP.1 Touch Sensor!!!

       หลังจากก่อนหน้านี้ได้เกริ่นเรื่อง NXT MindStorms 2.0ไปพอคร่าวๆแล้ว คราวนี้เรามาเริ่มทำความรู้จักSensor ของเจ้า NXTกับบ้างดีกว่า ว่าเซ็นเซอร์แต่ละชนิดมันทำอะไรได้บ้าง

1.Touch Sensor ตามชื่อเลยครับ หน้าที่คือ Touch หรือ สัมผัส นั่นเอง กลไกการทำงานก็ไม่มีอะไรมาก หลักการทำงานก็เหมือนกับสวิตช์(Switch)ชนิดหน้าสัมผัสแบบจำพวก กดติดปล่อยดับ นั่นเอง แต่พอมาอยู่ในชุดหุ่นยนต์ที่ติดแบรนด์แล้วหล่ะก็ ราคาก็อัพขึ้นค่อยข้างสูงจากต้นทุนพอสมควร ฮี่ๆๆๆ ส่วนโครงสร้างข้างในไม่ขอกล่าวถึง (ไม่กล้าแงะออกมาดู กลัวประกอบคืนไม่ได้ T^T)

วันนี้นับว่างานไม่ค่อยเยอะเท่าไหร่ เลยลองต่อรถซักคันนึง เพื่อสาธิตการทำงานของ NXT Touch Sensor แต่ว่ามันมีมาให้2ตัว เลยต่อให้คุ้มซะหน่อย



รถที่ยังไม่ได้ติดเซ็นเซอร์อะไรทั้งสิ้น



ต่อมาก็พระเอกของเรางานนี้ Touch Sensor (วันนี้มาแพคคู่)




จับมันมารวมร่างกัน เลยกลายเป็นรถที่มี Touch Sensor เป็นกันชน ^^

เริ่มทำการเชื่อมต่อพอร์ทมอเตอร์และเซ็นเซอร์ จากนั้นเขียนโปรแกรมและทำการDownloadข้อมูลลงเจ้า NXT intelligent brick เพื่อส่งข้อมูลให้เจ้าสมองกลนั้น ทำงานตามโปรแกรมที่ได้สร้างขึ้นมา


ทำการเขียนตารางความจริง (Truth Table) เพื่อกำหนดActionของหุ่นยนต์
 เมื่อหุ่นยนต์เกิดเหตุการณ์(Event)ตามตารางความจริง


จากนั้นวางแผนการทำงานของหุุ่นยนต์ด้วยการวาดFlowchart Diagram และเขียนโปรแกรมตามผังงานที่ได้คิดหรือออกแบบไว้

เรามาลองดูผลการเขียนโปรแกรมกันเลยดีกว่า





ตอนต่อไป จะเป็นเรื่องราวของเซ็นเซอร์ชนิดไหน ติดตามAbout NXT Sensor EP.2 นะครับ ^^

วันเสาร์ที่ 2 สิงหาคม พ.ศ. 2557

NXT Mindstorm ของเล่นที่ไม่ใช่เล่นๆ!!!

วันนี้ก็เป็นบทความแรก (ประเดิมบล็อกไปเลยละกันนะครับ) ก็จะขอเล่าเรื่องราวของเจ้าหุ่น NXT ของบริษัท Lego (แบรนด์ที่หลายๆคนคุ้นเคยเป็นอย่างดี)


            Lego Mindstrom NXT เป็นชุดประดิษฐ์หุ่นยนต์ ที่สามารถเขียนโปรแกรมสั่งให้หุ่นยนต์ที่สร้างขึ้น ทำงานตามที่เราคิดได้ อยากให้หุ่นยนต์ทำอะไรเมื่อเจอเหตุการ(Event)ต่างๆ สมมติเราได้ประกอบรถขึ้นมาคันนึงด้วยเจ้าชุด Lego Mindstrom NXT นี่แหล่ะ แต่ว่าเราอยากให้มันทำอะไรได้มากกว่ารถของเล่น อาจจะติดเซ็นเซอร์เข้ากับตัวรถ เพื่อให้อัพเกรดรถให้เจ๋งขึ้น!! ยกตัวอย่างเช่น
1. ติด Touch Sensor เพื่อเป็นกันชนของรถ ถ้าหากรถวิ่งไปข้างหน้าเรื่อยๆ แล้วเกิดชนกับอะไรเข้า เราก็สามารถเขียนโปรแกรมให้รถถอยหลัง และเลี้ยวไปทางอื่นได้


2. ติด Sound Sensor เพื่อใช้ความดังของเสียงสั่งให้หุ่นยนต์เริ่มทำงาน (เป็นการใช้Sound Sensorแบบเบสิกที่สุด)




3. ติด Ultrasonic Sensor (บ้างก็เรียกว่า Sonar Sensor)เพื่อให้หุ่นยนต์สามารถรับรู้ได้ว่า มีวัตถุขวางอยู่ข้างหน้าหรือไม่ ถ้าหากมีจริง แล้วจะให้หุ่นยนต์ทำอะไรต่อ (อาจจะวิ่งหลบ รึว่าวิ่งชนไปเลยก็ได้ )



4. ติด Light Sensor เซ็นเซอร์ชนิดนี้ ถูกเอามาใช้ในชีวิตประจำวันอย่างแพร่หลาย อย่างที่เห็นได้ชัดนั่นคือ ระบบไฟส่องสว่างอัตโนมัติ ที่ติดอยู่ตามข้างถนน หรอตามบ้านเรือนก็มีเช่นกัน แต่ในทางหุ่นยนต์NXT เซ็นเซอร์ชนิดนี้ถูกใช้เป็นตัวตรวจจับเส้น อาจจะวิ่งไปจนเจอเส้นสีดำแล้วหยุด หรือให้วิ่งตามเส้นสีดำที่ถูกตีเส้นขึ้นมาเป็นสนามให้กับหุ่นยนต์ แล้วให้หุ่นยนต์ทำภาระกิจต่างๆก็ได้ (ลองค้นหาเรื่อง WRO2014 ก็ได้ครับ)



5. ติด Colour Sensor เพื่อควบคุมการเคลื่อนไหวของหุ่นยนต์ด้วยการอ่านค่าสี เช่น เจอลูกบอลสีเขียว ให้วิ่งไปข้างหน้า และหยุดเมื่อเซ็นเซอร์อ่านค่าสีไม่ได้ หรือเจอลูกบอลสีน้ำเงิน ให้เลี้ยวซ้าย เจอลูกบอลสีแดงให้เลี้ยวขวา ฯลฯ (สามารถทำได้ตามใจนึกกันเลยทีเดียว ^^)
และยังมีอุปกรณ์ อะไหล่ต่างๆ ที่สามารถให้เราสร้างผลงาน+จินตนาการได้เป็นร้อยๆรูปแบบเลยทีเดียว



ครั้งหน้าจะเป็นการนำเอาตัวอย่างการใช้งานของเซ็นเซอร์แต่ละชนิดมานำเสนอนะครับ^^