และแล้วเรื่องราว ก้อมาตอนสาม ผมตามหาคู่แท้ ให้บอร์ด mega64 ผมได้สักที่ ในโปรแกรม wiring เขาไม่สามารถเอาไปใช้งานได้ ผมเลยกลับไปหาน้องแฟน เฮ้ย น้อง arduino เหมือนเดิม (อ้าว โอ้ ใช้งานกันได้อย่างไง นิ)
ภาคนี้เป็นการจับคู่ กันระหว่าง wiring , atmega64 และ arduino สามขั้ว ที่ยังไม่เคยเจอหน้ากันมาก่อน อย่างที่บอกใบ้ ตั้งแต่ตอนแรก ว่า arduino กับ wiring มันเป็นพี่น้องกัน คลานตามกันมาเลย โครงสร้างจะเหมือนกันเลย ซึ่งจะทำให้ wiring มาอยู่ใน arduino จึงเป็นไปได้
ขั้นตอนการดัดแปลง
1. ทำโครงสร้างให้ทำงานใน arduino ได้
- Svn download core wiring
- ทำการ copy ไป -> \arduino\hardware\cores\wiring
- ดัดแปลง แก้ไข WApplet.c และสร้างไฟล์ main.cxx เพื่อโครงสร้างให้เหมือนกับ arduino
2. เพิ่มเมนูให้ ett-stamp ลงใน แล้วเพิ่ม board.txt
สำหรับ Atmega128 เพิ่มส่วนนี้นะครับ
wiring.name=Wiring I/O wiring.upload.protocol=stk500v2 wiring.upload.maximum_size=126000 wiring.upload.speed=115200 wiring.bootloader.low_fuses=0xc6 wiring.bootloader.high_fuses=0xdd wiring.bootloader.extended_fuses=0x00 wiring.bootloader.path=atmega128 wiring.bootloader.file=ATmegaBOOT.hex wiring.bootloader.unlock_bits=0x3F wiring.bootloader.lock_bits=0x0F wiring.build.mcu=atmega128 wiring.build.f_cpu=16000000L wiring.build.core=wiring
สำหรับอันนี้ Atmega64 เพิ่มส่วนนี้นะครับ
wiring64.name=Wiring I/O (mega64) wiring64.upload.protocol=stk500v2 wiring64.upload.maximum_size=62000 wiring64.upload.speed=115200 wiring64.bootloader.low_fuses=0xc6 wiring64.bootloader.high_fuses=0xdd wiring64.bootloader.extended_fuses=0x00 wiring64.bootloader.path=atmega64 wiring64.bootloader.file=ATmegaBOOT.hex wiring64.bootloader.unlock_bits=0x3F wiring64.bootloader.lock_bits=0x0F wiring64.build.mcu=atmega64 wiring64.build.f_cpu=16000000L wiring64.build.core=wiring
อันนี้เป็น code เฉพาะกิจนะครับ fuses bit ไม่ได้ check ว่าทำงานถูกต้องไหม อยากลองว่า “เป็นไปได้ไหม ที่จะเอา wiring มาใช้บน arduino” ก่อนครับ
หลังจากบอร์ด mega-64 ที่ผมได้แก้ไข (ดูจากตอนที่สอง) และใส่ boot-loader แล้ว พร้อมเอาไปใช้งานได้เลย นี้รูปหน้าตาบอร์ดที่รวมร่างกับอุปกรณ์อื่นๆแล้ว
บอร์ดไม่งามมาก ครับ ทำแบบ นักประดิษฐ์คนยาก
ทดสอบ wiring บน arduino
เหมือนท่านลง core wiring ลงไปแล้ว ท่านอาจจะเจอกับ bug นิดหน่อยครับ ฮ่าๆ มันมาพร้อมกับ bug เสมอ ท่านจะสามารถคอมไพล์ skeate สำหรับ wiring ได้ ซึ่งตอนนี้ทดสอบแล้วล่ะว่า hex ที่ได้เอาไปใช้ได้หรือป่าว ซึ่งผมทดสอบกับระบบรวมๆนะครับ พวก in port ,out port ,serial สามารถใช้งานได้ดีอยู่ ไม่ได้ลองกับ ทุก libary
หลังจากเพิ่ม code ลงไปใน board.txt จะมีชื่อบอร์ดเพิ่มขึ้นนะครับ
วิธีทดสอบ ผมใช้วิธีเดิมนะครับ ใช้ตัวอย่าง blinking กับ asii table
แล้ว upload arduino สามารถ upload skeate เข้าไปใน wiring ตัวปลอมเราได้อย่างมหัศจรรย์
ทดสอบกับ blinking (ไฟกระพริบเทพ)
รูปทดสอบอื่นๆ ได้ที่ -> http://picasaweb.google.com/PrasertsakD/EttStampModToWiring211051
ตอนนี้ผมทดลองพื้นฐานอยู่ยังไม่ได้ ว่าจะเอาไปใช้งานจริง ผมว่า www.arduino.cc กับ www.wiring.org.co คงมีเหตุผลอะไรสักอย่าง ที่จะจับมารวมกัน สำหรับท่านที่ทดลอง mega128 หรือ mega64 ท่านสามารถเอา source นี้ไปได้นะครับ
download source code-> http://www.ayarafun.com/wp-content/uploads/2008/11/wiring.zip
วิธีการติดตั้ง
1. เอา core ไปใส่ใน -> \arduino\hardware\cores\wiring
2. แล้วเพิ่ม ett-stamp ลงไปใน ดังตัวอย่างในไฟล์ board.txt -> \arduino\hardware\board.txt
ข้อดีอย่างหนึ่งที่จับ wiring กับ arduino มารวมกัน ผมจะได้มีโปรแกรมใช้งาน โปรแกรมเดียวไม่ต้องสลับไป สลับมา ,แถมจะสามารถ เอา source ไปใช้กับบอร์ดที่อยู่กลุ่ม wiring และ arduino ได้อีกหลายบอร์ด
อย่างเช่น เขียนโปรแกรมอยู่ บน wiring ไม่อยู่ เอาแค่ส่วนนี้ไปลองบน arduino ก่อนแล้วกัน ก้อแค่เปลี่ยนไปเลือกที่ tools->board->arduino แล้ว upload ทดสอบ พอ wiring มาก้อแก้ โปรแกรมนิดหน่อยแล้ว upload ไปใช้งานใน wiring ได้เลย
สรุปการใช้งานครั้งนี้นะครับ
- สามารถเอา core wiring port ไปใช้งาน arduino ได้
- สามารถเอา core wiring ไปใช้บน atmega64 ได้อีกดัวย
อันนี้แค่ขั้นทดลองอยู่นะครับ จะใช้งานจิงคงต้องไปไล่ฆ่า bug ถ้าใครไม่คิดมาก ไปใช้ mega128 บน wiring ก่อนดีกว่านะครับ
หวังว่าคงได้ ไอเดียในการพัฒนานะครับ ทุกครั้งที่เราทำอะไรขึ้นมา เส้นทางมันไม่ได้ ไปได้ง่าย เสมอไปหรอกครับ ทำสิบ ใช้ได้ หนึ่งก้อนับว่าดีแล้ว? โชดดีนะครับ
Will you please translate this article to English?
thank you, for your comment
i will translate this to english as soon
but if you try ,and have any problem you can ask in here or email to me
ขอบคุณยังไม่สำคัญเท่ากับคำว่าสุดยอดจริงๆ บล็อกคุณนี่ ว่างๆ มาเยี่ยมบล็อกผมได้นะ
@คนรักการเขียนโปรแกรม
ขอบคุณครับ 😀
blog คนใจรักโครงงานเทคโนโลยี เหมือนกันเลย 😀