อัพโหลดโค้ด ATmega328P ด้วย External Tools
ในบทความนี้เราจะเรียนรู้วิธีโหลดโปรแกรมไปยังบอร์ด ATmega328P โดยใช้ Atmel Studio สิ่งนี้มีประโยชน์เมื่อคุณต้องการพัฒนาโปรแกรมโดยใช้คุณสมบัติขั้นสูงเพิ่มเติมหรือในภาษาอื่นในเช่นเราจะใช้ภาษา C , Assembly ในการทำงานนี้เราจะใช้ตัวเลือก “avrdude” และ “external tools” ใน Atmel Studio
หมายเหตุ : ค่าที่ป้อนเข้าไปที่ข้อ 4 ในการปรับแต่ง Atmel Studio 7 นั้นในคอมแต่ละเครื่องอาจจะไม่เหมือนกัน ฉะนั้นให้ทำตามขั้นตอนด้านล่างนี้
การใช้ Atmel Studio 7 อัพโหลดโค้ด ATmega328P มีขั้นตอนดังนี้
1 : ทดสอบโปรแกรมแรก กับ ATmega328P
โปรแกรมแรกของ การใช้งานไมโครคอนโทรลเลอร์มักจะเป็น Blink ไฟกะพริบ ซึ่งเป็นหนึ่งในโปรแกรมที่ง่ายที่สุดเท่าที่จะเป็นไปได้ในการเขียนภาษาโปรแกรมต่างๆ เพราะฉะนั้นโดยธรรมเนียมปฏิบัติแล้ว มักจะใช้ในการตรวจสอบว่าเขียนภาษาโปรแกรมได้ถูกต้องหรือระบบมีการประมวลผลที่ถูกต้อง และมักถูกใช้เป็นตัวอย่างที่ง่ายที่สุดในการแสดงผลลัพธ์ของการเขียนโปรแกรม โดยทำตามขั้นตอนลิงค์ด้านล่าง
2. ติดตั้งโปรแกรม Arduino IDE
สำหรับการเขียนโปรแกรมของ Arduino IDE นั้นจะใช้ภาษา C/C++ ซึ่งเป็นรูปแบบภาษาซีประยุกต์แบบหนึ่ง ที่มีโครงสร้างการทำงานของตัวภาษาโดยรวม คล้ายกับ ภาษาซีมาตรฐาน (ANSI-C) ทั่วๆไป เพียงแต่ได้มีการปรับปรุงเพื่อลดความยุ่งยากในการใช้งานลง เพื่อให้ผู้ใช้สามารถใช้งาน เขียนโปรแกรมได้ง่าย และสะดวกมากกว่าเขียนภาษาซี แบบมาตรฐาน
Arduino integrated development environment หรือเรียกสั้นๆว่า โปรแกรม Arduino IDE เป็นโปรแกรมที่ “แจกฟรี” ภายใต้เงื่อนไขในการใช้งานลักษณะ Open source ซึ่ง Arduino IDE จะทำหน้าที่ ติดต่อ ระหว่าง คอมพิวเตอร์ ของเรา (Windows, Mac OS และ Linux) กับ บอร์ด Arduino ซึ่งโปรแกรมนี้ออกแบบให้ง่ายต่อการเขียนโค้ดและอัปโหลดโค้ดที่เราเขียน เข้าสู่ บอร์ด Arduino ซึ่ง Arduino IDE ที่เราดาวน์โหลดมานั้น จะมีโปรแกรม AVRDUDE ที่เป็นโปรแกรมสำหรับเบิร์นชิพ ติดมาด้วย
โดย Download ตัวติดตั้งได้จาก
https://www.arduino.cc/en/Main/Software
เลือก Windows Win 7 and newer
เมื่อดาวน์โหลดเสร็จแล้ว ให้ติดตั้งตามที่โปรแกรมแนะนำ
เลือก I Agree
เลือก Next >
เลือก Install
โปรแกรมใช้งานได้แล้ว เลือก Close เพื่อปิดโปรแกรมลงไป
3 : อัพโหลดโค้ดให้กับ ATmega328P
เปิดโปรแกรม Arduino IDE เขียนโปรแกรม หรือ Sketch ตามโค้ดด้านล่างนี้
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println("Hello World");
}
ไปที่ File -> Preferences
ติ๊กเลือก upload -> OK
ไปที่ Tools -> Board -> Arduino AVR Boards -> เลือกบอร์ดเป็น Arduino UNO
เลือก Port โดยไปที่ Tools -> Port -> COM11
(โดย COM11 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)
คลิกที่ Upload
รอจนกระทั่งขึ้น Done uploading. ที่แถบด้านล่าง แสดงว่าเราอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จแล้ว
เลื่อนไปด้านบนสุด แล้ว Copy บรรทัดที่ 3 ทั้งหมด
ในตัวอย่างไปวางไว้ที่โปรแกรม Notepad
แบ่งออกเป็น 2 ส่วน
บรรทัดที่ 1 เพิ่ม .exe หลัง avrdude เป็น avrdude.exe
บรรทัดที่ 2 เพิ่มเครื่องหมายคำพูด ที่
"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
ลบข้อความหลัง Uflash:w: ออกทั้งหมด
เพิ่มข้อความหลัง Uflash:w:
ด้วยข้อความ
"$(ProjectDir)Debug\$(TargetName).hex":i"
จากตัวอย่าง จะได้บรรทัดที่ 1 เป็น
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude.exe
บรรทัดที่ 2 เป็น
-C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM11 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i"
4 : การปรับแต่ง Atmel Studio 7
ไปที่ Tools -> External Tools…
ที่ Title: ในตัวอย่างตั้งชื่อเป็น ATmega328P Upload
ที่ Command: นำข้อมูลจากข้อ 3 บรรทัดที่ 1 มาใส่ในช่องนี้ ในตัวอย่างเป็น
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude.exe
ที่ Arguments: นำข้อมูลจากข้อ 3 บรรทัดที่ 2 มาใส่ในช่องนี้ ในตัวอย่างเป็น
-C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM11 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i"
ติ๊กเลือก Use Output window -> OK
เมื่อต้องการอัพโหลด ไปที่ Tools -> ATmega328P Upload (ที่ตั้งชื่อไว้)
ที่ Output ด้านล่างซ้ายมือ แสดง avrdude.exe done. Thank you. แสดงว่าการอัพโหลดสำเร็จแล้ว
และ ไฟ LED ที่เชื่อมต่อที่ขา PB5 ของ ATmega328P กระพริบ ติด-ดับ แสดงว่า การทดสอบการทำงานอัพโหลดโค้ด เข้าบอร์ด ATmega328P สําเร็จแล้ว
<<< C1: โปรแกรมแรก กับ ATmega328P บทความก่อนหน้า | บทความต่อไป C3: การเขียนโปรแกรม GPIO เบื้องต้น >>>