อาจกล่าวได้ว่าส่วนที่สำคัญที่สุดในระบบที่ใช้คอมพิวเตอร์ในการแสดงผลหรือควบคุมคือการอ่านค่าจากอุปกรณ์ที่ใช้ในการเปลี่ยนค่าที่ต้องการวัดเป็นแรงดันหรือกระแสไฟฟ้า หรือเป็นโมดูลสำเร็จที่สามารถอ่านค่าได้ผ่านการสื่อสารประเภทต่างๆ ในปัจจุบันเซนเซอร์มีให้เลือกใช้อย่างหลากหลายขึ้นกับงานที่ต้องการใช้ คุณภาพ ราคา และคุณสมบัติอื่นๆ และส่วนใหญ่ที่มีการใช้งานแพร่หลายจะมีผู้พัฒนาไลบรารีสำหรับอ่านค่าไว้แล้ว โดยเฉพาะสำหรับ Arduino จึงไม่จำเป็นต้องเขียนโค้ดเองจากเริ่มต้น แต่ข้อเสียของการใช้ไลบรารีสำเร็จคือมักห่อหุ้มการตั้งค่าต่างๆ ไว้ภายใน ซึ่งบางครั้งต้องมีการดัดแปลงแก้ไข ซึ่งอาจเป็นปัญหาสำหรับผู้เริ่มต้น ในบทความนี้จะนำเสนอการอ่านค่าจากโมดูล LSM9DS1 ซึ่งเป็นอุปกรณ์สำหรับวัดค่าความเร่ง ความเร็วเชิงมุม และสนามแม่เหล็กใน 3 มิติ หวังว่าจะเป็นประโยชน์สำหรับผู้เริ่มต้นพัฒนา IoT ที่อยากจะเรียนรู้การอ่านค่าเซนเซอร์อื่นบ้าง นอกเหนือจากอุณหภูมิและความชื้น เนื้อหาจะกล่าวถึงการอ่านค่าจากโมดูลเพื่อแสดงผลบน NETPIE Freeboard เท่านั้นโดยยังไม่มีการควบคุมใดๆ
ดิว.นินจา
Sunday, April 29, 2018
การอ่านค่าจากโมดูล LSM9DS1 เพื่อแสดงผลบน NETPIE Freeboard
อาจกล่าวได้ว่าส่วนที่สำคัญที่สุดในระบบที่ใช้คอมพิวเตอร์ในการแสดงผลหรือควบคุมคือการอ่านค่าจากอุปกรณ์ที่ใช้ในการเปลี่ยนค่าที่ต้องการวัดเป็นแรงดันหรือกระแสไฟฟ้า หรือเป็นโมดูลสำเร็จที่สามารถอ่านค่าได้ผ่านการสื่อสารประเภทต่างๆ ในปัจจุบันเซนเซอร์มีให้เลือกใช้อย่างหลากหลายขึ้นกับงานที่ต้องการใช้ คุณภาพ ราคา และคุณสมบัติอื่นๆ และส่วนใหญ่ที่มีการใช้งานแพร่หลายจะมีผู้พัฒนาไลบรารีสำหรับอ่านค่าไว้แล้ว โดยเฉพาะสำหรับ Arduino จึงไม่จำเป็นต้องเขียนโค้ดเองจากเริ่มต้น แต่ข้อเสียของการใช้ไลบรารีสำเร็จคือมักห่อหุ้มการตั้งค่าต่างๆ ไว้ภายใน ซึ่งบางครั้งต้องมีการดัดแปลงแก้ไข ซึ่งอาจเป็นปัญหาสำหรับผู้เริ่มต้น ในบทความนี้จะนำเสนอการอ่านค่าจากโมดูล LSM9DS1 ซึ่งเป็นอุปกรณ์สำหรับวัดค่าความเร่ง ความเร็วเชิงมุม และสนามแม่เหล็กใน 3 มิติ หวังว่าจะเป็นประโยชน์สำหรับผู้เริ่มต้นพัฒนา IoT ที่อยากจะเรียนรู้การอ่านค่าเซนเซอร์อื่นบ้าง นอกเหนือจากอุณหภูมิและความชื้น เนื้อหาจะกล่าวถึงการอ่านค่าจากโมดูลเพื่อแสดงผลบน NETPIE Freeboard เท่านั้นโดยยังไม่มีการควบคุมใดๆ
Wednesday, April 25, 2018
ตัวควบคุมแขนกล 2 ก้านต่อบน ESP32 และ NETPIE
ในหนังสือ "การวิเคราะห์และควบคุมหุ่นยนต์อุตสาหกรรม" รวมถึงการบรรยายในชั้นเรียน ตัวอย่างหนึ่งที่ผู้เขียนใช้เพื่อขยายความเนื้อหาให้เป็นรูปธรรมมากขึ้นคือ แขนกล 2 ก้านต่อ (2-link manipulator) เนื่องจากมีโครงสร้างพื้นฐานประกอบด้วย 2 ข้อต่อแบบหมุนและเคลื่อนที่ในระนาบ 2 มิติ ทำให้ง่ายต่อการวิเคราะห์และโมเดล เมื่อผู้เรียนเข้าใจสาระของเนื้อหาในส่วนนั้นอย่างถ่องแท้แล้วก็จะขยายผลไปยังหุ่นยนต์ที่มีความซับซ้อนมากขึ้น อย่างไรก็ตามการเรียนรู้เชิงปฏิบิตทำได้เพียงสร้างโมเดลบนซอฟต์แวร์ Scilab และจำลองการทำงานเพื่อดูผลตอบสนองเท่านั้น เคยมีนิสิตสร้างโมเดลต้นแบบโดยใช้มอเตอร์ขนาดเล็กที่ไม่มีการป้อนกลับขับข้อต่อ ซึ่งสามารถใช้ในการศึกษาศาสตรหุ่นยนต์เบื้องต้น เช่นจลนศาสตร์ข้างหน้าและผกผัน (forward and inverse kinematics) แต่ในหุ่นยนต์อุตสาหกรรมจริงจะต้องมีการป้อนกลับเพื่อชดเชยผลกระทบทางพลวัตเมื่อหุ่นยนต์มีการเคลื่อนที่ ดังนั้นในบทความนี้จะนำเสนอการสร้างโมเดลของแขนกล 2 ก้านต่ออย่างง่าย ด้วยราคาที่ไม่ทำให้กระเป๋าแฟบ ขับเคลื่อนโดยดีซีมอเตอร์และมีการป้อนกลับตำแหน่งโดยเอนโคเดอร์ ตัวควบคุมอิมพลิเมนต์บน ESP32 อาศัยไลบรารี FreeRTOS และสามารถแสดงผลและควบคุมผ่านอินเทอร์เน็ตโดยอาศัยบริการคลาวด์ของ NETPIE
Tuesday, April 3, 2018
แนะนำการติดตั้งและใช้งาน NETPIE App บนมือถือ
NETPIE มีแอ็ปบนมือถือด้วยนะ รู้หรือยัง ? ตัวผู้เขียนเองยังต้องรับสารภาพว่าเพิ่งทราบข่าวนี้จากกลุ่ม Line ของผู้ฝึกอบรมในรอบเดียวกัน ดังนั้นบทความสั้นนี้จะกล่าวแนะนำการติดตั้งและใช้งานบนโทรศัพท์ที่มีระบบปฏิบัติการ Android (ซึ่งความจริงแล้วสำหรับผู้ใช้งานโดยทั่วไปคงไม่ต้องแนะนำอะไรมาก เพราะขั้นตอนการติดตั้งก็เหมือนกับแอปมือถือทั่วไป) เมื่อติดตั้งแล้วจะสามารถเข้าสู่ Freeboard เพื่อแสดงผลและสั่งงานได้เหมือนกับบนเครื่องคอมพิวเตอร์ แต่ว่าการสร้าง และตั้งค่าต่างๆ ให้กับ widgets ไม่สามารถทำบน App ได้ (ซึ่งโดยธรรมชาติแล้วคงไม่สะดวกอยู่แล้วที่จะพัฒนาซอฟต์แวร์บนโทรศัพท์มือถือ)
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, February 5, 2018
ทำความรู้จักกับ FreeRTOS บน ESP32
อธิบายโดยย่อ RTOS ย่อมาจาก Real-Time Operating System คือระบบปฏิบัติการสำหรับงานที่เงื่อนไขด้านเวลามีความสำคัญ มักจะใช้ในระบบสมองกลฝังตัวที่ออกแบบสำหรับงานเฉพาะ ซอฟต์แวร์ RTOS มีทั้งแบบเป็นผลิตภัณฑ์เชิงพาณิชย์และแบบไม่เสียเงิน FreeRTOS จัดอยู่ในประเภทหลัง โครงการนี้พัฒนาโดย Richard Barry ผู้ตั้งบริษัท Real Time Engineers ปัจจุบันเป็นวิศวกรหลักของ Amazon Web Services ผู้เป็นเจ้าของและบำรุงรักษาซอฟต์แวร์ ความจริง FreeRTOS เริ่มต้นตั้งแต่ปี คศ. 2003 โดยใช้งานได้กับไมโครคอนโทรลเลอร์เพียงไม่กี่บริษัท ต่อมาโครงการได้ขยายตัวขึ้นเรื่อยๆ จนปัจจุบันรองรับตัวประมวลผลมากกว่า 35 สถาปัตยกรรม จุดเด่นคือมีลิขสิทธิ์แบบ MIT ที่เปิดกว้างให้ใช้ในผลิตภัณฑ์เชิงพาณิชย์ได้ และไม่จำเป็นต้องเปิดเผยโค้ดในส่วนของผู้พัฒนา สำหรับรายละเอียดทั้งหมดอ่านได้จาก https://www.freertos.org สำหรับในบทความนี้จะแนะนำเฉพาะไลบรารีของ FreeRTOS ที่รวมอยู่ใน Arduino core ของ ESP32
Thursday, February 1, 2018
ฝึกอบรม IoT สำหรับงานควบคุมอุตสาหกรรมโดย ESP32 และ NETPIE (ประจำปี 2561 ครั้งที่ 1 วันเสาร์ที่ 24 กุมภาพันธ์ 2561)
IoT for Industrial Control with ESP32 and NETPIE Workshop
โดยการแพร่หลายอย่างรวดเร็วของเครือข่ายอินเทอร์เน็ตในปัจจุบันทำให้การพัฒนาอุปกรณ์ที่เรียกว่า IoT (Internet of Things) ได้รับความสนใจเป็นอย่างสูง เชื่อว่าในอนาคตอันใกล้นี้อุปกรณ์เกือบทั้งหมดที่ล้อมรอบตัวเราจะสามารถเชื่อมต่อผ่านเครือข่าย ทำให้การตรวจสอบและควบคุมสามารถทำได้จากทุกพื้นที่ที่อินเทอร์เน็ตเข้าถึงได้ อย่างไรก็ตาม การฝึกอบรมรวมถึงบทความและเอกสารภาษาไทยที่มีอยู่ในปัจจุบันยังมุ่งเน้นงานประเภทเก็บข้อมูลและแสดงผล หรือการสั่งงานในลักษณะปิดเปิดเป็นหลัก ในขณะที่งานอุตสาหกรรมหลายประเภทต้องอาศัยระบบควบคุมป้อนกลับ เช่น เครื่องซีเอ็นซี หุ่นยนต์ การควบคุมระดับน้ำ แรงดัน หรือกระบวนการทางเคมี ซึ่งทำให้อัลกอรึทึมบนระบบฝังตัวมีความซับซ้อนมากขึ้น และต้องใช้ทรัพยากรทางฮาร์ดแวร์เช่นไทเมอร์เพื่อความแม่นยำในการสุ่มสัญญาณ
Subscribe to:
Posts (Atom)
แนะนำหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266”
ปัจจุบันเมื่อกล่าวถึงอุปกรณ์ IoT (Internet of Things) คงมีน้อยคนที่จะไม่รู้จัก ในยุคที่การเข้าถึงอินเทอร์เน็ตเป็นกิจวัตรประจำวันของมนุษย์เ...
-
สำหรับระบบฝังตัวทั่วไปหรืออุปกรณ์ไอโอที วิธีการหนึ่งที่นิยมใช้ในการเพิ่มความฉลาดกับอุปกรณ์และความเป็นมิตรกับผู้ใช้งาน คือความสามารถในการจดจ...
-
Update : บทความนี้ได้เขียนขึ้นในขณะที่ ESP32 เพิ่งออกสู่ตลาดเป็นเวลาไม่นาน ทำให้ขั้นตอนการติดตั้งเครื่องมือพัฒนามีความยุ่งยากโดยเฉพาะสำหร...
-
เนื่องจาก NETPIE2020 เป็นแพลตฟอร์มใหม่ที่เพิ่งเปิดตัว ดังนั้นตัวอย่างที่แสดงบนเว็บจะเน้นการใช้งานขั้นพื้นฐาน โดยเฉพาะด้านการส่งคำสั่งให้กับ...