ArduinoMyProject

Wiring #3 จับ wiring ไปอยู่ใน arduino

By November 22, 2008 January 30th, 2011 4 Comments

และแล้วเรื่องราว ก้อมาตอนสาม ผมตามหาคู่แท้ ให้บอร์ด 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 แล้ว พร้อมเอาไปใช้งานได้เลย นี้รูปหน้าตาบอร์ดที่รวมร่างกับอุปกรณ์อื่นๆแล้ว

บอร์ดไม่งามมาก ครับ ทำแบบ นักประดิษฐ์คนยาก Cheesy

ทดสอบ 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 ก่อนดีกว่านะครับ

หวังว่าคงได้ ไอเดียในการพัฒนานะครับ ทุกครั้งที่เราทำอะไรขึ้นมา เส้นทางมันไม่ได้ ไปได้ง่าย เสมอไปหรอกครับ ทำสิบ ใช้ได้ หนึ่งก้อนับว่าดีแล้ว? โชดดีนะครับ

4 Comments

Leave a Reply