ปัจจุบันเทคโนโลยีเป็นส่วนหนึ่งของชีวิตมนุษย์ อุปกรณ์อิเล็กทรอนิกส์ช่วยอำนวยความสะดวกในชีวิตเรามาก ๆ ภายในระบบของมันจะมีชิ้นส่วนอิเล็กทรอนิกส์ตัวหนึ่งที่สำคัญมาก มักมีอยู่ในแกดเจ็ต, เครื่องใช้ไฟฟ้า หรือในเครื่องจักร นั่นก็คือไมโครคอนโทรลเลอร์ (Microcontroller) หรือที่เรียกสั้น ๆ ว่า MCU มันมีหน้าที่ควบคุมการทำงานของระบบต่าง ๆ อยู่มากมาย และรันอยู่ในหลายวงการเลยทีเดียว
ในบทความนี้ผมจะพาทุกคนมารู้จักกับ ไมโครคอนโทรลเลอร์, ประเภทของไมโครคอนโทรลเลอร์ และการเลือกไมโครคอนโทรลเลอร์ให้เหมาะสมกับการใช้งานกันครับ
ไมโครคอนโทรลเลอร์เป็นส่วนหนึ่งที่ถูกฝังอยู่ในระบบ มันมีหน้าประมวลผลข้อมูลที่ได้รับจากส่วนต่อพ่วงอินพุต/เอาต์พุต (Input / Output: I/O) โดยใช้ความสามารถจาก หน่วยประมวลผลกลาง (CPU) ที่อยู่บน แผงวงจรหลัก (Mainboard) นั่นเองครับ ในส่วนของข้อมูลต่าง ๆ ที่ไมโครคอนโทรลเลอร์ได้รับจะถูกเก็บเอาไว้ในหน่วยความจำชั่วคราว ซึ่งเป็นส่วนที่ CPU เข้ามาดึงข้อมูลคำสั่งต่าง ๆ สำหรับนำไปใช้ถอดรหัสประมวลผลข้อมูลต่าง ๆ ที่เข้ามา แล้วจึงใช้ส่วน I/O สำหรับสั่งการตามคำสั่งที่ได้รับ
ตัวอย่างเช่นในรถยนต์หนึ่งคัน จะประกอบด้วยไมโครคอนโทรลเลอร์หลายตัว เพื่อใช้งานในแต่ละระบบ เช่น ระบบเบรค ABS, ระบบป้องกันล้อหมุนฟรี (Traction-Control System), ระบบจ่ายเชื้อเพลิง ฯลฯ ซึ่งบาง MCU อาจจะไปเชื่อมต่อกับระบบควบคุมที่ซับซ้อนขึ้นกว่าเดิม ซึ่งก็สามารถมารถเชื่อมต่อหากันได้ด้วย I/O ของแต่ละ MCU นั่นเองครับ
เปรียบเป็นดั่งสมองของอุปกรณ์เลยก็ว่าได้ ซึ่งส่วนนี้ทำหน้าที่ในการประมวล และตอบสนองต่อข้อมูลค่าสั่งต่าง ๆ ที่สั่งการทำงานของไมโครคอนโทรลเลอร์ โดยเกี่ยวกับการปฏิบัติการทางคณิตศาสตร์, ทางตรรกศาสตร์, หลัก Logic และสั่งการ I/O ของระบบ รวมทั้งทำหน้าที่ควบคุมการเชื่อมต่อถ่ายโอนข้อมูลคำสั่งระหว่างอุปกรณ์ด้วย
ส่วนนี้ทำหน้าที่สำหรับเก็บข้อมูลของไมโครคอนโทรลเลอร์ที่ได้รับจากส่วนต่อเชื่อม และใช้เป็นส่วนตอบสนองต่อคำสั่งที่ได้ถูกโปรแกรมแล้วจึงส่งออกแสดงผลในส่วนอื่น โดยในไมโครคอนโทรลเลอร์สามารถแบ่งออกได้เป็น 2 ประเภทได้แก่
ทำหน้าที่ในการเป็นจุดเชื่อมต่อ สำหรับอุปกรณ์ทั้งในส่วนการรับข้อมูลเข้า (Input) และส่วนส่งข้อมูลออก (Output) ในฝั่งของ Input ทำหน้าที่ในการรับข้อมูล และส่งข้อมูลไปยังหน่วยประมวลผลในรูปแบบของเลขฐานสอง (Binary) หลังจากนั้นหน่วยประมวลผลจะส่งคำสั่งไปยังอุปกรณ์อื่น ๆ ผ่านทาง Output เพื่อให้อุปกรณ์ที่ต่อเชื่อมอยู่ทำงานตามคำสั่งนั่นเองครับ
โดยที่กล่าวมาข้างต้นคือ ส่วนประกอบหลักที่สำคัญครับ แต่มันยังอาจมีส่วนประกอบอื่น ๆ ที่ถูกนำมาใช้บ้าง แต่ไม่ได้เป็นส่วนประกอบหลัก ประกอบไปด้วย
ภาพจาก : https://www.electronicshub.org/microcontrollers-basics-structure-applications
โดยทั่วไปแล้วไมโครคอนโทรลเลอร์หลัก ๆ จะมี Intel MCS-51 ซึ่งมีต้นกำเนิดมาจากไมโครคอนโทรลเลอร์รุ่น 8051 ซึ่งเป็นไมโครคอนโทรลเลอร์ตัวแรกที่ถูกพัฒนาขึ้นมาในปี ค.ศ. 1985 (พ.ศ. 2528) ชนิดต่อไปเป็น AVR ไมโครคอนโทรลเลอร์ถูกพัฒนาโดย Atmel ในปี ค.ศ. 1996 (พ.ศ. 2539) และอีกชนิดที่เป็นที่นิยมคือ PIC จากบริษัท Microchip และยังมีระบบ RISC ที่ใช้สถาปัตยกรรม ARM อีกมากมาย ซึ่งแต่ละชนิดล้วนมีความแตกต่างกันในเชิงของระบบปฏิบัติการ และสถาปัตยกรรมที่นำมาใช้สร้างตัวชิปนั่นเองครับ
ไมโครคอนโทรลเลอร์ถูกนำเอาไปประยุกต์ใช้งานหลากหลายไม่ว่าจะเป็นการใช้งานสำหรับอุตสาหกรรม, ใช้งานตามบ้านเรือน, สร้างระบบอัตโนมัติ และที่กำลังเป็นที่นิยมในปัจจุบันคืองาน Internet of Thing (IoT) โดยใช้สำหรับควบคุม หรือสังเกตการณ์เครื่องใช้ไฟฟ้า หรือระบบอัตโนมัติต่าง ๆ ระยะไกลผ่านอินเทอร์เน็ต และบอร์ดที่ได้รับความนิยมเป็นอย่างมากจากผู้ใช้งานคือ Arduino และ ESP ทั้งสองล้วนเป็นเจ้าตลาดในการผลิตไมโครคอนโทรลเลอร์ขนาดเล็ก ได้รับความนิยมจากกลุ่มนักศึกษาหรือ
ผู้ใช้งานสร้าง D.I.Y โปรเจกต์สำหรับศึกษาหรือพัฒนาความรู้ด้านระบบควบคุมซึ่งในบทความนี้ผมจะยกตัวอย่างบอร์ด 2 ตัวนั่นคือ Arduino และESP32 ที่เป็นที่นิยมนั่นเองครับ
Arduino เป็นบอร์ดไมโครคอนโทรลเลอร์ชนิดที่เป็นแผงวงจรสำหรับผู้พัฒนาที่ เปิดเผยซอร์สโค้ด (Open-source) (Open-Source Development Board) ครับสามารถนำมาใช้ในการสร้างระบบสมองกลฝังตัว ทำอุปกรณ์สวมใส่ ทำแกดเจ็ตอิเล็กทรอนิกส์ ใช้ในงานหุ่นยนต์ และสามารถใช้ในงาน IoT ได้เช่นกันครับ
ซี่งเจ้าตัว Arduino นั้นก็มีหลากหลายรุ่นสามารถเชื่อมต่อกับเซนเซอร์ หรือมอเตอร์ต่าง ๆได้อย่างง่ายดาย โดยมีทั้ง Analog และ Digital Pin สำหรับรับ Input หรือ Output ข้อมูลออกทำให้สามารถใช้งานกับอุปกรณ์หลายประเภทนั่นเองครับ
ภาพจาก : https://www.elprocus.com/difference-between-esp32-vs-arduino/
เป็นบอร์ดที่มีไวไฟ และบลูทูธติดในตัวบอร์ดมาเลยครับ มีราคาที่ถูกกว่า Arduino ซึ่งเป็นบอร์ดที่ได้รับความนิยมในงาน IoT เป็นอย่างมากเนื่องจากการที่มีระบบไร้สาย (Wireless Technology) นั่นเองครับ มีหน่วยประมวลผลที่มีประสิทธิภาพสูง พร้อมกับ SoC (System on Chip) สามารถใช้งานในช่วงอุณหภูมิที่ต่ำถึง -40 - 125 องศาเซลเซียส เลยทีเดียว
ภาพจาก : https://www.elprocus.com/difference-between-esp32-vs-arduino/
ทั้งสองบอร์ดนี้ ล้วนเป็นไมโครคอนโทรลเลอร์ที่มีประสิทธิภาพ และเป็นที่นิยมทั้งคู่สามารถทำงานในลักษณะงานที่คล้ายกันได้แต่ก็ยังมีความต่างกันในส่วนของการโปรแกรม, ฮาร์ดแวร์ และความสามารถในการประมวลผล
ในส่วนของ ESP32 นั้นเหมาะสมสำหรับผู้ที่ต้องการนำไปใช้ในงาน IoT เนื่องด้วยประสิทธิภาพที่สูง ความสามารถในการเชื่อมต่ออินเทอร์เน็ตแบบไร้สาย ซึ่งต่างจาก Arduino ที่เหมาะสำหรับการนำเอาไปใช้ในโปรเจกต์ที่ไม่ซับซ้อนมากนัก เหมาะสำหรับใช้ในงาน D.I.Y สำหรับการศึกษา ดังนั้น Arduino จึงเหมาะกับผู้ที่นำมาใช้ศึกษาหรือเป็นงานอดิเรกนั่นเองครับ
ดังนั้นแล้ว หากผู้ใช้ต้องการทำงานประเภท IoT จึงควรเลือกเป็น ESP32 และหากต้องการสร้างโปรเจกต์ควบคุมหลากหลาย ต่อไฟเลี้ยงใช้งานง่าย ๆ สามารถใช้ PWM (Pulse Width Modulation) ได้ โปรแกรมสั่งงานง่าย ๆไม่ซับซ้อนก็ควรเลือกใช้เป็น Arduino จึงจะเหมาะสมที่สุดนั่นเองครับ
|