ในบทความนี้เราจะเรียนรู้วิธีโหลดโปรแกรมไปยังบอร์ด Arduino UNO โดยใช้ Atmel Studio แทน Arduino IDE สิ่งนี้มีประโยชน์เมื่อคุณต้องการพัฒนาโปรแกรมโดยใช้คุณสมบัติขั้นสูงเพิ่มเติมหรือในภาษาอื่นในเช่นเราจะใช้ภาษา C , Assembly หากคุณได้ลองแล้วคุณควรรู้ว่าการโหลดโปรแกรมผ่าน de arduino USB นั้นยุ่งยากมากเพราะ Atmel Studio ไม่มีตัวเลือกในการทำเช่นนั้นคุณควรใช้โปรแกรมเมอร์ ICSP แทน แต่เราไม่ต้องการทำเช่นนั้นดังนั้นเราจะรวมความสามารถในการเขียนโปรแกรม USB ในตัวของบอร์ดของเรา ในการทำเช่นนั้นเราจะใช้ตัวเลือก “avrdude” และ “external tools” ใน Atmel Studio
หมายเหตุ : ค่าที่ป้อนเข้าไปที่ข้อ 4 ในการปรับแต่ง Atmel Studio 7 นั้นในคอมแต่ละเครื่องอาจจะไม่เหมือนกัน ฉะนั้นให้ทำตามขั้นตอนด้านล่างนี้
การใช้ Atmel Studio 7 อัพโหลดโค้ด Arduino UNO มีขั้นตอนดังนี้
1. ติดตั้งโปรแกรม 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 เพื่อปิดโปรแกรมลงไป
2 : ตรวจสอบไดร์เวอร์ ของ ATmega16U2
บอร์ดนี้มีตัวสื่อสารกับ พอร์ต USB ของคอมพิวเตอร์ เป็นชิป ATmega16U2 ซึ่งแปลงสัญญาณ USB เป็นแบบอนุกรม เพื่อช่วยให้คอมพิวเตอร์ของสามารถอัพโหลดโปรแกรมและสื่อสารกับชิป ATMEGA328P ได้
เชื่อมต่อสาย USB จาก คอมพิวเตอร์ ไปที่บอร์ด Arduino UNO R3
คลิกขวา ที่ Start เลือกไปที่ Device Manager
ไปที่ Ports (COM & LPT) จะพบ Arduino Uno ในตัวอย่างเป็น (COM3) แสดงว่าคอมพิวเตอร์ของเราสามารถ ติดต่อสื่อสารกับ บอร์ด Arduino UNO R3 ได้แล้ว
3 : อัพโหลดโค้ดให้กับ Arduino UNO R3
เปิดโปรแกรม 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 -> COM3 (Arduino Uno)
(โดย COM3 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)
คลิกที่ 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”
"$(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 -PCOM3 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i"
4 : การปรับแต่ง Atmel Studio 7
ไปที่ Tools -> External Tools…
ที่ Title: ในตัวอย่างตั้งชื่อเป็น Arduino 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 -PCOM3 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i"
ติ๊กเลือก Use Optput window -> OK
เมื่อต้องการอัพโหลด ไปที่ Tools -> Arduino Upload (ที่ตั้งชื่อไว้)
ที่ Output ด้านล่างซ้ายมือ แสดง avrdude.exe done. Thank you. แสดงว่าการอัพโหลดสำเร็จแล้ว
และ ไฟ LED ที่เชื่อมต่อที่ขา PB5 บนบอร์ด กระพริบ ติด-ดับ แสดงว่า การทดสอบการทำงานอัพโหลดโค้ด เข้าบอร์ด Arduino UNO สําเร็จแล้ว