DuinoThumb : Arduino จิ๋ว !! ทำเล่นเองได้ ง่าย นิ๊ดส์ เดียว~
(update 30/05/2009) 1. โครงงานที่เกี่ยวกับ AVR โดยตรง คือเอา AVR ไปพัฒนาเหมือนปกติทั่วไป 2. โครงงานที่จำลอง AVR เป็นอุปกรณ์ USB Device (AVR-USB) เช่น USB Keyboard, USB Mouse, USB to Serial Converter, USB Sensor ฯลฯวันนี้ผมจะพูดถึงเรื่องการทำ DuinoThumb เพื่อพัฒนากับโปรแกรม ในแบบฉบับ Arduino ครับ (^_^) ซึ่งหลังจากนี้ ผมจะเสนอวิธี และจุดต่อ Idea มากมายที่นำ DuinoThumb ไปใช้ ก็อยากจะให้คอยติดตามรับชมรับฟังนะครับ DuinoThumb = Arduino Clone DuinoThumb จะแตกต่างจาก Arduino ธรรมดา ตรงที่ "BootLoader" ครับ แรกเริ่มเดิมทีนั้น Arduino จะรับข้อมูลจาก Serial port เพื่อเอาโปรแกรมที่เขียนขึ้น ไปเขียนลงบริเวณ flash ของตัวมันเอง การกระทำเช่นนั้นจะต้องใช้ Serial Port เป็นหลัก แต่กาลเวลาต่อมาก็มีคนรวมเอา IC FTDI ทำการแปลง USB เป็น serial แล้วติดในตัว Arduino เลย ทำให้ไม่ต้องคอยหา port Serial อีกต่อไป (เพราะหลังๆ ยิ่งหาได้ยากมากขึ้น โดยเฉพาะ notebook) แต่การทำเช่นนั้นจะต้องมี IC FTDI ซึ่งมีราคาแพง (แพงกว่าตัว AVR เสียอีก) จึงมีคนหัวใส ที่ดัดแปลงโครงงานเครื่องโปรแกรม AVR (ที่ชื่อ USBasp) โดยเอาเฉพาะส่วน protocal USB มาเขียนใหม่ เป็น BootLoader อีกตัวหนึ่ง เพื่อใช้แทน Arduino BootlLader เดิมๆ ผลที่ได้ก็คือ ทำให้ AVR สามารถจำลองตัวเองเป็น USB Device ได้ ยิ่ง ไปกว่านั้น มันยังสามารถรับข้อมูลจาก USB เพื่อนำข้อมูลไปเขียน ณ บริเวณ พื้นที่ flash ซึ่งเหมือนกัน Arduino เดิมๆ ทุกประการ โดยเราจะเรียก BootLoader ตัวนี้ว่า USBaspLoader สิ่ง ที่เกิดขึ้นก็คือ ตัว AVR เองนั้น เมื่อเสียบเข้ากับ PC ทาง port USB แล้วก็สามารถรับข้อมูลจาก PC ได้ทันที โดยไม่ต้องใช้ Chip FTDI แปลง USB เป็น Serial อีกต่อไป ทำให้ประหยัดทั้งเงินและค่า PCB ไปได้มาก และด้วยเหตุที่มันเป็นการดัดแปลงจากเครื่องโปรแกรมที่ชื่อ USBasp ผลที่ได้คือมันจึงสามารถติดต่อกับ Arduino เพื่อรับข้อมูลมาเขียนได้ ด้วย ข้อดีที่ตามมาคือ อุปกรณ์น้อยลง บอร์ดก็เล็กลง สามารถประดิษฐ์ หรือเพิ่มโอกาสในการไปรวมเพื่อทำผลิตภัณฑ์ได้หลากหลายมากขึ้น สำหรับคำว่าบอร์ดขนาดเล็กนั้น ก็จะมีขนาดประมาณ หัวแม่มือ นี่จึงเป็นที่มาของชื่อ "DuinoThumb" และ เพราะว่าไม่ต้องหาสาย power เพราะใช้ไฟจาก USB , สาย serial RS232 ก็ไม่ต้องใช้ เพราะสามารถรับข้อมูลผ่าน USB ได้ สรุปคือเพียงเสียบ DuinoThumb เข้ากับช่อง USB ก็ช่วยลดความวุ่นวายในการพัฒนาก็ลงไปได้เยอะมากเลยทีเดียว เริ่มประกอบบอร์ด หัวใจหลักของงานนี้คือ มีบอร์ด PCB อเนกประสงค์ และ AVR เบอร์ ATmega8/168 แบบ SMD หลังจากนั้นก็เริ่มลงอุปกรณ์ จากเล็กๆ แบนๆ เตี้ยๆ ไปหาใหญ่ๆ สูงๆ ตามลำดับทั้งหน้าและหลัง รายละเอียดให้ดูจากหน้า PCB อเนกประสงค์ นะครับ ซึ่งเมื่อเสร็จแล้วจะได้บอร์ดที่มีรูปร่างลักษณะดังนี้ การ ที่ AVR ธรรมดาจากโรงงาน จะกลายมาเป็น DuinoThumb ที่เก่งกาจได้นั้น เราต้อง Burn BootLoader ลงไปที่ตัวมันก่อน ซึ่ง BootLoader นั้นเราสามารถ Download มาศึกษาได้จาก http://www.obdev.at/products/vusb/usbasploader.html project นี้เป็น opensource แต่เพื่อความเป็น มาตราฐานเราใช้วิธี download มาแล้วเลือกเบอร์ที่ตรงกับเรา ในที่นี้ผมใช้ ATmega168 และ X'Tal 12Mhz เหตุที่ใช้ 12Mhz ไม่ใช้ 16Mhz เพราะโครงงานส่วนใหญ่ของ AVR-USB ที่ใช้ library ของ Obdev เดิมๆ นั้น ส่วนมากจะเป็น 12 Mhz ครับ ถ้าเราจะเปลี่ยนก็ไม่มีปัญหา แต่ต้องแก้ code ด้วย (แต่ผมใช้ 12Mhz เลยไม่มีปัญหาใดๆ ทั้งนี้ขึ้นอยู่กับแต่ละ project ด้วยนะครับ) Burn Burn Burn และ Burn ใน การ Burn นั้นก็ไม่มีอะไรมาก เริ่มจากเอาสาย ISP เสียบไปที่บอร์ด เปิดโปรแกรมที่ใช้ในการเบิร์น เลือก ไฟล์ .hex ที่ตรงกับเบอร์ AVR ของเรา แล้วกด burn แล้วรอ ก็เป็นอันเสร็จ การกระทำนี้ขึ้นอยู่กับแต่ละโปรแกรม ด้วยนะครับว่าใช้โปรแกรมอะไร ซึ่งแต่ละโปรแกรมจะไม่เหมือนกัน แต่ในที่นี้ใช้โปรแกรม Avr-Osp II ครับ 1. กดปุ่ม Auto Detect เพื่อค้นหาเบอร์ MCU ที่ใช้แบบอัตโนมือ เอ๊ย อัตโนมัติ 1. เลือก Tab FustBit เพียงเท่านี้คุณก็สามารถได้ DuinoThumb มาใช้แล้ว !! จากนั้นก็เริ่มทดสอบกันเลย แต่ เมื่อคุณ Burn เสร็จ อุปกรณ์ตัวนี้จะยังไม่สามารถใช้งานได้ทันที ถ้าคุณยังดันทุรังเสียบไป ก็มีแต่จะเกิด Error แบบค้นพบ Device แต่ไม่รู้จัก วันยันค่ำ เนื่อง จาก firmware นั้นเขียนมาว่า การที่จะใช้โปรแกรม BootLoader ต้อง Jump ขา D7 ลง GND ก่อน แล้ว reset จึงจะทำให้ PC ค้นหาอุปกรณ์ได้ ดังนั้นเราจึงต้อง Jump ขา สาย D7 ไปลง GND ให้ได้ ตามรูปนี้ จากนั้นก็กด reset ที่ตัวบอร์ด จะทำให้เครื่องค้นพบอุปกรณ์ที่ชื่อ USBasp แต่ไม่มี Driver ให้คุณทำการบอกที่อยู่ของ Driver แล้วติดตั้งมันซะก็เสร็จสิ้น แก้ไข Arduino IDE ที่ ผ่านมาข้างบนคือการประกอบ และการลง driver ครับ แต่ ........ แต่มันยังไม่จบแค่นั้น เพราะ Arduino เดิมๆ มันไม่รองรับของอะไรแบบนี้ เราจึงต้องจัดการแก้ไขให้ Arduino รู้จัก DuinoThumb ก่อนครับ ด้วยการ 1. เปิดไฟล์ x:\_Path_\arduino-0015\hardware\boards.txt 2. เพิ่มบรรทัดพวกนี้เข้าไป แล้ว save ครับ ############################################################## duinoThumb8.name=DuinoThumb8 12Mhz duinoThumb8.upload.protocol=usbasp duinoThumb8.upload.maximum_size=7168 duinoThumb8.upload.speed=19200 duinoThumb8.build.mcu=atmega8 duinoThumb8.build.f_cpu=12000000L duinoThumb8.build.core=arduino duinoThumb8.upload.disable_flushing=true ############################################################## duinoThumb168.name=DuinoThumb168 12Mhz duinoThumb168.upload.protocol=usbasp duinoThumb168.upload.maximum_size=14336 duinoThumb168.upload.speed=19200 duinoThumb168.build.mcu=atmega168 duinoThumb168.build.f_cpu=12000000L duinoThumb168.build.core=arduino duinoThumb168.upload.disable_flushing=true ############################################################## ทดสอบด้วยการพัฒนากับของจริง !!! เมื่อ เราแก้ไขไฟล์ Board.txt แล้ว ก็เปิด Arduino IDE ขึ้นมาเลย ระหว่างตรวจดูว่า ขา D7 ของ DuinoThumb ได้ต่อลง GND แล้ว ให้กด Reset ที่บอร์ดเลยครับ เมื่อ Arduino IDE โหลดเสร็จแล้ว ก่อนอื่นเราต้องเลือก Board ที่เราพัฒนาให้ตรงกับบอร์ด DuinoThumb ก่อน (ดูตามรูป) - จากนั้นโหลดโปรแกรมที่ใช้ทดสอบ DuinoThumb รายละเอียดเรื่องการเขียนโปรแกรม Arduino คงต้องศึกษาเพิ่มจากหนังสือ Arduino หรือไปที่ http://www.Arduino.cc ***สำหรับโปรแกรม, เอกสาร และไฟล์ที่จำเป็นสำหรับโครงงานนี้ สามารถดาวน์โหลดเพื่อไปศึกษาหรือทำเองได้จากหัวข้อด้านล่างนี้ครับ ขอบคุณครับ เป็นหนึ่ง (^_^) |
หน้าเว็บย่อย (1): duinothumb files download
ไม่มีความคิดเห็น:
แสดงความคิดเห็น