วันเสาร์ที่ 19 กันยายน พ.ศ. 2558

การติดตั้งบอร์ด ESP8266 ในโปรแกรม Arduino IDE

Written by Rui Santos   แปลและเรียบเรียงใหม่โดย คุณวุฒิ   ปานเกิด
ในปัจจุบันมีการพัฒนาโปรแกรมมากมายเพื่อนำมาใช้กับ ESP8266 ดังนั้นกลุ่มผู้พัฒนา ESP8266 จึงได้สร้างส่วนเพิ่มเติมหรือที่เรียกว่า “add-on” สำหรับการใช้งานบนโปรแกรม Arduino IDE เพื่อให้ง่ายต่อการใช้งานสำหรับผู้ใช้เนื่องจาก Arduino เป็นที่นิยมกันอยู่แล้ว
ก่อนที่เราจะอ่านในส่วนถัดไป แนะนำให้ผู้ศึกษาได้ลองเข้าไปอ่านในบล็อกตามลิงค์ที่ให้ไว้นี้ก่อนเพื่อศึกษาเรียนรู้เพิ่มเติมเกี่ยวกับโมดูล WiFi ESP8266 :  How to get started with the ESP8266. และหากผู้ศึกษาชื่นชอบใน ESP8266 และต้องการที่จะเรียนรู้โปรเจคอื่นๆสามารถไปดาวน์โหลด eBook มาอ่านได้ที่ : Home Automation using ESP8266 here.
เริ่มกันเลย!
ดาวน์โหลดโปรแกรม Arduino IDE
ขั้นแรกสำหรับผู้ที่ยังไม่มีโปรแกรมและเพื่อให้แน่ใจว่าโปรแกรมที่มีแล้วนั้นเป็นเวอร์ชั่นล่าสุดเพื่อให้รองรับกับ ESP8266 (เวอร์ชั่นเก่าๆบางอันไม่รองรับ) ให้เข้าไปโหลดที่นี่ : https://www.arduino.cc/en/Main/Software.
จากนั้นเลือกระบบปฏิบัติการของคุณและดาวน์โหลดซอฟแวร์รุ่นล่าสุดของ Arduino IDE
ติดตั้งโปรแกรม Arduino IDE
เมื่อติดตั้งโปรแกรมเสร็จแล้วเข้าไปในโฟลเดอร์โปรแกรมจะเห็นไอคอนของโปรแกรมดังภาพ
openning arduino ide
เมื่อเปิดโปรแกรม Arduino IDE ขึ้นมาจะเห็นหน้าตาโปรแกรมเป็นแบบนี้ :
Arduino IDE screenshot


การติดตั้งบอร์ด ESP8266 เพื่อให้สามารถใช้งานได้กับโปรแกรม Arduino IDE


เพื่อที่จะทำการติดตั้งบอร์ด ESP8266 ลงบนโปรแกรม Arduino IDE เพื่อให้โปรแกรม Arduino IDE รู้จักบอร์ดให้ทำตามคำแนะนำต่อไปนี้
  1. คลิกไปที่ preferences ในหน้าต่างของโปรแกรม Arduino IDE โดยไปที่ File>Preference
  2. ป้อนลิงค์นี้ http://arduino.esp8266.com/stable/package_esp8266com_index.json  เข้าไปในช่อง Additional Board Manager URLs แล้วคลิก OK ดังที่เห็นในภาพ
Arduino IDE preferences
3) เปิดไปที่ตัวจัดการบอร์ด โดยไปที่ Tools>Board>Board Manager...
Arduino IDE boards manager
4) เลื่อนลงไปเพื่อเลือกบอร์ด ESP8266 ในเมนู และเลือกติดตั้ง “esp8266 platform”
installing esp board


5) เข้าเมนูเลือกบอร์ด ESP8266 จาก Tools>Board>Generic ESP8266 Module
Arduino IDE select esp8266
6) ขั้นตอนสุดท้ายคือให้ปิดโปรแกรม Arduino IDE ทั้งหมดแล้วทำการเปิดใหม่


ทดสอบผลการติดตั้ง
เพื่อให้แน่ใจว่าการติดตั้ง add-on ของ ESP8266 นี้สำเร็จ เราจะทำการทดสอบโดยลองทำไฟกระพริบจากโมดูล ESP8266 โดยใช้ภาษาซีของ Arduino


เตรียมอุปกรณ์ดังนี้ :
  1. โมดูล ESP8266  (รุ่น ESP-01)
  2. โมดูล USB-UART เช่น FT232 หรือ CP2101 ฯลฯ เป็นต้น
  3. หลอด LED
  4. ตัวต้านทาน 220 โอห์ม
  5. โปรโตบอร์ด
  6. แหล่งจ่ายไฟ 3.3V


การอัพโหลดโค้ด

เพื่อทำการอัพโหลดโค้ดลงบนโมดูล ESP8266 เนื่องจากโมดูลที่ใช้นี้เป็นโมดูลรุ่น ESP-01 ซึ่งไม่มีช่องต่อ USB มาให้ จึงให้ต่อวงจร ESP8266 เข้ากับโมดูล UART (อาจจะใช้โมดูล FT232 หรือ CP2102 ก็ได้) โดยต่อวงจรตามนี้
ESP8266 Flasher
เมื่อคุณทำการอัพโหลดโค้ดตามด้านล่างโดยใช้โปรแกรม Arduino IDE ลงบนบอร์ด ESP8266 หากอัพโหลดสำเร็จจะเห็นคำว่า “Done Uploading” ที่ด้านล่างโปรแกรม
โค้ดสำหรับทดสอบ
/*********
 Rui Santos
 Complete project details at http://randomnerdtutorials.com  
*********/

int pin = 2;

void setup() {
 // initialize GPIO 2 as an output.
 pinMode(pin, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
 digitalWrite(pin, HIGH);   // turn the LED on (HIGH is the voltage level)
 delay(1000);               // wait for a second
 digitalWrite(pin, LOW);    // turn the LED off by making the voltage LOW
 delay(1000);               // wait for a second
}
ข้อควรจำ : คุณสามารถเข้าไปเลือกพอร์ต FTDI ของคุณได้โดยไปที่ Tools>Port menu ในโปรแกรม Arduino IDE


สาธิตการทำงาน
เมื่อเราประกอบวงจรเบื้องต้นนี้สำเร็จตามรูปโดยมีการเพิ่มหลอด LED ต่อเข้ากับโมดูล ESP จะเห็นได้ว่า LED จะกระพริบทุกๆ 1 วินาที


ESP8266 Blinking an LED

วันจันทร์ที่ 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 )