นับตั้งแต่ทีม NETPIE ได้พัฒนาแอปปลิเคชันบนโทรศัพท์มือถือมาได้ระยะหนึ่ง โดยมีส่วนแจ้งเตือนแบบพุช (push notification) เมื่อเกิดเหตุการณ์ที่ผู้ใช้สนใจและกำหนดให้มีการแจ้งเตือน แต่ในช่วงเริ่มต้นบุคคลทั่วไปยังไม่ทราบวิธีการใช้งาน จนกระทั่ง NETPIE ได้ออกบทความอธิบายในส่วนนี้เพิ่มเติมในเวลาต่อมา ดังนั้นในบทความนี้เราจะมาศึกษากันว่า ส่วนแจ้งเตือนนี้มีประโยชน์อย่างไรรวมถึงการประยุกต์ใช้ในงานควบคุมอุตสาหกรรม
หมายเหตุ : เพื่อการเรียนรู้อย่างเป็นรูปธรรม การทดสอบนี้จะกระทำกับระบบควบคุมถังน้ำ 3 ระดับ เดิมต้องอาศัยบอร์ด LAG3-ESP32 ที่แจกให้กับผู้เข้าอบรม แต่ปัจจุบันผู้อ่านสามารถทดสอบได้โดยอาศัยการจำลองพลานต์นี้บนผลิตภัณฑ์ ESP32 ที่ท่านมีอยู่โดยไม่ต้องมีฮาร์ดแวร์เพิ่มเติมใดๆ รายละเอียดเพิ่มเติมอ่านได้จากบทความ "การจำลองฟังก์ชันถ่ายโอนของพลานต์บน ESP32" โปรแกรมประกอบบทความนี้จะตั้งให้ใช้พลานต์จำลอง หากต้องการเปลี่ยนเป็นใช้บอร์ด LAG3 ให้ใช้คำสั่ง psim=off ผ่านพอร์ตอนุกรม
ดิว.นินจา
Showing posts with label embedded systems. Show all posts
Showing posts with label embedded systems. Show all posts
Saturday, May 12, 2018
ทดสอบ push notification บน NETPIE App
นับตั้งแต่ทีม NETPIE ได้พัฒนาแอปปลิเคชันบนโทรศัพท์มือถือมาได้ระยะหนึ่ง โดยมีส่วนแจ้งเตือนแบบพุช (push notification) เมื่อเกิดเหตุการณ์ที่ผู้ใช้สนใจและกำหนดให้มีการแจ้งเตือน แต่ในช่วงเริ่มต้นบุคคลทั่วไปยังไม่ทราบวิธีการใช้งาน จนกระทั่ง NETPIE ได้ออกบทความอธิบายในส่วนนี้เพิ่มเติมในเวลาต่อมา ดังนั้นในบทความนี้เราจะมาศึกษากันว่า ส่วนแจ้งเตือนนี้มีประโยชน์อย่างไรรวมถึงการประยุกต์ใช้ในงานควบคุมอุตสาหกรรม
หมายเหตุ : เพื่อการเรียนรู้อย่างเป็นรูปธรรม การทดสอบนี้จะกระทำกับระบบควบคุมถังน้ำ 3 ระดับ เดิมต้องอาศัยบอร์ด LAG3-ESP32 ที่แจกให้กับผู้เข้าอบรม แต่ปัจจุบันผู้อ่านสามารถทดสอบได้โดยอาศัยการจำลองพลานต์นี้บนผลิตภัณฑ์ ESP32 ที่ท่านมีอยู่โดยไม่ต้องมีฮาร์ดแวร์เพิ่มเติมใดๆ รายละเอียดเพิ่มเติมอ่านได้จากบทความ "การจำลองฟังก์ชันถ่ายโอนของพลานต์บน ESP32" โปรแกรมประกอบบทความนี้จะตั้งให้ใช้พลานต์จำลอง หากต้องการเปลี่ยนเป็นใช้บอร์ด LAG3 ให้ใช้คำสั่ง psim=off ผ่านพอร์ตอนุกรม
Thursday, May 10, 2018
การจำลองฟังก์ชันถ่ายโอนของพลานต์บน ESP32
เว็บนี้ได้นำเสนอการพัฒนาตัวควบคุมป้อนกลับบน ESP32 มาสักช่วงระยะเวลาหนึ่ง โดยมากตัวอย่างในบทความก่อนหน้านี้จะอาศัยบอร์ด LAG3-ESP32 ซึ่งผู้ที่เคยฝึกอบรมกับเราจะได้รับไปพร้อมกับบอร์ด WEMOS LOLIN32 ทำให้สามารถทดลองตามไปได้ เป็นปัญหาสำหรับผู้ไม่มีบอร์ดและไม่มีเวลาบัดกรีวงจรอิเล็กทรอนิกส์บนบอร์ดอเนกประสงค์ บทความนี้จึงนำเสนอการจำลองพลานต์ LAG3 บน ESP32 ที่ให้ผลตอบสนองเช่นเดียวกับที่ได้จากวงจรอิเล็กทรอนิกส์โดยไม่ต้องใช้อุปกรณ์ใดเพิ่มเติมนอกจากบอร์ด ESP32 จากบริษัทใดก็ได้ที่ผู้อ่านมีอยู่ วิธีการนี้สามารถใช้จำลองพลานต์ใดๆ ที่บรรยายในรูปฟังก์ชันถ่ายโอน มีประโยชน์อย่างยิ่งในกรณีที่ต้องการพัฒนาทั้งตัวควบคุมและพลานต์ไปพร้อมกัน
Wednesday, April 25, 2018
ตัวควบคุมแขนกล 2 ก้านต่อบน ESP32 และ NETPIE
ในหนังสือ "การวิเคราะห์และควบคุมหุ่นยนต์อุตสาหกรรม" รวมถึงการบรรยายในชั้นเรียน ตัวอย่างหนึ่งที่ผู้เขียนใช้เพื่อขยายความเนื้อหาให้เป็นรูปธรรมมากขึ้นคือ แขนกล 2 ก้านต่อ (2-link manipulator) เนื่องจากมีโครงสร้างพื้นฐานประกอบด้วย 2 ข้อต่อแบบหมุนและเคลื่อนที่ในระนาบ 2 มิติ ทำให้ง่ายต่อการวิเคราะห์และโมเดล เมื่อผู้เรียนเข้าใจสาระของเนื้อหาในส่วนนั้นอย่างถ่องแท้แล้วก็จะขยายผลไปยังหุ่นยนต์ที่มีความซับซ้อนมากขึ้น อย่างไรก็ตามการเรียนรู้เชิงปฏิบิตทำได้เพียงสร้างโมเดลบนซอฟต์แวร์ Scilab และจำลองการทำงานเพื่อดูผลตอบสนองเท่านั้น เคยมีนิสิตสร้างโมเดลต้นแบบโดยใช้มอเตอร์ขนาดเล็กที่ไม่มีการป้อนกลับขับข้อต่อ ซึ่งสามารถใช้ในการศึกษาศาสตรหุ่นยนต์เบื้องต้น เช่นจลนศาสตร์ข้างหน้าและผกผัน (forward and inverse kinematics) แต่ในหุ่นยนต์อุตสาหกรรมจริงจะต้องมีการป้อนกลับเพื่อชดเชยผลกระทบทางพลวัตเมื่อหุ่นยนต์มีการเคลื่อนที่ ดังนั้นในบทความนี้จะนำเสนอการสร้างโมเดลของแขนกล 2 ก้านต่ออย่างง่าย ด้วยราคาที่ไม่ทำให้กระเป๋าแฟบ ขับเคลื่อนโดยดีซีมอเตอร์และมีการป้อนกลับตำแหน่งโดยเอนโคเดอร์ ตัวควบคุมอิมพลิเมนต์บน ESP32 อาศัยไลบรารี FreeRTOS และสามารถแสดงผลและควบคุมผ่านอินเทอร์เน็ตโดยอาศัยบริการคลาวด์ของ NETPIE
Tuesday, March 27, 2018
แก้ไขสัมประสิทธิ์ตัวควบคุมเชิงเส้นแบบออนไลน์โดยใช้ HTML Widget บน NETPIE Freeboard
เนื้อหาในบทความนี้ต่อเนื่องจากเรื่อง “พัฒนาระบบควบคุมบน ESP32 โดยไลบรารี FreeRTOS” โดยประเด็นสำคัญคือการแก้ปัญหาที่ทิ้งท้ายไว้ในบทความนั้นเกี่ยวกับค่าสัมประสิทธิ์ของตัวควบคุมที่เป็นค่าคงที่ในโปรแกรม เมื่อผู้ใช้เปลี่ยนค่าคาบเวลาการสุ่มของอัลกอริทึมควบคุมไปจากเดิมจะทำให้ตัวควบคุมทำงานไม่ถูกต้อง วิธีการง่ายสุดคือใช้ซอฟต์แวร์ Scilab คำนวณค่าสัมประสิทธิ์ตามคาบเวลาใหม่และอัพเดทให้กับตัวควบคุม ซึ่งสามารถส่งผ่านพอร์ตอนุกรมหรือจากหน้าของ NETPIE Freeboard ก็ได้ อย่างไรก็ตามการใช้ slider widget มีความไม่เหมาะสมบางประการ และ NETPIE ยังไม่มี widget สำเร็จรูปสำหรับการส่งคำสั่งในรูปสตริงใดๆ ให้กับอุปกรณ์ ดังนั้นเราจะศึกษาการใช้ widget ประเภท html ทำหน้าที่ดังกล่าว โดยต้องมีการใส่โค้ด JavaScript เพื่อ chat ไปหา microgear ทางด้าน ESP32
Wednesday, February 14, 2018
พัฒนาระบบควบคุมบน ESP32 โดยไลบรารี FreeRTOS
ในบทความก่อนหน้านี้ได้กล่าวแนะนำไลบรารี FreeRTOS ที่มาพร้อมกับ Arduino Core ของ ESP32 โดยเน้นประเด็นสำคัญคือการกำหนดคอร์ประมวลผลให้กับทาสก์ เพื่อให้สามารถใช้ทรัพยากรฮาร์ดแวร์ของ ESP32 ได้อย่างมีประสิทธิภาพ เพราะการเขียนโปรแกรมโดยปกติบน Arduino IDE คอร์หมายเลข 0 จะไม่ถูกใช้งาน ข้อได้เปรียบจากการใช้ ESP32 ที่เหนือกว่า ESP8266 จะยังไม่ชัดเจนตราบเท่าที่เราไม่สามารถใช้ประโยชน์จากฮาร์ดแวร์ทั้งหมดอย่างเต็มที่ สำหรับโครงงานพื้นฐานเช่นอ่านข้อมูลจากเซนเซอร์และแสดงผลผ่านอินเทอร์เน็ต คงไม่มีความจำเป็นที่ต้องใช้ ESP32 และ FreeRTOS แต่ผู้อ่านที่ติดตามเรื่องราวจากบล็อกนี้คงทราบว่างานควบคุมอุตสาหกรรมจะมีความซับซ้อนมากกว่า โดยเฉพาะตัวควบคุมป้อนกลับเช่น PID จะต้องการคาบเวลาในการประมวลผลที่คงที่และเป็นอิสระจากงานอื่น งานควบคุมสมรรถนะสูงต้องการอัตราการสุ่มที่เร็วขึ้น ดังนั้นคำสั่งในลูปควบคุมจะต้องมีเพียงเท่าที่จำเป็น งานอื่นเช่นส่วนรับคำสั่ง การส่งข้อมูลออกพอร์ตอนุกรม จอแสดงผล หรืออินเทอร์เน็ตควรถูกแยกออกจากลูป ลักษณะการทำงานเรียลไทม์แบบหลายเทรด (multithread) นี้เองทำให้การใช้ FreeRTOS มีความเหมาะสมอย่างยิ่ง นอกจากนั้นยังเป็นไลบรารีที่ใช้งานง่ายและเอื้ออำนวยต่อการจัดการและการบำรุงรักษาซอฟต์แวร์
Monday, January 1, 2018
การใช้อินเตอร์รัพท์บน ESP32 อ่านและนับค่าจากเอนโคเดอร์
ในงานควบคุมการเคลื่อนที่โดยใช้มอเตอร์ เช่นเครื่องซีเอ็นซีและหุ่นยนต์ จะนิยมใช้เอนโคเดอร์แบบส่วนเพิ่ม (incremental encoder) ในการอ่านค่าตำแหน่งของเพลา มีข้อดีคือมีจำนวนสายสัญญาณน้อยและสามารถสะสมค่าได้ แต่จำเป็นต้องมีภาครับที่สามารถแปลงสัญญาณและนับจำนวนพัลซ์ที่สัมพันธ์กับค่าตำแหน่ง ในไมโครคอนโทรลเลอร์ที่ออกแบบมาสำหรับงานควบคุมมอเตอร์ เช่น PIC ตระกูล MC จาก บ.ไมโครชิพ จะมีโมดูล QEI (Quadrature Encoder Interface) ที่เป็นฮาร์ดแวร์เฉพาะสำหรับงานดังกล่าว และมีวงจรเสริมเช่นตัวกรองดิจิทัล ทำให้สามารถอ่านค่าได้อย่างแม่นยำและรวดเร็ว อย่างไรก็ตาม สำหรับงานที่ไม่ต้องการสมรรถนะสูงมาก เช่นการทดลองในชั้นเรียน เราสามารถใช้ขาอินพุตอินเตอร์รัพท์ภายนอกช่วยในการอ่านและนับค่าจากเอนโคเดอร์แบบส่วนเพิ่มได้ ในบทความนี้จะกล่าวถึงการพัฒนาส่วนเชื่อมต่อเอนโคเดอร์บน ESP32
Sunday, November 26, 2017
การติดตั้งและแก้ปัญหาไลบรารีสำหรับ ESP32 เพื่อใช้งานกับ Arduino IDE และ NETPIE

เชื่อว่าผู้อ่านหลายท่านคงได้ยินชื่อ ESP32 หรืออาจจะเคยลองเล่นบ้างแล้ว ESP32 เป็นผลิตภัณฑ์ใหม่จากบริษัท Espressif ผู้ผลิต ESP8266 ที่ได้รับความนิยมอย่างมากในปัจจุบัน โดยชิพตัวใหม่นี้มีคุณสมบัติที่เหนือกว่าหลายประการเช่น สามารถพัฒนาการสื่อสารทั้ง WiFi และ Bluetooth มีจำนวน ADC มากกว่า มีเอาต์พุต DAC มี 2 cores ฯลฯ วัตถุประสงค์ของบทความนี้มิใช่เป็นการลงรายละเอียดด้านฮาร์ดแวร์ของ ESP32 แต่เพียงเพื่อแนะนำการติดตั้งและแก้ปัญหาสำหรับผู้เริ่มใช้งานใหม่ ณ เวลาปัจจุบันที่เขียนนี้ (พย. 2560) ทั้งนี้เนื่องจากไลบรารีที่เกี่ยวข้องกับ ESP32 ยังอยู่ระหว่างการพัฒนาทำให้อาจเกิดปัญหาความเข้ากันไม่ได้ของซอฟต์แวร์ ซึ่งคงจะถูกปรับปรุงแก้ไขให้ดีขึ้นในอนาคต
Wednesday, July 12, 2017
บอร์ดจำลองพลวัตของดีซีมอเตอร์
ดีซีมอเตอร์ (DC motors) เป็นอุปกรณ์ตัวขับเร้า (actuators) ที่นิยมใช้ในระบบควบคุมการเคลื่อนที่พื้นฐาน เช่นเครื่องซีเอ็นซีหรือแขนกลขนาดเล็ก มีข้อดีหลายประการเช่น พลวัตที่ง่ายต่อการโมเดล มีขนาดเล็ก ไม่ต้องการชุดขับที่ซับซ้อน และราคาไม่สูงมาก ทำให้มีความเหมาะสมเป็นอย่างยิ่งสำหรับการทดลองในห้องปฏิบัติการของสถานศึกษาหรือแผนกวิจัยของภาคเอกชน
อย่างไรก็ตามการใช้ดีซีมอเตอร์ประกอบการสอนในวิชาบรรยายหรือการจัดอบรมนอกสถานที่ยังเป็นปัญหาเรื่องความสะดวกในการขนย้ายและจัดเตรียมการทดลอง เพราะเป็นอุปกรณ์ไฟฟ้าเชิงกลที่ยังต้องการชุดขับและแหล่งจ่ายกำลัง ต้องมีการเดินสายและติดตั้ง ผนวกกับขนาดและน้ำหนักของตัวมอเตอร์เอง
ด้านการใช้งานในห้องปฏิบัติการหรือวิจัย ปัญหาอีกประการที่สำคัญและเกิดขึ้นเสมอคือหากมีความผิดพลาดในระบบ หรือเมื่อตัวควบคุมเสียเสถียรภาพอาจก่อให้เกิดความเสียหายต่อตัวมอเตอร์/ชุดขับ หรือถึงขั้นเกิดอันตรายกับผู้ปฏิบัติงานได้กรณีมอเตอร์กำลังสูง
การใช้งาน NETPIE FEED เบื้องต้น
NETPIE Series
Freeboard widgets พื้นฐานที่กล่าวในหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266” จะใช้ในการแสดงข้อมูลปัจจุบันให้ผู้ใช้งาน ในกรณีที่ต้องการเก็บข้อมูลเป็นชุดตามฐานเวลาในลักษณะเช่นเดียวกับการใช้ ThingSpeak ในบทที่ 4 จะต้องใช้บริการอีกรูปแบบหนึ่งที่มีให้ใน NETPIE เรียกว่า Feeds ซึ่งจากการทดสอบใช้งานได้ดีแม้จะมีข้อจำกัดการใช้งานอยู่บ้าง เช่นอัตราการเก็บข้อมูลเฉลี่ยประมาณ 15 วินาทีต่อหนึ่งจุด เพื่อการแบ่งปันทรัพยากรสำหรับการใช้งานฟรีโดยผู้ใช้ทั่วไป แต่โดยรวมแล้วเห็นว่าเหมาะสมเพราะสามารถเชื่อมต่อกับ Freeboard ได้การส่งข้อมูลจาก Freeboard Slider หลายตัวไปยัง ESP8266 microgear
NETPIE Series
จากตัวอย่าง ex5_3.ino ในหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266” ได้แสดงการควบคุมและแสดงผลผ่าน NETPIE เบื้องต้น โดยใช้ slider widget ส่งคำสั่งอ้างอิงให้กับตัวควบคุม และส่งข้อมูล 3 ค่ากลับไปแสดงผล จากตัวอย่างจะเห็นว่าการส่งข้อมูลหลายชุดไปยัง NETPIE สามารถทำได้โดยง่าย แต่การที่จะส่งข้อมูลจาก NETPIE ไปยังบอร์ดมากกว่าหนึ่งตัวยังคงเป็นปัญหาที่ยังไม่มีการแสดงวิธีการอย่างชัดเจน ซึ่งจากการบรรยายในชั้นก็มีคำถามนี้จากผู้เรียน
Subscribe to:
Posts (Atom)
แนะนำหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266”
ปัจจุบันเมื่อกล่าวถึงอุปกรณ์ IoT (Internet of Things) คงมีน้อยคนที่จะไม่รู้จัก ในยุคที่การเข้าถึงอินเทอร์เน็ตเป็นกิจวัตรประจำวันของมนุษย์เ...
-
สำหรับระบบฝังตัวทั่วไปหรืออุปกรณ์ไอโอที วิธีการหนึ่งที่นิยมใช้ในการเพิ่มความฉลาดกับอุปกรณ์และความเป็นมิตรกับผู้ใช้งาน คือความสามารถในการจดจ...
-
Update : บทความนี้ได้เขียนขึ้นในขณะที่ ESP32 เพิ่งออกสู่ตลาดเป็นเวลาไม่นาน ทำให้ขั้นตอนการติดตั้งเครื่องมือพัฒนามีความยุ่งยากโดยเฉพาะสำหร...
-
เนื่องจาก NETPIE2020 เป็นแพลตฟอร์มใหม่ที่เพิ่งเปิดตัว ดังนั้นตัวอย่างที่แสดงบนเว็บจะเน้นการใช้งานขั้นพื้นฐาน โดยเฉพาะด้านการส่งคำสั่งให้กับ...