ความรู้เบื้องต้นเกี่ยวกับไมโครคอนโทรลเลอร์
ความรู้เบื้องต้นเกี่ยวกับไมโครคอนโทรลเลอร์(Arduino)
ไมโครคอนโทรลเลอร์(Microcontroller หรือ µC, uC , MCU) คือ อุปกรณ์ควบคุมขนาดเล็กซึ่งมีความสามารถที่คล้ายคลึงกับระบบคอมพิวเตอร์ โดยรวบรวมเอาซีพียู หน่วยความจำ และพอร์ตซึ่งเป็นส่วนประกอบหลักที่สำคัญของระบบคอมพิวเตอร์เข้าด้วยกัน หรือจะเรียกอีกอย่างคือระบบคอมพิเตอร์ขนาดเล็ก
หลักการทำงานของไมโครคอนโทรลเลอร์(Arduino)
หลักการทำงานหลักๆของไมโครคอนโทรลเลอร์คือจะนำมาใช้ในการควบคุมระบบหรืออุปกรณ์ต่างๆ และสามารถนำมาประยุกต์ใช้งานได้อย่างหลากหลาย โดยผ่านการออกแบบวงจรให้เหมาะกับลักษณะงานนั้นๆ และสามารถรับโปรแกรมคำสั่งภาษาซี เพื่อควบคุม INPUT/OUTPUT ในการสั่งงานไปควบคุมระบบหรืออุปกรณ์นั้นๆ สามารถใช้ได้ทั้ง ระบบAnalog และ ระบบDigital
ระบบไมโครคอนโทรลเลอร์ของ Arduino
โครงการ Arduino เดิมก่อตั้งมาด้วยผู้รวมก่อตั้ง 5คน ได้แก่ Massimo Banzi, David Cuartielles,
David Mellis, Tom Igoe, และ Gianluca Martino โดยเริ่มโครงการมาตั้งแต่ช่วงปี 2005 ความหมายของคำว่า Arduino แปลว่า เพื่อนแท้(Strong friend หรือ Brave friend) ในภาษาอิตาลีโดยผู้ก่อตั้งมีความตั้งใจให้ราคาของอุปกรณ์นั้นถูก เมื่อเทียบกับไมโครคอนโทรลเลอร์ตระกูลอื่นๆ เพื่อให้ทุกคนสามารถเข้าถึงได้โดยง่ายแพลตฟอร์ม Arduino ได้ออกแบบมาเพื่อให้ใช้งานง่าย ผู้ใช้งานไม่จำเป็นต้องมีความรู้เกี่ยวกับโครงสร้างสถาปัตยกรรมภายในซีพียู โดยรู้เพียงว่าบอร์ด Arduino ที่เลือกมาใช้งานนั้นมีขาที่ใช้งานอะไรบ้างมีคุณสมบัติต่างๆอะไรบ้างก็สามารถใช้งานได้ด้วยประสบการณ์และจำนวนการใช้งานของ
ผู้ใช้จำนวนมาก Arduino จึงถูกใช้งานด้านต่างๆมากมาย เนื่องจากการเขียนโค้ดโปรแกรมควบคุมการ
ทำงานของ Arduino มีความง่ายและยืดหยุ่นสามารถใช้งานในระดับสูงได้อีกด้วยเครื่องมือที่ใช้สำหรับ
เขียนโค้ดควบคุมมีเวอร์ชั่น ที่สามารถรันได้ในทุกระบบปฏิบัติการไม่ว่าจะเป็น แมคอินทอช วินโดวส์
หรือแม้กระทั่งลีนุกซ์ก็ตามทำให้ได้รับความนิยมเป็นอย่างสูง แพลตฟอร์ม Arduino ประกอบไปด้วย
- ฮาร์ตแวร์
- ซอฟต์แวร์
ฮาร์ตแวร์(Hardware)
เป็นบอร์ดอิเล็กทรอนิกส์ขนาดเล็กที่มีไมโครคอนโทรลเลอร์เป็นชิ้นส่วนหลักประกอบร่วมกับ
อุปกรณ์อิเล็กทรอนิกส์อื่นๆ เพื่อให้ง่ายต่อการใช้งานหรือที่เรียกกันว่า “บอร์ด Arduino” โดยบอร์ด
Arduino ก็มีหลายรุ่นให้เลือกใช้ตามความเหมาะสมของงาน โดยในแต่ละรุ่นอาจมีความแตกต่างกันใน
เรื่องของขนาดของบอร์ด หรือสเปคเช่น จำนวนของขารับส่งสัญญาณ, แรงดันไฟที่ใช้, ประสิทธิภาพ
ของ MCU เป็นต้น
ซอฟต์แวร์(Software)
- ภาษาที่ใช้เขียนโค้ดควบคุมบอร์ด Arduino เป็นภาษาสำหรับเขียนโปรแกรมควบคุมที่มีไวยากรณ์
แบบเดียวกับภาษา C/C++
- Arduino IDE เป็นเครื่องมือสำหรับเขียนโค้ดโปรแกรม การคอมไพล์โปรแกรม (การแปลงไฟล์
ภาษาซีให้เป็นภาษาเครื่อง) และอัปโหลดโปรแกรมลงบอร์ด
บอร์ดไมโครคอนโทรลเลอร์ Arduino
Arduino เป็นภาษาอิตาลีโดยเป็นชื่อโครงการพัฒนาไมโครคอนโทรลเลอร์ตระกูล AVR ในรูปแบบ
Open Source คือวิธีการในการออกแบบพัฒนาและแจกจ่ายสำหรับต้นฉบับของสินค้าหรือความรู้โดยเฉพาะซอฟต์แวร์ โดยโอเพนซอร์ซถูกพิจารณาว่าเป็นทั้งรูปแบบหนึ่งในการออกแบบและแผนการในการดำเนินการโอเพนซอร์ซเปิดโอกาสให้บุคคลอื่นนำเอาระบบนั้นไปพัฒนาได้ต่อไปการพัฒนามาจากโครงการ Open Source เดิมของ AVR ที่ชื่อ Wiring โดยโครงการ Wiring ใช้ไมโครคอนโทรลเลอร์ AVR เบอร์ ATmega128 ซึ่งมีข้อจำกัดหลายด้าน เช่นเป็นชิปที่มีตัวถังแบบ SMD ทำให้นำมาใช้งานยากเพราะตัวไมโครคอนโทรลเลอร์มีขนาดเล็กเกินไป ทำให้ไม่สะดวกในการต่อใช้งานจริง มีขาอินพุทและเอ้าท์พุทจำนวนมากเกินไป ตัวบอร์ดมีขนาดใหญ่เกินไป ไม่เหมาะสมสำหรับผู้ที่เริ่มต้นเรียนรู้ด้านไมโครคอนโทรลเลอร์ด้วยเหตุผลข้างต้นจึงทำให้ไม่ได้รับความนิยม ระยะต่อมาทีมงาน Arduino จึงได้นำโครงการ Wiring มาพัฒนาใหม่โดยใช้ไมโครคอนโทรลเลอร์ AVR ขนาดเล็ก คือ ATMega8 และ ATMega168 ทำให้ได้รับความนิยมจนถึงปัจจุบัน
ระบบไมโครคอนโทรลเลอร์ของ Arduino
โครงการ Arduino เดิมก่อตั้งมาด้วยผู้รวมก่อตั้ง 5คน ได้แก่ Massimo Banzi, David Cuartielles,
David Mellis, Tom Igoe, และ Gianluca Martino โดยเริ่มโครงการมาตั้งแต่ช่วงปี 2005 ความหมายของคำว่า Arduino แปลว่า เพื่อนแท้(Strong friend หรือ Brave friend) ในภาษาอิตาลีโดยผู้ก่อตั้งมีความตั้งใจให้ราคาของอุปกรณ์นั้นถูก เมื่อเทียบกับไมโครคอนโทรลเลอร์ตระกูลอื่นๆ เพื่อให้ทุกคนสามารถเข้าถึงได้โดยง่ายแพลตฟอร์ม Arduino ได้ออกแบบมาเพื่อให้ใช้งานง่าย ผู้ใช้งานไม่จำเป็นต้องมีความรู้เกี่ยวกับโครงสร้างสถาปัตยกรรมภายในซีพียู โดยรู้เพียงว่าบอร์ด Arduino ที่เลือกมาใช้งานนั้นมีขาที่ใช้งานอะไรบ้างมีคุณสมบัติต่างๆอะไรบ้างก็สามารถใช้งานได้ด้วยประสบการณ์และจำนวนการใช้งานของ
ผู้ใช้จำนวนมาก Arduino จึงถูกใช้งานด้านต่างๆมากมาย เนื่องจากการเขียนโค้ดโปรแกรมควบคุมการ
ทำงานของ Arduino มีความง่ายและยืดหยุ่นสามารถใช้งานในระดับสูงได้อีกด้วยเครื่องมือที่ใช้สำหรับ
เขียนโค้ดควบคุมมีเวอร์ชั่น ที่สามารถรันได้ในทุกระบบปฏิบัติการไม่ว่าจะเป็น แมคอินทอช วินโดวส์
หรือแม้กระทั่งลีนุกซ์ก็ตามทำให้ได้รับความนิยมเป็นอย่างสูง แพลตฟอร์ม Arduino ประกอบไปด้วย
- ฮาร์ตแวร์
- ซอฟต์แวร์
ฮาร์ตแวร์(Hardware)
เป็นบอร์ดอิเล็กทรอนิกส์ขนาดเล็กที่มีไมโครคอนโทรลเลอร์เป็นชิ้นส่วนหลักประกอบร่วมกับ
อุปกรณ์อิเล็กทรอนิกส์อื่นๆ เพื่อให้ง่ายต่อการใช้งานหรือที่เรียกกันว่า “บอร์ด Arduino” โดยบอร์ด
Arduino ก็มีหลายรุ่นให้เลือกใช้ตามความเหมาะสมของงาน โดยในแต่ละรุ่นอาจมีความแตกต่างกันใน
เรื่องของขนาดของบอร์ด หรือสเปคเช่น จำนวนของขารับส่งสัญญาณ, แรงดันไฟที่ใช้, ประสิทธิภาพ
ของ MCU เป็นต้น
ซอฟต์แวร์(Software)
- ภาษาที่ใช้เขียนโค้ดควบคุมบอร์ด Arduino เป็นภาษาสำหรับเขียนโปรแกรมควบคุมที่มีไวยากรณ์
แบบเดียวกับภาษา C/C++
- Arduino IDE เป็นเครื่องมือสำหรับเขียนโค้ดโปรแกรม การคอมไพล์โปรแกรม (การแปลงไฟล์
ภาษาซีให้เป็นภาษาเครื่อง) และอัปโหลดโปรแกรมลงบอร์ด
บอร์ดไมโครคอนโทรลเลอร์ Arduino
Arduino เป็นภาษาอิตาลีโดยเป็นชื่อโครงการพัฒนาไมโครคอนโทรลเลอร์ตระกูล AVR ในรูปแบบ
Open Source คือวิธีการในการออกแบบพัฒนาและแจกจ่ายสำหรับต้นฉบับของสินค้าหรือความรู้โดยเฉพาะซอฟต์แวร์ โดยโอเพนซอร์ซถูกพิจารณาว่าเป็นทั้งรูปแบบหนึ่งในการออกแบบและแผนการในการดำเนินการโอเพนซอร์ซเปิดโอกาสให้บุคคลอื่นนำเอาระบบนั้นไปพัฒนาได้ต่อไปการพัฒนามาจากโครงการ Open Source เดิมของ AVR ที่ชื่อ Wiring โดยโครงการ Wiring ใช้ไมโครคอนโทรลเลอร์ AVR เบอร์ ATmega128 ซึ่งมีข้อจำกัดหลายด้าน เช่นเป็นชิปที่มีตัวถังแบบ SMD ทำให้นำมาใช้งานยากเพราะตัวไมโครคอนโทรลเลอร์มีขนาดเล็กเกินไป ทำให้ไม่สะดวกในการต่อใช้งานจริง มีขาอินพุทและเอ้าท์พุทจำนวนมากเกินไป ตัวบอร์ดมีขนาดใหญ่เกินไป ไม่เหมาะสมสำหรับผู้ที่เริ่มต้นเรียนรู้ด้านไมโครคอนโทรลเลอร์ด้วยเหตุผลข้างต้นจึงทำให้ไม่ได้รับความนิยม ระยะต่อมาทีมงาน Arduino จึงได้นำโครงการ Wiring มาพัฒนาใหม่โดยใช้ไมโครคอนโทรลเลอร์ AVR ขนาดเล็ก คือ ATMega8 และ ATMega168 ทำให้ได้รับความนิยมจนถึงปัจจุบัน
ภาษาซีสำหรับไมโครคอนโทรลเลอร์
ไมโครคอนโทรลเลอร์ไม่ว่าจะเป็นตระกูลใดก็ตามจะทำงานได้ก็ต่อเมื่อมีชุดคำสั่งที่สั่งให้ทำงาน
ตามที่ต้องการที่เรียกว่าโปรแกรมโดยคำสั่งหรือโปรแกรมที่ไมโครคอนโทรลเลอร์เข้าใจและสามารถ
ทำงานได้อยู่ในรูปของรหัสลอจิก 0 และ 1 หากนำลอจิกมาจับกลุ่มก็เป็นเลขฐาน 16 ที่เรียกว่า ภาษาเครื่องซึ่งภาษาเครื่องเป็นภาษาที่มนุษย์ไม่สามารถเข้าใจได้เนื่องจากเป็นเลขฐาน 16 ทั้งหมดดังนั้น ในการเขียนโปรแกรมจึงจำเป็นต้องใช้ภาษาที่มนุษย์สามารถเข้าใจได้ โดยภาษาที่มนุษย์เข้าใจได้และใกล้เคียงกับภาษาเครื่องมากที่สุดคือภาษาแอสเซมบลีแต่เนื่องจากการพัฒนางานโดยใช้ภาษาแอสเซมบลีเป็นไปได้ยากและซับซ้อน เพื่อให้ง่ายและรวดเร็วต่อการพัฒนาโปรแกรมใช้งานไมโครคอนโทรลเลอร์ภาษาที่เหมาะสมคือ ภาษาซี
โครงสร้างภาษาซีสำหรับ Arduino
โครงสร้างภาษาซีสำหรับ Arduino ถูกจัดใหม่ให้ง่ายต่อผู้ใช้งานเบื้องต้น ซึ่งผู้ออกแบบได้จัดวาง
ให้ผู้ใช้งานได้ใช้งานง่ายซึ่งโครงสร้างหลักๆ จะมีเพียง 2 ส่วนเท่านั้นคือ
1. setup เป็นส่วนที่เก็บฟังก์ชั่น ที่ทำงานครั้งเดียว
2. loop เป็นส่วนที่เก็บฟังก์ชั่น ที่เมื่อทำงานครบแล้วจะวนกลับมาทำซ้ำใหม่ตั้งแต่ต้น
แต่ถ้าต้องการเขียนโปรแกรมขั้นสูงสามารถเขียนในส่วนหัวโปรแกรมและส่วนของฟังก์ชั่น รอง
ที่เขียนขึ้นใช้งานเองเพื่อให้ใช้งานสะดวกมากยิ่ง ขึ้นได้เช่นเดียวกับ ภาษาซีมาตรฐาน
ตัวอย่างคำสั่งโปรแกรมการทดลอง
float inANA0;
float VTA,VTA1,VTAreal;
void setup()
{
Serial.begin(9600);
}
void loop()
{
inANA0 = analogRead(0); // อ่านค่า temp.Air (THA)
VTA = map(inANA0, 0, 1023, 0, 500);
VTA1 = VTA/100;
VTAreal = map(VTA, 25,359, 100,0 );
Serial.print("THA_Voltage = ");
Serial.print(VTA1); //แสดงค่าแรงดัน
Serial.print(" & ");
Serial.print("THA_Temperature = ");
Serial.println(VTAreal); //แสดงค่าอุณหภูมิ
Serial.println("-------------------------------------------------------------\n");
delay(500);
}
กด Tool --> เลือก Port --> เลือก Com3
หลังจากนั้น กดเครื่องหมายถูก เพื่อเช็คความถูกต้องของคำสั่ง
เมื่อคำสั่งถูกต้องให้ กดลูกศร เพื่ออัพโหลดคำสั่งลงบอร์ดArduino
THA_Voltage = 4.88 & THA_Temperature = -38.0
-------------------------------------------------------------
THA_Voltage = 4.91 & THA_Temperature = -39.0
-------------------------------------------------------------
THA_Voltage = 4.92 & THA_Temperature = -38.0
-------------------------------------------------------------
THA_Voltage = 4.93 & THA_Temperature = -39.0
-------------------------------------------------------------
THA_Voltage = 4.94 & THA_Temperature = -37.0
-------------------------------------------------------------
เอกสารประกอบการเรียนปฏิบัติการเครื่องจักรกลไฟฟ้าพื้นฐานของมหาวิทยาลัยเทคโนโลยีสุรนารี
ความคิดเห็น
แสดงความคิดเห็น