วันอังคารที่ 31 พฤษภาคม พ.ศ. 2559

Week01 Arduino Basic

Week01 Arduino Basic

 

 

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

 

อุปกรณ์ที่ต้องใช้ 
1. Arduino Board รุ่นใดก็ได้    1    ea
2. NoteBook หรือ Pc 1 เครื่อง
3. Jump Wire (สายไฟ แบบมีขาและรูเสียบ)  10  ea
4. สายจ่ายไฟเลี้ยงให้กับ Board Arduino
5. สวิทซ์แบบ Pulse   1  ea



มาเริ่มทำความรู้จักกับ Arduino ดีกว่า

Arduino คืออะไร
             Arduino อ่านว่า (อา-ดู-อิ-โน่ หรือ อาดุยโน่) เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Source คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัว บอร์ด Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย ดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา ทั้งนี้ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนาต่อยอดทั้งตัวบอร์ด หรือโปรแกรมต่อได้อีกด้วย
             ความง่ายของบอร์ด Arduino ในการต่ออุปกรณ์เสริมต่างๆ คือผู้ใช้งานสามารถต่อวงจรอิเล็กทรอนิคส์จากภายนอกแล้วเชื่อมต่อเข้ามาที่ขา I/O ของบอร์ด (ดูตัวอย่างรูปที่ 1) หรือเพื่อความสะดวกสามารถเลือกต่อกับบอร์ดเสริม (Arduino Shield) ประเภทต่างๆ (ดูตัวอย่างรูปที่ 2) เช่น Arduino XBee Shield, Arduino Music Shield, Arduino Relay Shield, Arduino Wireless Shield, Arduino GPRS Shield เป็นต้น มาเสียบกับบอร์ดบนบอร์ด Arduino แล้วเขียนโปรแกรมพัฒนาต่อได้เลย

จุดเด่นที่ทำให้บอร์ด Arduino เป็นที่นิยม
-  ง่ายต่อการพัฒนา มีรูปแบบคำสั่งพื้นฐาน ไม่ซับซ้อนเหมาะสำหรับผู้เริ่มต้น
-  มี Arduino Community กลุ่มคนที่ร่วมกันพัฒนาที่แข็งแรง
-  Open Hardware ทำให้ผู้ใช้สามารถนำบอร์ดไปต่อยอดใช้งานได้หลายด้าน
-  ราคาไม่แพง
-  Cross Platform สามารถพัฒนาโปรแกรมบน OS ใดก็ได้  



ส่วนประกอบของ Board Arduino (UNO)




1.USBPort: ใช้สำหรับต่อกับ Computer เพื่ออับโหลดโปรแกรมเข้า MCU และจ่ายไฟให้กับบอร์ด
2.Reset Button: เป็นปุ่ม Reset ใช้กดเมื่อต้องการให้ MCU เริ่มการทำงานใหม่
3.ICSP Port ของ Atmega16U2 เป็นพอร์ตที่ใช้โปรแกรม Visual Com port บน Atmega16U2
4. I/OPort:Digital I/O ตั้งแต่ขา D0 ถึง D13 นอกจากนี้ บาง Pin จะทำหน้าที่อื่นๆ เพิ่มเติมด้วย เช่น Pin0,1 เป็นขา Tx,Rx Serial, Pin3,5,6,9,10 และ 11 เป็นขา PWM 
5.ICSP Port: Atmega328 เป็นพอร์ตที่ใช้โปรแกรม Bootloader
6. MCU: Atmega328 เป็น MCU ที่ใช้บนบอร์ด Arduino
7. I/OPort: นอกจากจะเป็น Digital I/O แล้ว ยังเปลี่ยนเป็น ช่องรับสัญญาณอนาล็อก ตั้งแต่ขา A0-A5
8.Power Port: ไฟเลี้ยงของบอร์ดเมื่อต้องการจ่ายไฟให้กับวงจรภายนอก ประกอบด้วยขาไฟเลี้ยง +3.3 V, +5V, GND, Vin
9. Power Jack: รับไฟจาก Adapter โดยที่แรงดันอยู่ระหว่าง 7-12 V
10. MCU ของ Atmega16U2 เป็น MCU ที่ทำหน้าที่เป็น USB to Serial โดย Atmega328 จะติดต่อกับ Computer ผ่าน Atmega16U2





รูปแบบการเขียนโปรแกรมบน Arduino




1. เขียนโปรแกรมบนคอมพิวเตอร์ ผ่านทางโปรแกรม ArduinoIDE
2. หลังจากที่เขียนโค้ดโปรแกรมเรียบร้อยแล้ว ให้ผู้ใช้งานเลือกรุ่นบอร์ด Arduino ที่ใช้และหมายเลข Com port






3. กดปุ่ม Verify เพื่อตรวจสอบความถูกต้องและ Compile โค้ดโปรแกรม จากนั้นกดปุ่ม Upload โค้ด โปรแกรมไปยังบอร์ด Arduino ผ่านทางสาย USB เมื่ออับโหลดเรียบร้อยแล้ว จะแสดงข้อความแถบข้างล่าง “Done uploading” และบอร์ดจะเริ่มทำงานตามที่เขียนโปรแกรมไว้ได้ทันที



นี่คือตัวอย่างโค๊ดทำการ Blink LED บน บอร์ด ARDUINO


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}




วิดีโอตัวอย่าง อ้างอิงจาก https://www.youtube.com/watch?v=dnPPoetX0uw






ต่อไปเป็นตัวอย่างการควบคุมการใช้ GPIO ของ Arduino ทดสอบค่า INPUT ด้วยสวิทซ์


// the setup function runs once when you press reset or power the board
void setup() {

Serial.begin(9600);
  // initialize digital pin 13 as an output.
  pinMode(2, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {

  if(digitalRead(2)== HIGH){
    Serial.println("1");
  }else{
    Serial.println("0");
  }
}



ลองดูที่ผลลัพท์ ที่รูปแว่นขยาย  แล้วปรับ 9600 baud  จากนั้นลอง กด สวิชท์ดู

จะเห็นว่ามีการเปลี่ยนค่าจาก 0 --> 1 เพราะมีการ รับข้อมูลเข้ามา



แบบทดสอบสำหรับผู้มีความสงสัย + ท้าทาย  

แบบทดสอบ

ลองทำการ เปิด-ปิด LED (PIN 13) ด้วย สวิทซ์ 


     

0 ความคิดเห็น:

แสดงความคิดเห็น