Step by Step Upload Bootloader Arduino UNO to Arduino UNO

บทความนี้เป็นบทความหนึ่งที่อาจจะเป็นประโยชน์กับเราเมื่อเกิดปัญหาเล็กๆ น้อยๆ กับบอร์ดประมวลผล Arduino ที่เราใช้ในการทดลองโครงงานต่างๆ ที่เกิดการชำรุดเสียหายของตัวชิฟ (Arduino UNO ใช้เบอร์ ATmega328P) หรือต้องการให้ตัวชิฟที่อยู่บนบอร์ดการทำงานต่างๆ ที่เราออกแบบและมีโปรแกรม Bootloader สำหรับใช้งานร่วมกับโปรแกรม Arduino IDE ได้ง่าย และบทความนี้จะเป็นการโปรแกรม Bootloader ระหว่างบอร์ด Arduino UNO ไปยัง Arduino UNO เพื่อเป็นแนวทางของการเลือกใช้บอร์ดโปรแกรมอื่นๆ ในกลุ่มของบอร์ดพัฒนา Arduino ต่อไป

Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 1 การต่อวงจรสำหรับการทำ Upload Bootloader
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 2 ลักษณะของการต่อบอร์ด Arduino UNO สำหรับการทดลอง

สำหรับการ Upload Bootloader นั้น เราจะต่อวงจรระหว่างบอร์ด Arduino UNO และ Arduino UNO เข้าด้วยกันตามที่แสดงในรูปที่ 1 และรูปที่ 2 โดยจะมีแนวคิดและขั้นตอนดังนี้คือ เราจะต้องทำบอร์ดตัวหนึ่งให้เป็นตัวโปรแกรมเมอร์ก่อน (Programmer) ซึ่งจากในรูปที่ 2 จะเป็นตัวบอร์ดข้างบน และบอร์ดด้านล่างจะเป็นที่ถูกโปรแกรม (Target) ซึ่งในรูปที่ 3 ถึงรูปที่ 7 จะเป็นการสร้างตัวบอร์ดโปรแกรมเมอร์ก่อนครับ

Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 3 เลือกกำหนดชนิดบอร์ดเป็น Arduino UNO
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 4 กำหนดพอร์ต COM ให้ตรงกับบอร์ดที่เราใช้งาน
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 5 เลือกโปรแกรมให้กับบอร์ด Arduino UNO เพื่อให้เป็นบอร์ดสำหรับโปรแกรมเมอร์
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 6 เลือกวิธีการโปรแกรมเข้าไปยังตัวบอร์ด
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 7 ทำการอัพโหลดโปรแกรมเข้าไปยังตัวบอร์ด

หลังจากทำตามขั้นตอนต่างๆ ตามรูปที่ 3 ถึงรูปที่ 7 ซึ่งหมายความว่าเรามีตัวโปแกรมเมอร์ที่สามารถอัพโหลดคำสั่งไปยังบอร์ดอื่นได้แล้ว สำหรับขั้นตอนถัดไปจะเป็นการอัพโหลดคำสั่งกันต่อตามในรูปที่ 8 ถึงรูปที่ 10 โดยลำดับขั้นตอนดังกล่าวเราสามารถนำไปใช้กับบอร์ดอื่นๆ ในกลุ่ม Arduino ได้ เช่น Arduino MEGA และ Arduino NANO เป็นต้น

Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 8 ให้เลือกวิธีการโปแกรมใหม่เป็น Arduino ISP
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 9 ทำการอัพโหลด Bootloader ได้ทันที
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 10 ข้อความแสดงให้ทราบเมื่อการอัพโหลดเสร็จสมบูรณ์

เมื่อทำตามขั้นตอนตามในรูปที่ 8 ถึงรูปที่ 10 เสร็จแล้ว ตัวบอร์ดที่ถูกโปรแกรม (Target) นี้ก็จะสามารถเชื่อมต่อกับโปรแกรม Arduino IDE ได้ทันที และในขั้นตอนต่อไปจะเป็นการทดสอบการทำงานของตัวบอร์ดที่ถูกโปรแกรมอีกครั้ง โดยจะแสดงในรูปที่ 11 รูปที่ 15 ตามลำดับขั้นตอน

Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 11 ปลดการเชื่อมต่อระหว่างตัวบอร์ดตัวออกจากกัน

ในขั้นตอนสุดท้ายนี้ เราจะนำบอร์ดที่ถูกโปรแกรม (Target) มาทดลองอีกครั้ง โดยการนำตัวอย่างโปรแกรมที่มีอยู่ใน Arduino IDE มาการทดลองในเบื้องต้น ซึ่งเป็นการทดลองการทำงานร่วมกันระหว่างโปแกรม Arduino IDE ในส่วนของซอร์ฟแวร์และตัวบอร์ดที่ถูกโปรแกรมดังกล่าวสำหรับในส่วนของฮาร์แวร์ โดยเมื่อทำการอัพโหลดโปรแกรมไฟกระพริบ (Blink) และตัวบอร์ดแสดงผลได้ก็เป็นอันถูกต้อง

Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 12 ให้เราเปิดตัวอย่างโปรแกรมไฟกระพริบ (Blink)
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 13 ทำการทำหนดวิธีการโปรแกมกลับมาเป็น AVRISP mkll อีกครั้ง
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 14 แสดงคำสั้งโปรแกรมที่ใช้ในการทดลองบอร์ด
Step by Step Upload Bootloader Arduino UNO to Arduino UNO
รูปที่ 15 ทำการอัพโหลดโปรแกรมในการทดลองให้กับชิฟตัวใหม่

สำหรับบทความ Step by Step Upload Bootloader Arduino UNO to Arduino UNO นี้ เป็นการนำเสนอเนื้อให้สั้นและกระชับที่สุดเพื่อให้ผู้อ่านเข้าใจง่ายและใช้เวลาในการทำความเข้าใจขั้นตอนต่างๆ น้อยที่สุด โดยทั้งนี้สำหรับงานที่เกี่ยวกับการทดลองออกแบบระบบควบคุมการทำงานและประยุกต์ใช้งานต่างๆ โดยเฉพาะงานที่ใช้แรงดันไฟเลี้ยงสูงจะมีโอกาสทำให้ตัวบอร์ดควบคุมเสียหายได้ง่าย ดังนั้นการซ่อมแซมหรือเปลี่ยนตัวชิฟให้กับตัวบอร์ด Arduino ก็จำเป็นจะต้องทำการ Upload Bootloader ไปด้วย เพื่อให้สามารถนำมาใช้งานได้เหมือนบอร์ดทั่วไป และคิดว่าบทความนี้น่าจะเป็นประโยชน์ให้กับผู้อ่านอีกเรื่องหนึ่งครับ.

Reference

  1. https://support.arduino.cc/hc/en-us/articles/360012048080-How-to-burn-the-bootloader-between-two-Arduino-UNO
  2. https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP
  3. https://www.youtube.com/watch?v=UQk8oLreP8E
  4. https://support.arduino.cc/hc/en-us/articles/4412950855442-How-to-burn-bootloader-to-Arduino-Uno-using-Arduino-Mega
  5. https://www.theengineeringprojects.com/wp-content/uploads/2015/10/How-to-Upload-Bootloader-in-Atmega328.jpg