การปรับแต่ง AVR Studio 6 ให้สามารถโปรแกรมลง Arduino โดยผ่าน AVRDUDE ได้

การปรับแต่ง AVR Studio 6 ให้สามารถโปรแกรมลง Arduino โดยผ่าน AVRDUDE ได้

    จากบทความที่แล้ว (คลิกกลับอ่าน) เราได้ทำการปรับแต่ง AVR Studio 6 ให้สามารถทำการแปลภาษา wiring เพื่อให้ได้ hex file เพื่อที่จะนำไฟล์ที่ได้นี้ ไปเข้าสู่กระบวนการโปรแกรมลงบนชิพไมโครคอนโทรลเลอร์ หรือที่เรียกว่า การเบิร์น นั่นเอง

    จากในครั้งที่แล้ว ที่เราได้ทราบแล้วว่า Arduino IDE ที่ดาวน์โหลดมานั้น จะมีโปรแกรม AVRDUDE ที่เป็นโปรแกรมสำหรับเบิร์นชิพ Arduino ติดมาด้วย ซึ่งใช้ชิพ USB to Serial Converter ที่อยู่บนบอร์ด Arduino อยู่แล้วในการโปรแกรมลงไปที่บริเวณ Boot loader ของ Arduino (สามารถศึกษาเรื่องของ Arduino เพิ่มเติมได้จาก บทความท่าน Samira : อ่านเพิ่มเติม)  

    ในขั้นตอนนี้ ผมจะแนะนำการนำค่า setting ต่างๆ ของ AVRDUDE จาก Arduino IDE มาทำการกำหนดเป็นค่า external tool บน AVR Studio 6 เพื่อที่เราจะได้สามารถโปรแกรมลงบนตัว Arduino ได้ทันที หลังจากเขียนโปรแกรม และ Compile ผ่านเป็นที่เรียบร้อยแล้ว  อันดับแรก ให้กลับไปที่โปรแกรม Arduino ที่เราได้เปิดทิ้งไว้แล้ว หากยังไม่ได้เปิด ก็ให้เปิดโปรแกรม Arduino IDE ขึ้นมาครับ จากนั้นทำการเสียบสาย USB จากบอร์ดเข้าสู่ PC ของเรา กำหนดค่า Serial Port, Board ให้ตรงกับฮาร์ดแวร์ของเรา และที่ เมนู File->Preference อย่าลืมคลิกที่ช่อง upload ด้วย เพราะในตอนนี้ เราต้องการให้ Arduino IDE แสดงการตั้งค่า AVRDUDE ซึ่งเราจะนำการตั้งค่านี่แหละ ไปใส่ที่ external tool ที่ AVR Studio 6 จากนั้น ทำการเลือกตัวอย่างจาก File->Examples->01.Basics->Blink ขึ้นมา แล้วทำการกดปุ่ม upload โปรแกรม Arduino IDE จะทำการ Compile ซ้ำอีกรอบ แล้วทำการเรียก AVRDUDE มาทำการเบิร์นลงชิพ 

จากรูป โปรแกรม AVRDUDE จะทำการเบริน์ hex file ลงบนชิพ Arduino ตามที่พารามิเตอร์ที่กำหนดโดย Arduino IDE ผ่านไปให้ AVRDUDE ให้เราเลื่อนไปดูข้อความบนสุด เราจะเห็นพารามิเตอร์ที่ Arduino IDE ส่งไปให้ AVRDUDE ให้เราก๊อปปี้ข้อความนั้นออกมา จากรูป ให้เริ่มก๊อปปี้ตั้งแต่ -C ไปจนถึง w: จะได้่ว่า

-CD:\software\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM3 -b57600 -D -Uflash:w:

สามารถศึกษาเพิ่มเติมจากคู่มือ AVRDUDE ได้ว่าแต่ละพารามิเตอร์มีความหมายว่าอย่างไร 

กลับไปที่โปรแกรม AVR Studio 6 ที่เมนู  Tools->External tools..  ที่หน้าต่าง External tools ให้กำหนดตามรูปเลยครับ 

Title: Serial Program  (ตั้งชื่ออะไรก็ได้ ที่สื่อให้เราเข้าใจ)

Command : D:\software\arduino-1.0.1\hardware\tools\avr\bin\avrdude.exe  (กด browse ไปหาที่อยู่ของไฟล์ avrdude.exe)

Arguments: -CD:\software\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM3 -b57600 -D -Uflash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i   (คือค่าที่ได้จากขั้นตอนจาก upload แล้วเพิ่มที่อยู่ไฟล์ *.hex )

หมายเหตุ : จะใส่คำว่า Debug หรือ Release ก็ได้ เพราะในขั้นตอนกำหนด Compiler เราได้กำหนด All Configuration ไว้แล้ว 

แล้วทำเครื่องหมายถูกบนหน้าเช๊คบ๊อกซ์ที่ต้องการ แล้วกด OK 

    ทำการ Build solution หรือกด F7 หากคุณยังไม่ได้ Build เพื่อสร้าง hex file หากไม่มีอะไรผิดพลาด หลังจาก Build succeeded แล้ว ให้เราทำการโปรแกรม hex file ลงชิพ โดยการคลิกที่ Tools -> Serial Program (ชื่อที่เราตั้งไว้ จะปรากฏที่เมนูนี้) กด OK อีกครั้ง หากคุณไม่ต้องแก้ไขค่าใดๆ รอสักครู่จนโปรแกรมเสร็จ จะขึ้นข้อความที่หน้าต่าง Output "avrdude.exe done.  Thank you."  สังเกตที่ไฟ LED13 บนบอร์ด อาจจะต้องทำการแก้ไขค่า delay() ในโค๊ดของเรา เพื่อให้เห็นความแตกต่างจากตัวอย่างไฟล์ Blink 

เป็นอันเรียบร้อยสำหรับการปรับแต่ง AVR Studio 6 ให้สามารถโปรแกรมลงบน Arduino ได้เลยโดยผ่านโปรแกรม AVRDUDE 

    แต่ เดี๋ยวก่อน เพื่อความสมบูรณ์ของ AVR Studio 6 ที่เราจะนำมาใช้แทน Arduino IDE ในการพัฒนาโปรแกรม ยังขาด Terminal Window ในการแสดงค่าการสื่อสารผ่าน Serial Communication ระหว่างบอร์ด Arduino และ PC ของเรา  เราสามารถติดตั้ง extension เสริม ที่ชื่อ Terminal Window ได้ ฟรี ได้ดังนี้

ที่เมนู  Tools->Extension manager  จะปรากฏหน้าต่าง Extension manager ให้คลิกเลือกที่ Available Downloads รอสักครู่ โปรแกรมจะทำการเช็คจาก Server แต่ ในครั้งแรก จะปรากฏแต่ Atmel Gallery ให้เราเลือกติดตั้งได้เท่านั้น ให้ทำการคลิก Download จะปรากฏหน้าต่าง Sign in to Extension  Manager Dashboard ให้เรา Signin หากเรายังไม่เคยทำรายการนี้มาก่อน ให้เรา คลิก here ตรง New User? Click here กรอกข้อมูลที่ต้องการ โปรแกรมจะทำการส่งค่ากลับมาทาง email ให้เรา activate อีกครั้ง  จากนั้น กลับมาทำซ้ำขั้นตอนเดิม ด้วย email และ password ที่เราตั้งค่าไป  เราจะสามารถ signin เข้าไปดาวน์โหลด Atmel Gallery ได้ รอติดตั้งจนเสร็จ แล้วทำการ Restart Now 

เมื่อเรากลับมาที่ Tools->Extension manager อีกครั้ง จะปรากฏ Extension เสริมต่างๆ ให้เราเลือกมากมาย ให้มองหา Terminal Window แล้วทำการ Download และติดตั้งได้เลย  หลังจากติดตั้งเสร็จโปรแกรมจะให้เรา Restart Now  อีกครั้ง 

เมื่อกลับมาที่ AVR Studio 6 ที่เมนู View จะปรากฏเมนู Terminal Window เพิ่มขึ้นมา ให้เปิดหน้าต่าง Terminal Window ขึ้นมา แล้วเลือกไปที่ COM3 ที่ Arduino ต่อไว้อยู่ เมื่อกด Connect ณ ตอนนี้ จะปรากฏข้อความ Hello World! เพราะตอนนี้บอร์ด Arduino กำลังส่งข้อมความผ่านทาง Serial Communication ผ่านทาง COM3 อยู่นั้นเอง 

ก็จบขั้นตอนการตั้งค่า AVRDUDE และการติดตั้ง Terminal Window พร้อมกันไปเลย จากนี้ การได้เวลาบรรเลงโค๊ด ลงบน Arduino กันแล้วครับ ขอให้สนุกกับการเขียนโปรแกรมนะครับ สวัสดีครับ 

reference : http://www.jayconsystems.com/tutorial/atmerpt1/