วันจันทร์ที่ 17 กุมภาพันธ์ พ.ศ. 2557

การเปลี่ยนสีฟอนต์ให้โปรแกรม Arduino

( Trust by Electronic Prototype Thailand )

       หลายคนคงเบื่อๆกับการเขียนโปรแกรมโดยที่มีลักษณะสีฟอนต์ รูปแบบฟอนต์เดิมๆ วันนี้เรามาเปลี่ยนสีเปลี่ยนลูกเล่นมันกันดีกว่าครับ  เนื่องจากว่า Arduino เป็นซอฟต์แวร์ open source ดังนั้นเราจึงสามารถเข้าถึงตัวโค้ดของโปรแกรม และสามารถแก้ไขค่าต่างๆได้โดยไม่ผิดกฏหมายอะไร ดังนั้นการเปลี่ยนแปลงแก้ไขโปรแกรมจึงไม่ถือเป็นการแฮคโปรแกรม  เรามาเริ่มกันเลยดีกว่า

ขั้นตอนที่ 1 เปิดโฟลเดอร์ที่ใช้เก็บโปรแกรมนั้นไว้ (ส่วนใหญ่จะอยู่ที่ไดร์ฟ C:\Program Files\arduino-xxx) ดังภาพ

จากนั้นให้เข้าไปในโฟลเดอร์ lib > theme แล้วจะเจอไฟล์ชื่อ theme.txt ให้เปิดไฟล์นั้นขึ้นมาด้วยโปรแกรมอะไรก็ได้ เช่น notepad เป็นต้น จากนั้นให้ดูที่บรรทัดประมาณ 66 จะได้ดังภาพ
( หมายเหตุ รูปนี้มีการแก้ไขสีและแบบอักษรของtheme ไปแล้วดังนั้นตัวเลขและคำที่อยู่เหนือเส้นขีดสีแดงอาจมีค่าไม่ตรงกัน )

จากภาพ ตัวหนังสือเหนือเส้นสีแดงมี 2 ตัวแปรคือ บอกสี และของแบบของตัวอักษร
  ตัวบอกสี สังเกตจะเห็นว่าเป็นเลขฐาน 16 จำนวน 6 หลัก หลังเครื่องหมาย #  ซึ่งแต่ละkey word ก็จะมีสีไม่เหมือนกันหากเราต้องการแก้สีที่ keywordใดก็ไปที่บรรทัดนั้นแล้วลองแก้เลขฐาน16นั้นดู โดยกำหนดสีได้จาก http://www.rapidtables.com/web/color/RGB_Color.htm  เราสามารถลองดูสีแล้วเอารหัสฐาน 16 มาใส่ได้ตามสีที่เราต้องการ

ในส่วนท้ายคือการแก้แบบอักษร ซึ่งมีด้วยกัน 3 แบบคือ
plain  : ตัวบางธรรมดา
bold : ตัวหนา
underlined : มีเส้นใต้
เราชอบแบบไหนก็แก้ไปแบบนั้น (อันนี้ต้องใช้วิธีลองผิดลองถูกจนกว่าจะถูกใจครับ)

จากนั้นก็ save โดยเลือก save as เนื่องจากจะได้ไม่ไปทับของเดิม(เผื่อแก้แล้วเสียจะได้เอาของเดิมมาใช้ได้) เอาไปบันทึกไว้ในโฟล์ดเดอร์อื่นก่อน หลังจากนั้นก็ cut เอาของเดิมออกจากโฟลเดอร์โปรแกรม แล้วเอาของใหม่มาวางแทน

แล้วลองปิดโปรแกรมArduinoแล้วเปิดใหม่(ถ้าปิดอยู่ก็แค่เปิดขึ้นมา)  ลองพิมพ์คำสั่งต่างๆของโปรแกรมขึ้นมาจะพบผลต่างจากเดิม แล้วก็ลองผิดลองถูกจนกว่าจะพอใจนะครับ 555 สไตล์ใครสไตล์มันครับ
ของผมแก้ไว้แค่นี้เองครับ


ติดตามผลงานอื่นได้ที่ https://www.facebook.com/ElectronicsTh



การบันทึกข้อมูลแบบExcel ลงใน SD card ด้วยบอร์ด Arduino

( Trust by Electronic Prototype Thailand )
           หลายคนคงคิดอยากจะทำโครงงานอิเล็กทรอนิกส์ที่เกี่ยวข้องกับการบันทึกข้อมูล data log ลงบนสื่อต่างๆ อย่างเช่น SD card เป็นต้น แต่หลายครั้งที่การบันทึกลงสื่อต่างๆด้วยไมโครคอนโทรลเลอร์นั้นมักจะเป็น Text file ซึ่งทำให้เกิดความยุ่งยากในการดึงข้อมูลมาใช้งาน จะดีกว่ามั้ยถ้าเราสามารถบันทึกไฟล์ให้เป็นไฟล์ data log ที่เราใช้ได้ง่ายขึ้นอย่างเช่น Excel 
           เราจึงมานำเสนอวิธีการที่จะใช้บอร์ดคอนโทรลเลอร์ในการสร้างฐานข้อมูลให้เป็นไฟล์ที่สามารถเปิดกับ Excel ได้เลยด้วยบอร์ด Arduino
           ก่อนอื่นเรามารู้จักไฟล์ที่ Excel สามารถเปิดได้กันก่อนเลย โดยดั้งเดิมแล้วไฟล์นี้คือนามสกุล .CSV ซึ่งย่อมาจาก Comma-separated values หมายถึงค่าที่คั่นด้วยเครื่องหมาย " , " นั่นเอง
          กรณีตัวอย่าง 
จากภาพข้อมูลที่เรามีสามารถตีความเป็นเชิงโปรแกรมได้ดังนี้
                     แถวแรก     :    "Data1","Data2"  \n
                     แถวที่สอง :     25,35  \n
                     แถวที่สาม :     82,56  \n
                     แถวที่สี่     :     12,33  \n
จากตัวอย่าง หลายคนคงเห็นภาพแล้วว่าจะบันทึกข้อมูลได้อย่างไร  ถ้าใครยังไม่เห็นภาพเราก็มาเริ่มทำการทดลองไปพร้อมๆกันเลยดีกว่า
       การทดลองของเราคือจะเก็บค่าที่อ่านได้จากA/Dของบอร์ดคอนโทรลเลอร์ซึ่งได้จากการปรับค่าตัวต้านทานปรับค่าได้(ผู้ใช้สามารถนำไปประยุกต์ใช้กับเซ็นเซอร์อื่นได้)  เก็บไว้ใน SD card ในแบบไฟล์ .CSV เพื่อนำไปเปิดกับ Excel ได้

อุปกรณ์ที่ต้องเตรียม
   - บอร์ด Arduino รุ่นใดก็ได้
   - จอ LCD 16x2 หรือ 20x4 หรือขนาดอื่นก็ได้ 
   - โมดูล SD card เชื่อมต่อแบบ SPI (โดยปกติที่มีขายทั่วๆไป  แนะนำว่าของ ett ดีสุดเพราะมีวงจรbuffer)
   - ตัวต้านทานปรับค่าได้ 10K 3 ตัว (สำหรับปรับความสว่างจอ 1 ตัว)
จากนั้นต่อวงจรตามนี้
   

ดาวน์โหลดไฟล์ทดลองจากลิงค์นี้  https://www.dropbox.com/sh/xwmhdjsss935jbh/dOCnah6Vgq


แล้วลองมารันทดสอบดูครับ 


หากใครอ่านโปรแกรมไม่เข้าใจหรือมีข้อสงสัยให้เข้าไปดูวิดีโอการสอนได้ที่นี่
( http://www.youtube.com/watch?v=LS6_gPjUaNU )


 ติดตามผลงานอื่นๆ ได้ที่ : https://www.facebook.com/ElectronicsTh

การโปรแกรมไมโครคอนโทรลเลอร์ ATtiny45/85 ด้วยบอร์ด Arduino

( Trust by Electronic Prototype Thailand )
Attiny45/85 เป็นไมโครคอนโทรลเลอร์ขนาดเล็กของ Atmel ในตัวถัง 8 ขา มีทั้ง Digital ,Analog ,PWM กินไฟต่ำถึง 1.8 โวลต์และยังมีราคาประหยัดมาก รวมไปถึงการต่อใช้งานไม่ต้องมีวงจรอะไรเพิ่มเติมเลย เพราะมันสามารถทำงานได้เองเพียงลำพัง




มีความจุ 4k ในไอซี ATtiny45 และ 8k ในไอซี ATtiny85
รันด้วย Internal Clock ความเร็ว 1MHz , 8MHz หรือ External clock 20MHz
มีช่อง digital I/O 5 ช่อง เป็นช่อง D0-D5 ( DX => Pin X )
มีช่อง PWM 2 ช่อง ใช้ร่วมกับ digital I/O ที่เป็นขา D0,D1
มีช่อง ADC 3 ช่อง ใช้ร่วมกับ digital I/O เป็นขา 1,2,3

สำหรับผู้ที่เคยใช้บอร์ดคอนโทรลเลอร์Arduino มาแล้วนั้นสามารถเขียนโปรแกรมลงบนซอฟต์แวร์Arduinoได้เลย โดยการจัดขาของATtiny45/85 จัดได้ดังรูปด้านบน

Let’s go…..! เริ่มกันเลยดีกว่า

อุปกรณ์ที่ต้องเตรียมมีดังนี้
-- บอร์ดไมโครคอนโทรลเลอร์ Arduino รุ่นใดก็ได้
-- ATtiny45 หรือ ATtiny85
-- สายไฟ (สายแข็งแกนเดี่ยว เอาไว้เสียบโปรโตบอร์ด
-- โปรโตบอร์ด
-- C 10uF
-- LED


ขั้นตอนแรกเราก็ต้องติดตั้ง Firmware ให้โปรแกรม Arduino ได้รู้จัก ATtiny45/85 กันก่อน

1. ดาวน์โหลดไฟล์จาก https://github.com/damellis/attiny/
2. แตกไฟล์ zip ที่โหลดมา


3. Copy โฟลเดอร์ที่ชื่อ attiny จากโฟลเดอร์ที่แตกออกมา นำไปวางไว้ที่โฟลเดอร์ hardware ของโปรแกรม Arduino ( C:\Program Files\arduino-1.0.3\hardware ) จะได้ดังรูป




4. จากนั้นให้เปิดโปรแกรม Arduino ขึ้นมา ( ถ้าเปิดอยู่ให้ปิดให้หมดแล้วเปิดใหม่ ) แล้วไปคลิกดูที่ => tools => board จะเห็นว่ามีไมโครคอนโทรลเลอร์ ATtiny มากมายเพิ่มขึ้นมาดังรูป ถ้าปรากฏดังรูปถือว่าไปขั้นตอนถัดไปได้




ขั้นตอนที่สองคือการเตรียม ArduinoISP สำหรับเบิร์นไมโครคอนโทรลเลอร์ ATtiny ให้ทำดังนี้

1. ไปที่ File => Examples => ArduinoISP แล้วก็คลิกเปิดมันขึ้นมา

2. แล้วกด Upload เข้าไปในบอร์ดArduino (ยังไม่ต้องต่อวงจรใดๆทั้งสิ้น)

ขั้นตอนที่สามคือต่อวงจรเพื่อเตรียมเบิร์นไมโครคอนโทรลเลอร์ ATtiny45/85


1. ต่อวงจรบอร์ดArduino กับ ATtiny ดังรูป (หากเป็นบอร์ดรุ่นอื่นให้ต่อตามขา ISP ของรุ่นนั้นๆ ดังตารางเทียบขาด้านล่าง )






ขั้นตอนที่สี่ เบิร์นโปรแกรมกันเลยดีกว่า…!


1. เขียนโปรแกรมที่เราต้องการ ตัวอย่างผมเขียนไฟกระพริบ โดยใช้ขา D 0 เป็นเอาท์พุต ( *ชุดคำสั่งที่รองรับ สามารถดูได้ที่หน้าสุดท้าย )





2. จากนั้นไปที่ tools => board => เลือกไมโครคอนโทรลเลอร์ ATtiny เบอร์ที่เรานำมาต่อด้วย ( กรณีผมเลือก ATtiny45 (internal clock 8MHz) การใช้ internal clock คือเราไม่ต้องต่อ crystal กำเนิดความถี่ช่วยเลยเพราะภายในชิปมันออกแบบให้เองแล้ว ทำให้ง่ายต่อการนำไปใช้งาน )


3. แล้วไปที่ tools => Programmer => เลือก Arduino as ISP


4. กด Upload แล้วรอจนโปรแกรมโหลดเสร็จ จะขึ้นแสดงดังนี้






ขั้นตอนสุดท้าย ทดลองใช้ดู.....


เมื่อเบิร์นเสร็จแล้วก็ถอด ATtiny ออกจากบอร์ด Arduino แล้วลองนำไปต่อวงจรไฟกระพริบเราดู ดังรูป





จะเห็นได้ว่า LED จะติดดับสลับกันทุก 1 วินาที แค่นี้ก็ได้ไมโครคอนโทรลเลอร์ ราคาถูกไว้ใช้สารพัดประโยชน์กันแล้ว เย้................


*ชุดคำสั่งที่รองรับสำหรับโปรแกรม Arduino ที่สามารถใช้เขียนโปรแกรมให้ ATtiny ได้มีดังนี้




ขอให้สนุกกับการต่อวงจรและการเขียนโปรแกรมนะครับ

คุณวุฒิ ปานเกิด 

Reference : http://highlowtech.org/?p=1695


( ติดตามผลงานอื่นๆได้ที่ https://www.facebook.com/ElectronicsTh )