Friday, 31 July 2015

ไมโครคอนโทรลเลอร์ คืออะไร

Micro Controller ถ้าแปลความหมายแบบตรงๆตัว ก็คือระบบคอนโทรลขนาดเล็ก เรียกอีกอย่างหนึ่งคือเป็นระบบคอมพิวเตอร์ขนาดเล็กๆ ที่เราสามารถนำเอามันมาประยุคใช้งานได้หลากหลาย โดยผ่านการออกแบบวงจรให้เหมาะกับงานนั้นๆ และยังสามารถโปรแกรมคำสั่งเพื่อควบคุมขา Input / Output เพื่อสั่งงานให้มันไปควบคุมอุปกรณ์ต่างๆ ได้อีกด้วย ซึ่งก็นับว่าเป็นระบบที่สามารถนำมาประยุคใช้งานได้หลากหลายครับ ทั้งทางด้าน Digital และ Analog ยกตัวอย่างเช่น
ระบบสัญญาณตอบรับอัตโนมัต, ระบบบัตรคิว, ระบบตอกบัตรพนักงาน และอื่นๆ ยิ่งระบบ Micro Controller ในยุคปัจจุบันนั้นสามารถทำการเชื่อต่อกับระบบ Network ของคอมพิวเตอร์ทั่วไปได้อีกด้วย ดังนั้นการสั่งงานจึงไม่ใช่แค่หน้าแผงวงจร แต่อาจจะเป็นการสั่งงานอยู่คนละซีกโลกผ่านเครือข่ายอินเตอร์เน็ตก็ได้ครับ เห็นมั๊ยละ ว่ามันน่าทึ่งขนาดไหน
บางคนตั้งคำถามต่อว่า อ้าวว มันทำงานเหมือนเครื่องคอมพิวเตอร์ แล้วเราใช้ คอมพิวเตอร์รันงานไปเลยไม่ดีกว่าเหรอ? คำตอบก็คือ ได้ครับ แต่ลองคิดดู Micro Controller มีขนาดเท่ากล่องเทปคลาสเซ็ท กับ คอมพิวเตอร์ขนาดเท่าตู้บริจากปัจจัยตามวัด แบบไหนจะสะดวกกว่า นี่ยังไม่นับถึงเรื่องของราคาและค่า maintenance ต่างๆ นาๆ
 ย้อนอดีตนึกถึงเรื่องราวของ Micro Controller ในยุคเก่าๆ
Z-80


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


MCS-51
หลังจากนั้นก็จะมีตระกูล MCS-51 ซึ่งการเรียนรู้และใช้งานค่อนข้างง่ายกว่า Z-80 ไม่ว่าจะเป็นการเขียนโปรแกรมในลักษณะของ Assembly Code แล้วโหลดลงบอร์ดเพื่อใช้งาน ตลอดจนสถาปัตยกรรมในการออกแบบ Micro Controller รุ่นนี้จะช่วยลดอุปกรณ์รอบๆข้างลงไปได้มาก
ตัวอย่างการต่อใช้งาน MCS-51 บนบอร์ดทดลองจริงๆ อุปกรณ์รอบๆข้างจะน้อยกว่า Z-80 มาก ทำให้ออกแบบวงจรได้ง่ายขึ้นมาก


Micro Controller ยุคปัจจุบัน
PIC
PIC เป็นไมโครคอนโทรลเลอร์ยุคหลังๆ ที่ตัดปัญหาเรื่องอุปกรณ์ต่อพ่วงต่อพ่วงที่มีความซับซ้อนให้เหลือจำนวนน้อยเอามากๆ ประกอบกับมีหน่วยความจำ EEPROM ในตัว จึงทำให้ง่ายต่อการบันทึกและจัดเก็บข้อมูล และ PORT ต่างๆ ได้มีการ latch ในตัว IC อยู่แล้ว จึงสามารถต่ออกมาใช้งานภายนอกได้เลยโดยตรงโดยมีกระแสและแรงดันที่เพียงพอ และอีกความสามารถหนึ่งที่โดดเด่น คือสามารถโปรแกรมตัว boot loader เข้าไปในตัว Micro Controller  ได้เลย จึงทำให้ง่ายเวลาโหลดโปรแกรมเข้าไป จากคอมพิวเตอร์โดยผ่านทาง Serial port และกดปุ่ม reset เพียงอย่างเดียว ไม่ต้องการเครื่องโปรแกรม IC เพิ่มเติมอย่างที่ต้องมีกับระบบ Micro Controller รุ่นเก่าๆอย่าง MCS 51
ตัวอย่างการต่อใช้งาน PIC กับบอร์ดทดลองจริงๆ ก็ง่าย ฟังก์ชั่นการใช้งานค่อนข้างครบ และโปรแกรมง่ายด้วย CCS


AVR


AVR เป็น Micro Controller รุ่นหลังๆ ที่มีการพัฒนาต่อมาจาก MCS-51  โดยบริษัท ATMEL  อันเนื่องมาจากว่า MCS-51 ยุคหลังๆ นี้ไม่ค่อยมีคนเล่นกันแล้วในการใช้งานจริง คงมีแต่เฉพาะในสถาบันการศึกษา ที่เป็นเช่นนี้ก็อาจจะเป็นเรื่องการออกออกแบบวงจรที่ค่อนข้างยุ่งยาก และต้องอาศัยการต่ออุปกรณ์ร่วมเยอะนั้นเองครับ ดังนั้น AVR จึงเข้ามาเป็นพระเอกในการช่วยงานในด้านนี้ โดยคุณสมบัติหลักที่น่าทึ่งก็คือ สามารถ Interface ผ่าน USB ได้โดยตรง ซึ่ง Micro Controller ยุคเก่าๆ ทำได้อย่างเก่งก็ต่อผ่านพอร์ต RS-232 แต่เนื่องด้วยคอมพิวเตอร์ยุคใหม่ๆ พอร์ต RS-232 มันเริ่มหายากแล้ว ดังนั้น AVR จึงเป็นคำตอบสุดท้าย ดังนั้นการต่อ AVR ใช้งานบนเบอร์ด จะคล้ายๆ เครื่องไมโครคอมพิวเตอร์มากๆ


Arduino


Arduino เป็น Micro Controller บอร์ดแบบสำเร็จรูป สำหรับยุคนี้ ซึ่งถูกสร้างมาจาก Controller ตระกูล ARM ของ ATMEL ซึ่งข้อดีของ Micro Controller Board รุ่นนี้ก็คือเรื่องของ Opensource ที่สามารถนำไปพัฒนาต่อเป็นอุปกรณ์ต่างๆ ได้ (ความจริงบอร์ดของรุ่นต่างๆ ก็ทำได้เช่นกัน) และความสามารถในการเพิ่ม boot loader เข้าไปที่ตัว ARM จึงทำให้การ upload code เข้าตัวบอร์ดสามารถทำได้ง่ายขึ้น
และยังไม่หมด การพัฒนา software ที่จะใช้ในการควบคุมตัวบอร์ดของ Arduino ก็จะเป็นในลักษณะของ C++ ที่หลายๆคนคุ้นเคยกันดี และตัวบอร์ดยังสามารถนำโมดูลมาต่อเพิ่ม (ซึ่งทาง Ardunio จะเรียกว่าเป็น shield) เพื่อเพิ่มความสามารถต่างๆ ได้ อย่างเช่นต้องการให้ สามารถเชื่อมต่อ wifi ก็ไปหาซื้อ shield ที่เป็น wifi มาต่อเพิ่ม หรือต้องการควบคุมระบบ motor ด้วย ก็เพิ่ม shield ควบคุมมอเตอร์เข้าไปครับ ตัวอย่างตามรูป


หรือถ้าจะสร้างวงจรเพิ่มเติมเองแล้วนำมาประกอบเป็น Shield ให้กับ Arduni ตัวโปรด ก็ยังสามารถทำได้อีกเช่นกัน


Raspberry Pi

เช่นกัน ที่น่าสนใจสำหรับบอร์ด Raspberry Pi ก็คือการจำลองตัวมันเองให้เป็นระบบคอมพิวเตอร์เครื่องเล็กๆ เครื่องหนึ่ง ที่สามารถรันระบบ Linux ได้ในตัว นั้นก็หมายถึงการดึงระบบต่างๆเพื่อมาใช้งานใน board ย่อมจะสะดวกมากเพราะมี OS Linux ทำงานให้แทนอยู่แล้ว อย่างเช่นการติดต่อกับระบบ Network การติดต่อกับระบบจอภาพ การติดต่อระบบเสียง ตลอดจนการติดต่อกับระบบการเก็บข้อมูลผ่าน SD Card ซึ่งสามารถทำได้ครบเลยครับด้วยระบบปฏิบัติการ Linux ที่รันอยู่บนตัวบอร์ด Raspberry Pi
ตัวอย่างการประยุคใช้ Raspberry Pi เป็น Smart TV

และทั้งหมดนี้ก็คือวิวัฒนาการของระบบ Micro Controller จากอดีต จนถึงปัจจุบัน  จริงๆแล้วยังมีอีกหลายรุ่น แต่เลือกเอาเฉพาะที่นิยมและรู้จักกันเป็นวงกว้างในปัจจุบันมาแนะนำเท่านั้นครับ
ขอบคุณข้อมูลจาก http://www.chokelive.com/blog/2013/07/micro-controller-application.html

No comments:

Post a Comment