ดิว.นินจา

ดิว.นินจา

Sunday, July 16, 2017

ทดสอบการใช้งานวงจร LAG3 ร่วมกับบอร์ด WEMOS D1 R2

ในหนังสือ ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266 และใน IoFC workshop ที่ ม.นเรศวร เราได้ใช้บอร์ด ESPino ที่ผลิตโดย ThaiEasyElec ทำหน้าที่ควบคุมบอร์ดจำลองถังน้ำ 3 ระดับ เรียกโดยย่อว่าบอร์ด LAG3 มาจากชื่อ 3rd order lag [1] ซึ่งเป็นพลานต์ที่มีความเหมาะสมมากในการศึกษาการวิเคราะห์และออกแบบระบบควบคุม การสร้างโมเดลโดยวงจรอิเล็กทรอนิกส์ให้ผลที่ใกล้เคียงกับการจำลองโดยคอมพิวเตอร์และมีความสะดวกในเชิงปฏิบัติการ คือมีขนาดเล็ก สามารถใช้ไฟเลี้ยงจากบอร์ดควบคุม และใช้ทดสอบตัวควบคุมได้ตั้งแต่แบบ PID จนถึงการป้อนกลับสเตต (state feedback) เนื่องจากเอาต์พุตของออปแอมป์ทั้ง 3 ภาคสามารถวัดค่าได้ ผู้เขียนได้ใช้บอร์ด LAG3 นี้ทดสอบตัวควบคุมแบบไม่เป็นเชิงเส้นตามแนวคิดใหม่ที่นำเสนอในงานประชุมวิชาการ ICCRE2017 [2]

จากการสำรวจคร่าวๆ โดยผู้เขียนเองพบว่านอกจากบอร์ด ESPino แล้ว ผลิตภัณฑ์ ESP8266 ที่นักพัฒนาในประเทศไทยนิยมใช้ก็คือ NodeMCU ซึ่งมีขาสัญญาณแตกต่างออกไปและไม่สามารถใช้กับบอร์ด LAG3 ได้โดยตรง ส่วนอีกผลิตภัณฑ์หนึ่งที่เพิ่งจะได้มาคือบอร์ด WEMOS รุ่น D1 R2 ในรูปที่ 1 ที่ดูเผินๆ แล้วมี form factor เดียวกับ Arduino รุ่น UNO หรือ M0 ดังนั้นในบทความนี้เราจะลองทดสอบโมเดล LAG3 กับบอร์ด WEMOS โดยใช้โปรแกรมที่ใช้รันบน ESPino ก่อนหน้านี้

รูปที่ 1 บอร์ด WEMOS รุ่น D1 R2

หมายเหตุ: เพื่อความกระชับต่อไปเราจะใช้คำว่า WEMOS แทนบอร์ด WEMOS รุ่น D1 R2

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

  • WEMOS ใช้ชิพ USB เบอร์ CH340G ซึ่งมีไดรเวอร์ที่สามารถดาวน์โหลดได้จากอินเทอร์เน็ต (แต่จากการทดลองพบว่าเมื่อเสียบเข้ากับคอมพิวเตอร์ที่ใช้ Windows 10 จะใช้งานได้เลย)
  • ขา ADC มีวงจรแบ่งแรงดันอยู่ภายใน ทำให้สามารถรับสัญญาณได้สูงสุด 3.3 โวลต์ (ตัวชิพ ESP8266 รับแรงดัน ADC ได้สูงสุด 1 โวลต์)
  • WEMOS มี LED บนบอร์ดต่อกับขา GPIO2
  • ถึงแม้ว่าจะมี form factor เดียวกับ Arduino UNO แต่ขาสัญญาณจะไม่เหมือนกันทั้งหมด โดยคอนเนกเตอร์ของ WEMOS จะมีสัญญาณที่ซ้ำกันอยู่

สำหรับผู้อ่านภาษาอังกฤษได้ ลิงก์ด้านล่างนี้ได้รวบรวมข้อแตกต่างระหว่าง UNO กับ WMOS รวมถึงอธิบายการโปรแกรมโดยใช้ Arduino IDE อย่างละเอียด

http://www.instructables.com/id/Programming-the-WeMos-Using-Arduino-SoftwareIDE/

ถึงแม้ว่าบอร์ด LAG3 ได้ออกแบบให้ใช้งานกับ Arduino UNO ได้ แต่เมื่อเสียบเข้ากับ WEMOS จะเกิดปัญหาเรื่องขาสัญญาณชนกัน ซึ่งตรงส่วนของ PWM ที่จ่ายให้กับอินพุตของโมเดลสามารถกำหนดโดยซอฟต์แวร์ใหม่ได้ แต่บน LAG3 เราได้เพิ่ม RGB LED เพื่อเพิ่มสีสรรในการแสดงผล ตรงส่วนนี้ไม่สามารถแก้ได้โดยง่าย นอกจากนั้น LED บนบอร์ด WEMOS ต่อกับขาสัญญาณที่แตกต่างจาก ESPino

ดังนั้นเพื่อให้ RGB LED ทำงานได้สมบูรณ์และให้ LED บนบอร์ด WEMOS กระพริบตามความถี่ของการสุ่มสัญญาณด้วย จึงย้ายขาสัญญาณดังต่อไปนี้

  • สัญญาณสำหรับวัดคาบเวลาการสุ่ม GPIO16 --> GPIO2
  • เอาต์พุตหลอด LED สีแดง GPIO12 --> GPIO15
  • เอาต์พุตหลอด LED สีเขียว GPIO2 --> GPIO13

เอาต์พุตจากตัวควบคุมยังคงใช้ GPIO0 (ซึ่งต้องแก้ไขเนื่องจากบนคอนเนกเตอร์ของ Arduino ต่อกับตำแหน่ง PWM ~9) การแก้ไขวงจรใช้วิธีตัดลายทองแดงและใช้สาย wire wrap เชื่อมต่อขาสัญญาณใหม่

ด้านการตั้งค่าบน Arduino IDE แทบไม่ต้องทำอะไรมากเนื่องจากไลบรารีใช้ของเดิมได้ทั้งหมด เพียงแต่เลือกบอร์ดเป็น WeMos D1 R2 & mini และเลือกหมายเลขพอร์ตให้ตรงเท่านั้นก็สามารถคอมไพล์และโหลดโปรแกรมได้

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

รูปที่ 2 การทดสอบขั้นพื้นฐาน

ขั้นสุดท้ายคือทดสอบการเชื่อมต่ออินเทอร์เน็ตและบริการคลาวด์ของ NETPIE ดังแสดงในรูปที่ 3 ซึ่งได้ผลเช่นเดียวกับการใช้บอร์ด ESPino ทุกประการโดยไม่ต้องมีการแก้ไขโค้ดใดๆ

รูปที่ 3 ทดสอบการเชื่อมต่อกับ NETPIE

สรุป

ผลการทดสอบโมดูล LAG3 กับบอร์ด WEMOS D1 R2 พบว่าใช้งานได้เช่นเดียวกับ ESPino ทุกประการ สิ่งที่ต้องระวังคือขาสัญญาณที่คอนเนกเตอร์ของ WEMOS ที่ไม่เหมาะสมกับบอร์ดที่ออกแบบไว้เดิมทำให้ต้องมีการแก้ไข ซึ่งเรามีแผนจะออกแบบแผ่นวงจรใหม่สำหรับบอร์ดนี้โดยเฉพาะสำหรับนักพัฒนาที่ใช้ WEMOS

บรรณานุกรม

  1. K.J. Astrom and T. Hagglund. Advanced PID Control. Instrumentation, Systems, and Automation Society, 2006.
  2. V. Toochinda and A. Suwannakom, “Practical discrete-time implementation of reset control systems” IEEE International Conference on Control and Robotics Engineering, 2017.

No comments:

Post a Comment

แนะนำหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266”

ปัจจุบันเมื่อกล่าวถึงอุปกรณ์ IoT (Internet of Things) คงมีน้อยคนที่จะไม่รู้จัก ในยุคที่การเข้าถึงอินเทอร์เน็ตเป็นกิจวัตรประจำวันของมนุษย์เ...