ความเร็วสูง ก็ใช้ตัวนี้ได้นะคะ อันนี้ตัวอย่างที่ 1 นะคะ มาดูตัวอย่างต่อไปนะคะ ตัวอย่างที่ 2 ตัวนี้นะคะ คลิปนี้เขาเอา Servo Motor ไปทำเป็นระบบเปิดประตู สั่งเปิด-ปิดประตูนะคะเด็ก ๆ เหมือนจะเปิดเกินไปแล้ว เดี๋ยวนะคะ โฆษณาขึ้น เมื่อเราดู Youtube อันนี้จำลองนะคะ ทำเป็นบ้านจำลองนะคะ แล้วก็ดูอุปกรณ์ต่อ อันนี้ต่อจากคอม ของเรานี่ เราเทสต์ ต่อจากคอมฯ นะคะเด็ก ๆ ใช้บอร์ดตัวเดียวกับเราเลย ESP8266 ให้ดูข้างใน นี่ ๆ ตัว Servo จะอยู่นี่นะคะ แล้วก็มาทำไอ้ตัวแกนเปิดประตูเพิ่มขึ้นอีกนิดหนึ่ง เห็นไหมคะ เปิดประตูเลย ๆ นี่ สั่ง Open เห็นไหมคะ ดูนะคะ ประตูมันปิดอยู่นะ เดี๋ยวพอเขากดเห็นไหมคะ เห็นไหมคะ เปิด-ปิด ควบคุมการเปิด-ปิดด้วยมือถือนะคะ โดยใช้ Servo Motor ตัวที่เราจะได้ทดลองใช้นะคะ มาดูตัวอย่างอีก 1 ชิ้นค่ะ ตัวอย่างที่ 3 ค่ะ เป็นการนำ Servo Motor ไปประยุกต์ใช้กับถังขยะ ให้นึกถึงช่วงโควิดนะ เชื้อโรคเพราะฉะนั้น การไปจับถังขยะเราก็จะไม่ปลอดภัย ใช่ไหม ก็เลยเป็นไอเดียว่าทำถังขยะอัตโนมัตินะคะ ของคนนี้เขาพัฒนารุ่นแรกเป็นการใช้ Sensor ถังขยะเปิดตามแสง ตัวใหม่เขา ใช้เป็นจับการการเคลื่อนไหวนะคะ ซึ่งเรามีอุปกรณ์ชิ้นนี้อยู่ เดี๋ยวเราจะไปหาถังขยะมาให้เด็ก ๆ ทดลองทำนะคะ นี่ ๆ ตัว Ultrasonic เรามีแล้วนะคะ สาย Jumper เราก็มีอยู่แล้วประกอบชิ้นส่วนนะคะ เดี๋ยวเด็ก ๆ จะได้ทดสอบระบบตัวนี้ นะคะ ถังขยะอัตโนมัติ เดี๋ยวเขาจะ Test ให้ดู หลักการก็คือ ดู Ultrasonic นะคะ เซนเซอร์ตัวนี้ ก็คือจับความเคลื่อนไหว นี่เห็นไหม มีวัตถุเคลื่อนเข้ามาใกล้รัศมีนี้ ฝา ถังขยะก็จะเปิดเองอัตโนมัติเห็นไหมคะ เดี๋ยวย้อนให้ดูอีกครั้งหนึ่งนะคะ เห็นไหม มีวัตถุเลื่อนเข้ามา Ultrasonic จับได้ก็เปิดนะคะ นั่นคือตัวอย่างการนำ Servo Motor ไปประยุกต์ใช้นะคะ ทีนี้เราจะสั่งให้ Servo Motor ทำงานได้อย่างไร เราก็ต้องมาเขียนโค้ดให้มัน ทีนี้ เราต้องมาดูว่าโค้ดที่เราจะเขียนนี่ มันมีฟังก์ชันหรือคำสั่งอะไรบ้างนะคะ อันดับแรกเลย เราจะต้องเรียกใช้ Library นะคะ Library ที่ชื่อว่า Servo.h เห็นไหมคะ ตัวแรกเลยนะคะ เมื่อเราจะใช้งาน Servo ตัวนี้ เราต้องเรียกใช้ Library Servo.h แล้วทีนี้สิ่งที่ต่อมา ก็คือใน Arduino IDE ของเรานี่นะคะ มันก็จะมีฟังก์ชัน เมื่อเรียกใช้ Library นี้แล้ว จะไปเรียกใช้ฟังต่าง ๆ ที่จะมาควบคุมตัว Servo ตัวนี้ได้ ฟังก์ชันแรก ก็คือ attach() นะคะ จะเป็นฟังก์ชันที่ใช้ในการกำหนดขาสัญญาณ ไอ้ตัวสายสีส้มน่ะ นั่นแหละเราจะกำหนดค่าสัญญาณให้สายสีส้มนะคะ ด้วยคำสั่งนี้นะคะ ซึ่งเราจะต้องต่อ ตัว Servo Motor เข้ากับบอร์ดนะ เข้ากับบอร์ดทดลองเรา แล้วก็เข้ากับ...ตัว Node MOU เรานะคะ เสร็จแล้วก็จะกำหนดค่าให้กับพัลส์ที่เราจะเชื่อมกับ Servo นั่นเองนะคะ โดยคำสั่งนี้เราจะต้องเรียกใช้งานโดยจะต้องพิมพ์คำว่า "Servo.attach() ในวงเล็บนะคะ วงเล็บเปิดวงเล็บปิด pin pin ในที่นี้ หมายถึง ขา ขาในตัวบอร์ดของเรานะเด็ก ๆ นะคะ ก็คือเราจะให้เชื่อมกับขาไหนเราก็ระบุเลข pin นั้นลงไปนะคะ ไม่ใช่เลข Pin ค่าของนะคะ หรือเขาบอกว่า หรือเขียนอีกรูปแบบหนึ่งว่า servo.attach ในวงเล็บ pin อะไรล่ะ ลูกน้ำไหม ลูกน้ำ... ไม่ใช่ . นะ ลูกน้ำ ลูกน้ำ ลูกน้ำนะคะ ไม่ใช่ . นะคะ เด็ก ๆ แล้วก็ min คือ ค่า กำหนดค่าให้สูงสุดก็ได้ กำหนดค่าให้ Min ต่ำสุด Max สูงสุดนะคะ แต่ส่วนใหญ่มันจะรับค่าที่ pin เดียว เพราะเราเชื่อมเฉพาะตัว Servo กับบอร์ดเรานะคะ เพราะฉะนั้น ก็จะเขียนในรูปแบบแรก นี่เป็นฟังก์ชันแรกที่เราจะต้องเรียกใช้ ตัวต่อมาฟังก์ชันที่ 2 ฟังก์ชัน write นะคะ เราจะต้องพิมพ์คำว่า Write W-r-i-t-e แล้วก็ตามด้วยวงเล็บเสมอนะคะ ฟังก์ชันนี้ใช้ในการควบคุมตำแหน่ง ที่เราอยากให้ Servo มันหมุน ให้นึกถึงนะ 90 ถ้าเราจะให้หมุนไปทางขวามือ คือ 0 ฟังก์ชันนี้เห็นไหมคะ ในวงเล็บก็คือถ้าเราให้หมุนไปที่ 0 องศา ในวงเล็บเราก็ใส่ 0 ลงไปนะคะ Servo.write แล้วก็ตามด้วยในวงเล็บนะคะ เวลาเรียกใช้คำสั่ง เราต้องพิมพ์คำว่า Servo.writeวงเล็บเปิด ในวงเล็บใส่ค่าองศาที่เราต้องการให้หมุน เหมือนภาพในสไลด์ให้ดูที่บอกว่าถ้าเราหมุนตามเข็มนาฬิกาไปทางขวา ค่าที่กำหนดนั่นก็คือ 0 แต่ถ้าเราต้องการให้มันหมุนไปที่ 180 องศา ก็คือหมุนทวนเข็มนาฬิกานะคะ ใน angle เราก็ใส่เป็น 180 แต่ถ้าเราจะให้มันหมุนกลับมาที่ตรงกลาง กึ่งกลาง 90 องศา ใน aAngle เราก็ใส่ 90 นะคะ เพราะค่าเราบอกแล้วเราจะกำหนดที่ 0-180 ได้นะคะ มาดูฟังก์ชันต่อมาที่เราจะได้ใช้นะคะ ถ้าได้ใช้นะ คือบางตัวนี่ไม่จำเป็นต้องใช้ทุกฟังก์ชันนะคะ แต่ฟังก์ชันตัวที่ 3 ชื่อว่า writeMicroseconds() นะคะ writeMicroseconds() ฟังก์ชันที่ใช้ควบคุมตำแหน่ง Motor นะคะ ให้หมุนไปตามองศาที่เรากำหนด แต่ตัวนี้ writeMicroseconds() นี่ จะต้องมากำหนดค่าความกว้างของพัลส์ในหน่วย µs เพิ่มเข้าไปด้วยนะคะ ซึ่งโดยปกติค่าความกว้างของเขาจะอยู่ที่ 1,000-2,000 us นะคะ แต่ แต่มันก็เป็นกับบางรุ่นนะ เพราะฉะนั้น เวลาไปซื้อ Servo น่ะต้องเช็กนะคะ ว่ามันสามารถหมุนได้กี่องศา มันมีต่ำสุด 90 นะคะ แล้วก็ 180 นะคะ แล้วแต่นะคะ เพราะฉะนั้น เราสามารถกำหนดค่าได้นะคะ แต่เราก็ต้องดูว่าไอ้มอเตอร์เราน่ะ Servo Motor  เราน่ะ ตัวหมุนมันน่ะ หมุนได้เท่าไรนะคะ วิธีการใช้นะคะ เราจะต้องพิมพ์คำสั่ง servo.writeMicroseconds ตามด้วยในวงเล็บ จะบอกว่า u ไหม ไม่ใช่สิ เหมือนตัว µ µs อย่างนี้นะคะ เด็ก ๆ จะเข้าใจง่ายกว่านะคะ ก็คือระบุค่าตัวเลขลงไปน่ะค่ะ ว่าค่า เป็นเท่าไร 1,000-2,000 ได้ แต่เขาบอกบางตัวพัลส์จะอยู่ 700-2300 อย่างนี้ ก็แล้วแต่เราจะกำหนดว่าเราต้องการให้การหมุนน่ะค่ะ ความกว้างของ มันเท่าไรนะคะ เพราะถ้าตั้งเขาบอกว่าถ้าตั้งมากเกินไปนี่ เวลาทำมอเตอร์มันจะหมุนเกิน เกินค่าตัวที่มันกำหนดไว้นี่ มันก็จะมีเสียงค้างได้นะคะ แล้วก็จะทำให้เกิดการกินกระแสไฟด้วยนะคะ ตัวนี้นะคะ ใช้หรือไม่ใช้ก็ได้ตัวนี้ ก็คือเมื่อที่มีการกำหนดค่า ถึงจะมาใช้ Servo.writeMicroseconds() นะคะ ฟังก์ชันต่อมา ฟังก์ชัน read ค่ะ เป็นฟังก์ชันที่ใช้ในการอ่านค่าองศานะคะ ก็คืออ่านค่าองศาของอะไร ให้นึกถึงว่าก่อนหน้าเราจะ read นี่ เราจะต้องเรียกใช้ write ก่อนนะคะ เพราะฉะนั้น เมื่อค่าองศา แรกที่เราเรียกไป คือ 0 เพราะฉะนั้น เวลาเราจะใช้คำสั่งนี้นะคะ เราก็จะพิมพ์ servo..read() นะคะ ก็คือถ้าวงเล็บแล้วไม่ใส่ค่าอะไรนี่ มันจะหมายถึงว่าไม่ได้กำหนดพารามิเตอร์นะคะ แต่ถ้าอยากกำหนด นั่นก็คือให้ใส่ช่วงองศา เหมือนที่บอกน่ะ ในตัว write 0 90 180 แต่เราก็ไม่จำเป็นต้องหมุนให้มันตรง 90 เป๊ะ ก็ได้ ให้นึกถึงว่า 1-180 องศานี่ 1 องศา เด็ก ๆ ก็กำหนดได้ แล้วแต่เราจะกำหนดนะคะ ว่าเราจะให้ค่าองศาที่เท่าไรนะคะ เหลืออีก 2 ฟังก์ชันค่ะ ที่จะได้ใช้นะคะ ฟังก์ชันนี้ชื่อว่า attached() อ๋อ อย่างนั้นเดี๋ยวอาจารย์ขอเบรกแป๊บหนึ่งนะคะ ขอพักเบรกแป๊บหนึ่งนะคะ ให้เด็กไปเข้าห้องน้ำ ค่ะ บอกพี่ล่าม พี่ล่ามช่วยบอกน้อง ๆ ใครจะไปเข้าห้องน้ำตอนนี้ ให้เวลาพักกี่นาที 15 นาทีแล้วกันค่ะ เอา 15 นาทีนะคะ ใครจะไปเข้าห้องน้ำ ให้เวลาไปเข้าห้องน้ำค่พเด็ก ๆ อาจารย์ก็จะไปเข้าเหมือนกัน โอเคค่ะ ขอเบรกก่อนนะคะ ให้เริ่มเลยเหรอ ค่ะ เดี๋ยวเรามาเรียนต่อนะคะ ทุกคนกลับเข้าโหมดก่อน 15 นาที มาดูนะคะ ฟังก์ชันต่อไปที่เราจะใช้นะคะ ก็คือฟังก์ชัน attached นะคะ เป็นฟังก์ชันที่ใช่ในการตรวจสอบ ว่า Servo Motor ของเรานี่นะคะ มันต่ออยู่กับขาตัวบอร์ดเราหรือเปล่านะคะ เช็กว่ามันต่อหรือไม่ต่อนนะคะ วิธีการเช็กฟังก์ชันนี้นะคะ เราจะต้องพิมพ์คำว่า Servo.attached แล้วก็ตามด้วยวงเล็บนะคะ ซึ่งค่าที่มันจะส่งออกมานะคะ ใน Arduino เราก็คือจะส่งค่าที่เป็น To ออกมาถ้าต่อนะ To นี่ก็ต่อเมื่อแจ้งว่าขา ขา Jumper เรากับบอร์ด ขา Jumper ที่ต่อจาก Servo แล้วไปต่อที่บอร์ด มันต่อนะคะ มันถึงจะส่งค่า To ออกมาว่าเป็นจริง ก็คือบอกให้รู้ว่าอ๋อ มีขาเสียงต่อจริง ๆ นะคะ มาดูฟังก์ชันสุดท้ายนะคะ ฟังก์ชัน detach() คือฟังก์ชันในการคืนสถานะ เห็นไหมคะ attached() เข้าไปแล้วใช่ไหมคะ ก็ detach มันออกมา ก็คืนค่าให้มัน ค่าของขาที่เรากำหนดในการควบคุมนั่นเองนะคะ โดยวิธีการก็คือพิมพ์คำสั่ง servo.detach แล้วก็วงเล็บเปิดปิดนะคะ ในส่วนของคำสั่ง หรือฟังก์ชันต่าง ๆ ที่เราจะใช้ในการควบคุม servo ก็มีเท่านี้นะคะ ทีนี้ เรามาดู ต่อไปเราจะทำอะไร เรามาดูอุปกรณ์ค่ะ อุปกรณ์ที่เราจะใช้ในการต่อ ต่อ servo ของเรานะคะ ตัวแรก NodeMCU Esp 8266 ตัวนี้นะคะ อุปกรณ์ตัวนี้ของเรา ตัวที่ 1 นะคะ NodeMCU ของเราใช้ ESP 8266 นะคะ เด็กๆ ตัวต่อมา อุปกรณ์ต่อมาที่เราจะใช้ ก็คือตัว NodeMCU Base นะคะ ก็คือตัวบอร์ดขาว ๆ นี่ เพื่อจะเสียบ NodeMCU Esp8266 แล้วจะต่อวงจรกับ Servo นะคะ อุปกรณ์ชุดถัดมาตัวที่ 3 ก็คือชุด Servo Motor  ของเราเป็น SG90 นะคะ ซึ่งจะมีความสามารถในการหมุนได้ที่ 0-180 องศา ในชุดมันก็จะประกอบด้วย Servo Motor แล้วก็ตัวใบ... จะเรียนใบพัดไหมนะคะ แล้วก็มีน็อตนะคะ ใบพัดจะเอาไว้เสียบด้านบนนะคะ แล้วก็ตัวสาย Jumper ของมันอยู่ในตัวอยู่แล้วนะคะ นี่คือชุด Servo Motor ที่เราจะใช้ในการทดสอบนะคะ อุปกรณ์ตัวต่อมา ก็คือสาย Micro USB ต่อมา ก็คือสาย Micro USB เพื่อที่จะต่อ บอร์ดที่เราต่อนี่เข้ากับคอมพิวเตอร์ แล้วก็เพื่อใช้การ Coding เพื่อควบคุมให้ Servo ให้ทำงานนะคะ ก็คือต่อสาย USB นี่ เข้ากับบอร์ด Esp8266 เรานะคะ แล้วก็ต่อกับคอมพิวเตอร์ค่ะ และตัวสุดท้าย เป็นสาย Jumper สายต่อวงจรเป็น Jumper ตัวผู้นะคะ เด็ก ๆ ผู้ผู้ ก็คือมันจะมีขาถ้าผู้เมียนี่ ด้านหนึ่งจะมีขา ด้านหนึ่งจะไม่มีขาใช่ไหม แต่ของเราใช้ผู้-ผู้ เพราะว่าไอ้ตัว Jumper ในสาย Jumper ตัว Servo มันจะเป็นตัวเมียนะคะ ทีนี้ เราจะต่อจาก Servo ไปที่บอร์ด เราจะต้องใช้ขาทั้ง 2 ฝั่งนะคะ เพราะฉะนั้น เป็นแบบผู้-ผู้นะคะ ให้เด็ก ๆ เอาอุปกรณ์ตัวเองขึ้นมานะคะ แล้วทำการต่อ... ต่อบอร์ดเข้ากับคอมพิวเตอร์ก่อนนะคะ แล้วเปิดArduino IDE เราขึ้นมาค่ะ นะคะ เราจะเดินไปดูนะคะ บาส บาสต่อวงจรบอร์ดกับไอ้นี่ แล้วเช็กว่าไฟขึ้นหรือยัง ต่อให้ดูก่อน เด็ก ๆ ดูนะคะ ตอนนี้บาสจะเลือก Servo แล้วก็ตัวใบพัดแบบนี้นะคะ แล้วจะเปลี่ยนใบพัดเป็นแบบเหมือนในรูปตัวอย่างของเรา ต่อไป สายตัวผู้ สาย Jumper ตัวผู้ เอาสาย Jumper ตัวผู้ให้ดูสิ เลือกมาถูกไหม สั่ง เลือกมา 3 เส้น บาสดึงออกมา 3 เส้น เอาออกมา 3 เส้นค่ะ ใช้ 3 เส้นนะลูก โอเค ผู้-ผู้นะคะ สังเกตเห็นไหม ขา ให้ดู ตรงขาจะมีขาทั้ง 2 ฝั่ง หมุนอีกฝั่งหนึ่งให้ดูด้วยครับ หมุนฝั่งด้านล่างให้เพื่อนดูด้วย ของคนอื่นนะคะ ก็ต้องเลือกให้มี... นี่เห็นไหม ด้านบนก็มีขา พลิกอีกด้านหนึ่ง พลิกอีกด้านหนึ่งลูก โอเค โอเคนะคะ ทีนี้ แสดงว่าหยิบผิดใช่ไหมคะ บอกแล้วต้องมีขาทั้งสอง เห็นไหม สาย Jumper ของเรามีหลายแบบนะเด็ก ๆ อย่าลืม เห็นไหมคะ สาย ผู้- ผู้ นั่นก็คือก็เป็นมีขา กลับอีกด้านหนึ่งเห็นไหมคะ อีดด้านหนึ่งก็มีขานะคะ นี่คือสายผู้ Jumper แบบผู้-ผู้ ตัวแรกต่อกับ เห็นไหมคะ ส้ม แดง แล้วก็ของเราน่าจะเป็นน้ำตาลไหม เดี๋ยวนะ ขอดู... ให้ ให้บาสนะคะ เอา Jumper ตัวผู้ต่อเข้าที่สาย Jumper ตัวเมียของ Servo สีน้ำตาล เลือก... พยายาม ใช่ ๆ อันนี้บอร์ด พยายามต่อ Micro USB เรียบร้อยแล้วนะคะ เพื่อน ๆ ต้องเสียเหมือนบาสนะคะ ต่อไปบาสต่อ Servo กับ บาสดูพี่ล่าม บาสดูพี่ล่าม ต่อแล้วนะ โอเค ทีนี้ ต่อกับบอร์ด เอาไปต่อกับบอร์ดลูก สายแรก ขาแรก คือ สีส้มนี่ ให้ต่อลงเดี๋ยวนะ ขอดูโค้ดแป๊บหนึ่ง