ผลต่างระหว่างรุ่นของ "การใช้ Arduino Makefile"
Chaiporn (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย '[https://github.com/sudar/Arduino-Makefile#a-makefile-for-arduino-sketches- Arduino Makefile] เป็นระบบที่อน...') |
Chaiporn (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 14 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 1: | แถว 1: | ||
+ | : ''วิกินี้เป็นส่วนหนึ่งของรายวิชา [[01204223]]'' | ||
+ | |||
[https://github.com/sudar/Arduino-Makefile#a-makefile-for-arduino-sketches- Arduino Makefile] เป็นระบบที่อนุญาตให้เราคอมไพล์ Arduino sketch (โปรแกรมที่เขียนบน Arduino IDE) จากคอมมานด์ไลน์โดยไม่ต้องอาศัยตัว Arduino IDE ทำให้มีความคล่องตัวกว่า โดยเฉพาะสำหรับผู้ที่ต้องการเขียนโค้ดบนเอดิเตอร์ตัวอื่นที่ไม่ใช่ Arduino IDE นอกจากนั้น Arduino Makefile ยังมีความจำเป็นในการใช้คอมไพล์โปรแกรมที่ใช้ไลบรารีบางตัวที่ Arduino IDE ไม่รองรับ อาทิเช่นไลบรารี V-USB ที่ใช้เขียนเฟิร์มแวร์จำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์ USB | [https://github.com/sudar/Arduino-Makefile#a-makefile-for-arduino-sketches- Arduino Makefile] เป็นระบบที่อนุญาตให้เราคอมไพล์ Arduino sketch (โปรแกรมที่เขียนบน Arduino IDE) จากคอมมานด์ไลน์โดยไม่ต้องอาศัยตัว Arduino IDE ทำให้มีความคล่องตัวกว่า โดยเฉพาะสำหรับผู้ที่ต้องการเขียนโค้ดบนเอดิเตอร์ตัวอื่นที่ไม่ใช่ Arduino IDE นอกจากนั้น Arduino Makefile ยังมีความจำเป็นในการใช้คอมไพล์โปรแกรมที่ใช้ไลบรารีบางตัวที่ Arduino IDE ไม่รองรับ อาทิเช่นไลบรารี V-USB ที่ใช้เขียนเฟิร์มแวร์จำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์ USB | ||
− | = การติดตั้ง = | + | == การติดตั้ง == |
− | + | ดาวน์โหลดซอร์สโค้ดมาติดตั้งด้วยตนเองตามขั้นตอนด้านล่าง | |
+ | # ดาวน์โหลดซอร์สโค้ดจาก [https://github.com/sudar/Arduino-Makefile https://github.com/sudar/Arduino-Makefile] สังเกตบริเวณด้านขวามือของหน้าเว็บจะเห็นปุ่มที่เขียนว่า "Download ZIP" สมมติว่าไฟล์ที่ดาวน์โหลดมาถูกบันทึกไว้ที่ <tt>~/Downloads/Arduino-Makefile-master.zip</tt> | ||
+ | # แตกไฟล์ไว้ในไดเรคตอรี <tt>/opt</tt> (หรือที่ใดก็ได้ที่ต้องการ แต่ให้จดจำตำแหน่งการติดตั้งไว้ด้วย) | ||
+ | #:<pre> | ||
+ | #::cd /opt | ||
+ | #::sudo unzip ~/Downloads/Arduino-Makefile-master.zip</pre> | ||
+ | # จะได้ไดเรคตอรีชื่อ <tt>Arduino-Makefile-master</tt> ปรากฏขึ้น ให้เปลี่ยนชื่อเป็น <tt>arduino-mk</tt> เพื่อความสะดวกในการใช้งาน | ||
+ | #:<pre> | ||
+ | #::sudo mv Arduino-Makefile-master arduino-mk</pre> | ||
+ | |||
+ | <b>หมายเหตุ 1:</b> <tt>arduino-mk</tt> ที่ติดมาให้กับ Ubuntu 14.04 นั้นยังเป็นเวอร์ชันที่เก่าเกินไปและไม่รองรับการคอมไพล์โค้ดที่ใช้ไลบรารีพิเศษบางตัว จึงไม่สามารถใช้ <tt>apt-get install</tt> เพื่อติดตั้งได้ | ||
+ | |||
+ | <b>หมายเหตุ 2:</b> ผู้ที่มีบัญชีบน GitHub สามารถดาวน์โหลดและติดตั้งโปรแกรมโดยใช้คำสั่ง git clone ได้เช่นกัน | ||
+ | |||
+ | == ทดสอบการติดตั้ง == | ||
+ | เปิด Arduino IDE แล้วสร้าง Arduino Sketch ตัวใหม่โดยไม่มีโค้ดอะไรพิเศษดังนี้ | ||
+ | |||
+ | <syntaxhighlight lang="C"> | ||
+ | #include <Practicum.h> | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | จากนั้นบันทึกลงในชื่อ <tt>test_mk</tt> (หรือชื่อใดก็ได้ตามต้องการ) | ||
+ | |||
+ | เปิดโปรแกรมเทอร์มินัล แล้วเข้าไปในไดเรคตอรีของ sketch ที่สร้างไว้ | ||
+ | |||
+ | cd ~/sketchbook/test_mk # Ubuntu | ||
+ | cd ~/Documents/Arduino/test_mk # MAC OS X | ||
+ | |||
+ | สร้างไฟล์ <tt>Makefile</tt> ที่มีคำสั่งดังนี้ โดยแก้ไขชื่อไดเรคตอรีที่ติดตั้ง Arduino และ Arduino-Makefile ไว้ในตัวแปร <tt>ARDUINO_DIR</tt> และ <tt>ARDUINO_MAKEFILE_DIR</tt> ในสองบรรทัดแรกตามลำดับ ในระบบที่ติดตั้ง Arduino ไว้ในไดเรคตอรีมาตรฐานสามารถคอมเม้นต์บรรทัดแรกทิ้งไปได้ เพราะ Arduino-Makefile จะสามารถค้นหาตำแหน่งการติดตั้ง Arduino ได้อัตโนมัติ | ||
+ | <syntaxhighlight lang="make"> | ||
+ | #ARDUINO_DIR = /usr/share/arduino | ||
+ | ARDUINO_MAKE_DIR = /opt/arduino-mk | ||
+ | BOARD_TAG = atmega168 | ||
+ | AVRDUDE_ARD_PROGRAMMER = usbasp | ||
+ | |||
+ | include $(ARDUINO_MAKE_DIR)/Arduino.mk | ||
+ | </syntaxhighlight> | ||
+ | <span style="color:red;"><b>ระวังอย่าเผลอเคาะวรรคที่ท้ายบรรทัดของคำสั่งกำหนดค่าตัวแปรโดยเด็ดขาด ไม่เช่นนั้นจะทำให้ใช้คำสั่ง <tt>make</tt> ไม่สำเร็จ</b></span> | ||
+ | |||
+ | จากนั้นลองพิมพ์คำสั่ง | ||
+ | |||
+ | make | ||
+ | |||
+ | หาก make มีการเรียกใช้คำสั่งคอมไพล์โค้ดเป็นจำนวนเยอะ ๆ โดยไม่แสดงข้อผิดพลาด แสดงว่าระบบ Arduino Makefile ทำงานได้โดยสมบูรณ์ ทดลองอัพโหลดเฟิร์มแวร์โดยเสียบบอร์ดไมโครคอนโทรลเลอร์เข้ากับเครื่อง เข้าสู่บูทโหลดเดอร์ แล้วพิมพ์คำสั่ง | ||
− | + | make ispload | |
− | + | โปรแกรม avrdude จะถูกเรียกให้ทำงานและแสดงการอัพโหลดโปรแกรมตามกระบวนการที่เคยปฏิบัติมาก่อนหน้านี้ |
รุ่นแก้ไขปัจจุบันเมื่อ 08:45, 27 ตุลาคม 2557
- วิกินี้เป็นส่วนหนึ่งของรายวิชา 01204223
Arduino Makefile เป็นระบบที่อนุญาตให้เราคอมไพล์ Arduino sketch (โปรแกรมที่เขียนบน Arduino IDE) จากคอมมานด์ไลน์โดยไม่ต้องอาศัยตัว Arduino IDE ทำให้มีความคล่องตัวกว่า โดยเฉพาะสำหรับผู้ที่ต้องการเขียนโค้ดบนเอดิเตอร์ตัวอื่นที่ไม่ใช่ Arduino IDE นอกจากนั้น Arduino Makefile ยังมีความจำเป็นในการใช้คอมไพล์โปรแกรมที่ใช้ไลบรารีบางตัวที่ Arduino IDE ไม่รองรับ อาทิเช่นไลบรารี V-USB ที่ใช้เขียนเฟิร์มแวร์จำลองบอร์ดไมโครคอนโทรลเลอร์ให้เป็นอุปกรณ์ USB
การติดตั้ง
ดาวน์โหลดซอร์สโค้ดมาติดตั้งด้วยตนเองตามขั้นตอนด้านล่าง
- ดาวน์โหลดซอร์สโค้ดจาก https://github.com/sudar/Arduino-Makefile สังเกตบริเวณด้านขวามือของหน้าเว็บจะเห็นปุ่มที่เขียนว่า "Download ZIP" สมมติว่าไฟล์ที่ดาวน์โหลดมาถูกบันทึกไว้ที่ ~/Downloads/Arduino-Makefile-master.zip
- แตกไฟล์ไว้ในไดเรคตอรี /opt (หรือที่ใดก็ได้ที่ต้องการ แต่ให้จดจำตำแหน่งการติดตั้งไว้ด้วย)
- cd /opt
- sudo unzip ~/Downloads/Arduino-Makefile-master.zip
- จะได้ไดเรคตอรีชื่อ Arduino-Makefile-master ปรากฏขึ้น ให้เปลี่ยนชื่อเป็น arduino-mk เพื่อความสะดวกในการใช้งาน
- sudo mv Arduino-Makefile-master arduino-mk
หมายเหตุ 1: arduino-mk ที่ติดมาให้กับ Ubuntu 14.04 นั้นยังเป็นเวอร์ชันที่เก่าเกินไปและไม่รองรับการคอมไพล์โค้ดที่ใช้ไลบรารีพิเศษบางตัว จึงไม่สามารถใช้ apt-get install เพื่อติดตั้งได้
หมายเหตุ 2: ผู้ที่มีบัญชีบน GitHub สามารถดาวน์โหลดและติดตั้งโปรแกรมโดยใช้คำสั่ง git clone ได้เช่นกัน
ทดสอบการติดตั้ง
เปิด Arduino IDE แล้วสร้าง Arduino Sketch ตัวใหม่โดยไม่มีโค้ดอะไรพิเศษดังนี้
#include <Practicum.h>
void setup()
{
}
void loop()
{
}
จากนั้นบันทึกลงในชื่อ test_mk (หรือชื่อใดก็ได้ตามต้องการ)
เปิดโปรแกรมเทอร์มินัล แล้วเข้าไปในไดเรคตอรีของ sketch ที่สร้างไว้
cd ~/sketchbook/test_mk # Ubuntu cd ~/Documents/Arduino/test_mk # MAC OS X
สร้างไฟล์ Makefile ที่มีคำสั่งดังนี้ โดยแก้ไขชื่อไดเรคตอรีที่ติดตั้ง Arduino และ Arduino-Makefile ไว้ในตัวแปร ARDUINO_DIR และ ARDUINO_MAKEFILE_DIR ในสองบรรทัดแรกตามลำดับ ในระบบที่ติดตั้ง Arduino ไว้ในไดเรคตอรีมาตรฐานสามารถคอมเม้นต์บรรทัดแรกทิ้งไปได้ เพราะ Arduino-Makefile จะสามารถค้นหาตำแหน่งการติดตั้ง Arduino ได้อัตโนมัติ
#ARDUINO_DIR = /usr/share/arduino
ARDUINO_MAKE_DIR = /opt/arduino-mk
BOARD_TAG = atmega168
AVRDUDE_ARD_PROGRAMMER = usbasp
include $(ARDUINO_MAKE_DIR)/Arduino.mk
ระวังอย่าเผลอเคาะวรรคที่ท้ายบรรทัดของคำสั่งกำหนดค่าตัวแปรโดยเด็ดขาด ไม่เช่นนั้นจะทำให้ใช้คำสั่ง make ไม่สำเร็จ
จากนั้นลองพิมพ์คำสั่ง
make
หาก make มีการเรียกใช้คำสั่งคอมไพล์โค้ดเป็นจำนวนเยอะ ๆ โดยไม่แสดงข้อผิดพลาด แสดงว่าระบบ Arduino Makefile ทำงานได้โดยสมบูรณ์ ทดลองอัพโหลดเฟิร์มแวร์โดยเสียบบอร์ดไมโครคอนโทรลเลอร์เข้ากับเครื่อง เข้าสู่บูทโหลดเดอร์ แล้วพิมพ์คำสั่ง
make ispload
โปรแกรม avrdude จะถูกเรียกให้ทำงานและแสดงการอัพโหลดโปรแกรมตามกระบวนการที่เคยปฏิบัติมาก่อนหน้านี้