นาฬิกา

วันอาทิตย์ที่ 10 กุมภาพันธ์ พ.ศ. 2556

microcontroller สั่งให้ไฟ led กระพริบ


microcontroller สั่งให้ไฟ led กระพริบ


การเขียนโปรแกรมแรกที่ เราเรียกว่า "hello world ในโลก electronic" คือการสั่งการให้ microcontroller สั่งให้ไฟ led กระพริบ
ซึ่งในบทนี้จะเป็นการปูพื้นฐานใน การใช้งานโปรแกรม Arduino และ uploading ไฟล์ sketch ที่เราเขียนเสร็จเข้าสู่อุปกรณ์ Arduino board(ปัจจุบันมีหลายชนิดให้ dowload เพราะ Arduino เป็น open hardware) โดยในที่นี้จะเน้นการใช้งานบน windows XP (Arduino นั้นสามารถใช้ได้กับ MAC และ LINUX ได้ด้วยเพียงแต่ต้องdownload software ให้ถูกชนิด)


ขั้นตอน Prepare( สิ่งที่ต้องเตรียม)
Arduino board ที่ประกอบสำเร็จหรือประกอบเอง, ในที่นี้เน้น Diecimila (หรือ Arduinoรุ่นใดก็ได้ ที่เป็นรุ่นล่าสุด)หาซื้อได้ตามwebsite หรือประกอบขึ้นเองได้ราคาประมาณ 12xx-13xx
ขึ้นอยู่กับ ราคา MCU ใช้รุ่น 168 หรือ 328
สาย USB Cable. ชนิด หัว A-B
หาซื้อได้ตามร้านอะไหล่computer ทั่วไป 
ประมาณ 30-50 บาท
หลอดไฟ LED(ไดโอดเปล่งแสง) 5 mm.ร้าน electronic ทั่วไปราคา 3-12 บาท




ขั้นตอน Download the Software

เริ่มจาก download IDE รุ่นล่าสุด จาก url: http://www.arduino.cc/en/Main/Software โดยเลือกให้เหมาะสมกับ OS ที่ใช้ในการพัฒนา


ขั้นตอน Unpack and Install เมื่อ donwload สำเร็จจะได้ไฟล์ในรูปแบบ zip ให้ทำการแตกไฟล์ตาม folder ที่ต้องการ


ขั้นตอน สร้าง Short cut ทำการสร้าง shortcut ไว้บน desktop

ขั้นตอน Select chip
ขั้น แรกในการปรับแต่ง Arduino software ให้ match กับ chip. โดยส่วนใหญ่ Arduinos ใช้ chip ATmega168 แต่อย่างไรเราสามารถเปลี่ยนไปใช้ chip ATmega8 ได้
ภาพ chipที่มีเลขตัวถังที่แตกต่างกัน :

ตัวอักษรบ่งบอกว่าเป็น ATMEGA8-16P นั้นคือ chip รุ่น atmega8
หากตัวอักษรเขียนว่า ATMEGA168-20P นั้นคือ chip รุ่น atmega168
หากตัวอักษรเขียนว่า"ATMEGA328P-20P" นั้นคือ chip รุ่น atmega328p

select chip ให้เหมาะสม

ขั้นตอน Select port ขั้น ต่อไปคือการเลือก Port (COMunication Port)โดย Arduino Version ใหม่ๆมักจะใช้ USB port ในการสื่อสาร โดยจะทำการสร้าง virtual port เช่น COM3 เป็นต้น หากเป็นรุ่นที่ใช้ rs232จะใช้COM1-2 ในการสื่อสาร 
select serial port ให้เหมาะสม


ขั้นตอน เปิดไฟล์ blink เพื่อทดสอบ
Sketches คือไฟล์ scriptsขนาดเล็กที่เราทำการส่งไปยัง Arduino เพื่อสั่งการต่างๆ
เปิดไปที่ Example Sketch (ไฟล์ตัวอย่าง)
โดยไปที่ File menu -> Sketchbook -> Examples -> Digital -> Blink
ซึ่งเปิดไฟล์ตัวอย่างแล้วจะมีโค้ดพิมพ์ให้เสร็จ



ขั้นตอน Verify / Compile (ตรวจสอบความถูกต้อง/คอมไพล์)
ขั้นแรกในการนำ Sketch ที่พร้อมแล้วส่ง arduino จะต้องทำการVerify/Compile ก่อน เพื่อตรวจสอบความผิดพลาด (เรียงกันเหมือนการตรวจคำผิด)และทำการแปลงcodeดังกล่าวให้เหมาะสม ในการ upload ขึ้นสู่ Arduino hardware
ประมาณสองวินาทีจะได้รับข้อความว่า" Done compiling"(หากโปรแกรมที่เขียนไม่ผิดพลาด)
ใน Status Bar และ Binary Sketch Size: ใน Notification area
ในความหมายนี้คือไฟล์ sketch ได้เขียนและพร้อมที่ uploading ขึ้น Arduino board


ขั้นตอน Upload โดยเสียบอุปรณ์ Arduino ,จะมีไฟสีเขียวหากเลือก Serial Port ถูกต้อง
ทำการเลือก Upload to I/O Board จาก File menu
หลังจากนั้นประมาณหนึ่งวินาทีจะมีข้อความว่า Done uploading ในช่องstatus bar


ขั้นตอนหาข้อผิดพลาด error detect
หากได้รับข้อความดังกล่าวว่า "avrdude: stk500_getsync(): not in sync: resp=0x00" ซึ่งหมายถึง Arduino ไม่ตอบสนองการทำงาน

โดยการตรวจสอบเบื้องต้นดังนี้:
  • การเลือก Serial Port ถูกหรือไม่?
  • ทำการติดตั้ง driver (USB)ถูกต้องหรือไม่?
หากได้รับข้อความแสดงความผิดพลาดดังนี้: 
แสดงถึงปัญหาเกี่ยวกับserial port โดยแก้ด้วยการติดตั้ง driver อีกครั้งและเลือก serial portให้ถูกต้อง


ขั้นตอนการแสดงผล โดย ใช้ Arduino Diecimila แสดงผลการกระพริบไฟ LED โดยนำขาที่ยาวกว่า(Anode)เสียบช่อง Digitalหมายเลข 13 และขาสั้น(cathode)เสียบที่ช่องGND(Ground) เมื่อเสียบลงไปทั้งคู่จะมีไฟกระพริบ



referent : http://www.ladyada.net/learn/arduino/lesson1.html

วันเสาร์ที่ 22 สิงหาคม พ.ศ. 2552

รีวิวคุณสมบัติ Duemilanove (2009) Arduino Standard ตัวล่าสุด





Arduino รุ่น Duemilanove(2009) ได้อัพเกรดเพิ่มประสิทธิภาพ microcontrollerโดยใช้ ATmega328 มันยัง compatible กับอุปกรณ์เหมือนกับรุ่นก่อนหน้าคือ ATmega168 เพียงแต่เพิ่มหน่วยความจำมากขึ้นสองเท่า
  • เพิ่ม flash memory เป็นสองเท่าในการเก็บไฟล์ sketches ( 32KB แทนที่ของเดิมคือ 16KB)
  • เพิ่ม RAM สองเท่าในการจองพื้นที่(2KB แทนที่เดิมคือ 1KB)
  • เพิ่ม EEPROM สองเท่าเพื่อเก็บข้อมูลเมื่อเราปิดในการจ่ายไฟแก่ board (1KB แทนที่เดิมคือ 512 bytes)
  • เพิ่มความเร็ว(ในการ bootloader )ในการ upload ไฟล์ sketches ที่เราเขียนใหม่ โดยความเร็วเพิ่มจากเดิม 19200 baud เพิ่มเป็น 57600 baud

Arduino คือเครื่องมือช่วยในให้ computer ที่มีการรับรู้เข้าใจ และการควบคุม เพิ่มมากกว่าเครื่อง desktop computer ที่จะทำงานโดยลำพังในการทำงานดังกล่าวขั้นต้น มันคือรูปแบบ open source physical computing โดยการเน้น microcontroller board ง่ายไม่ซับซ้อน ซึ่ง "Duemilanove" มีความหมายว่า 2009 ในภาษาอิตาลี Duemilanove เป็นรุ่นล่าสุดที่มีการใช้ USB อย่างเต็มตัวในการผลิต Arduino
referent: http://www.makershed.com/ProductDetails.asp?ProductCode=MKSP4&Click=19209

สรุป: ผู้เขียนบทความได้ทดลองใช้งานดูพบว่าค่อนข้างมีความเป็นมาตราฐานสูงในการ ทดลอง program ด้านต่าง ๆ เช่น Communication ,Servo motor ฯลฯ อีกทั้งยังสะดวกในการใส่ Shiled เนื่องจากมีความเป็นมาตราฐานสูง จึงเหมาะมากในการศึกษาเบื้องต้น


ภาพการเปรียบเทียบขนาดระหว่างDuemilanove กับ Duinothumb

หากท่านต้องการทำ Arduino Project ที่มีพื้นที่ใช้น้อยมาก เช่น รถบังคับเล็ก ๆ แนะนำให้ใช้ duinothumb ซึ่งผลิตโดยคนไทย เพื่อส่งเสริมให้มีการวิจัยและพัฒนาต่อไป

วันพฤหัสบดีที่ 20 สิงหาคม พ.ศ. 2552

การนำโปรแกรมเขียนลงไมโครฯ AVR ISP(In System Programming)



ในอดีตการพัฒนาคอนโทรลเลอร์เพื่อการเขียนข้อมูล (data หรือ program) ลงใน EEPROM (erasable rom) นั้นจำเป็นต้องถอดเอา chip ไปอาบข้อมูลด้วยแสง ultraviolet เพื่อทำการลบข้อมูล จึงจะสามารถเขียนโปรแกรมเข้าไปใหม่ได้ และมีอายุการใช้งานจำกัด ดังนั้นเมื่อต้องการพัฒนาโปรแกรมใหม่จะเกิดกระบวนการที่ซับซ้อนวุ่นวายมาก


ต่อมาความก้าวหน้าทาง Technology ทาง Flash Memory พัฒนามากขึ้น โดยบรรจุ Flash Memory ลงไปใน chip ทำให้การทำงานลบล้างข้อมูลบน chip ง่ายขึ้น ไม่ต้องใช้แสง ultraviolet เพื่อลบข้อมูล ใช้ไฟปกติสามารถอ่านเขียน ลบ โปรแกรมได้ แต่ต้องจำเป็นต้องใช้เครื่องมือ หรือวงจรที่ต้องออกแบบมาเพื่อใช้งานดังกล่าว

เครื่องเบิร์นโปรแกรม (Flash Programmers)
การอัดโปรแกรมเข้าไปใน chip หรือการเบิร์นโปรแกรม จำเป็นต้องใช้ไฟสูงหรือสัญญาณระดับไฟมากกว่า 12 โวลต์ เข้าไป tick ขาสัญญาณ เพื่อให้Micro controller รับรู้ว่าจะมีการเขียนโปรแกรม ซึ่งในอดีตต้องมีการถอด chip เข้า - ถอด chip ออกเพื่อย้าย chip จากบอร์ดทดลอง ไปยังเครื่องโปรแกรม ซึ่งวงจรไฟสูง
แต่ด้วยความต้องการปัจจุบัน ทางบริษัทผลิต chip ได้บรรจุวงจรเพิ่มแรงดันเข้าไปใน chip ด้วยจึงทำให้สามารถ flash โปรแกรม เข้าไปใน chip ได้เรียกว่า In Circuit System Programming ( ICSP or ISP) คือ การเขียน การเบิร์น (burn) อุปกรณ์วงจรต่างๆ จึงลดลงน้อยลง

การเบิร์นโปรแกรม (flash programmers หรือ ISP) จะสามารถเบิร์นโปรแกรมได้สองวิธี
  1. Parallel Programming Mode (Parallel Mode) :คือการต่อตรงเข้าไป mcu ไม่ได้ผ่านชุดคำสั่งพิเศษ
  2. Serial Downloading Mode (ISP mode):จะใช้ชุดคำสั่งใช้ในการ flash โปรแกรม เข้าไป
การทำงานของ In System Programming (ISP) ดังที่กล่าวไว้ในขั้นต้นว่า flash memory สามารถเขียนได้ต้องใช้ไฟสูง ในการขับขา gate จึงได้มีการพัฒนาเพิ่มทวีแรงดัน เพื่อสร้างไฟสูงภายในวงจร การเบิร์นจึงทำได้ง่ายขึ้น

ภาพขาของ MCU ที่ใช้ใน In System Programming

  • MOSI == Master Out Slave In: data input
  • MISO == Master In Slave out : data output
  • SCK == Serial ClocK : clock input
  • RST == RESET: used to activate the serial Programming
จากภาพขาของ MCU ที่ใช้ใน In System Programming จะอธิบายได้ดังนี้
  • MOSI นั้น จะเป็นขาส่งข้อมูลออก( Output ) ของตัวแม่ ( master )
  • MISO นั้น เป็นขาที่รับข้อมูล (input ) ที่ส่งมาจากลูก ( slave )
  • SCK นั้น เป็นตัวนาฬิกาคอยให้จังหวะการส่งข้อมูล
  • RST นั้น คือตัวที่เริ่มให้มีการเขียนโปรแกรมลง chip
อ้างอิงจาก http://www.electoday.com/bbs/viewthread.php?tid=180

ไม่มีความคิดเห็น:

แสดงความคิดเห็น