14 มกราคม 2553

รายงานความก้าวหน้า ครั้งที่ 4

Tensile Testing

สืบเนื่องจากรายงานครั้งที่ 3 ตรงข้อที่ 2 ของการติดตั้ง firmata ที่ติดไว้ว่า ทำไมถ้าเราเลือกเป็น StandardFirmata แล้วค่าจาก analog I/O มีค่าเป็น 0 ซึ่งได้ข้อสรุปมาว่า เป็น bug ของ firmata ใน arduino 0017 ซึ่งได้รับการแก้ไขจาก firmata developer เรียบร้อยแล้ว ทั้งนี้ได้สรุปวิธีแก้ไข มาดังนี้

1. ให้ทำการโหลด firmata ตัวใหม่จาก >> Firmata-2.1beta7.zip
2. ให้เข้าไปในโฟร์เดอร์ libraries โดยทำได้ดังนี้
สำหรับ
GNU/Linux : ~/Desktop/arduino-0011/hardware/libraries
windows: C:\Program Files\arduino-0011\hardware\libraries
Mac OS X: /Applications/Arduino.app/Contents/Resources/Java/hardware/libraries
(สำหรับใน Mac นั้นหลังจากที่เข้าไปใน Application แล้วจะพบกับ arduino.app ให้คลิกขวาเลือก Show Package Contents)
3. เมื่อเข้าไปในโฟร์เดอร์ libraries แล้วนั้น ให้นำโฟร์เดอร์ Firmata ไว้วางทับ (อย่าเอาไปทั้ง Firmata-2.1beta7)
4. ให้ปิด arduino environment แล้วเปิดใหม่
5. ให้เลือก file > examples > firmata > StandardFirmata แล้วทำการ อัพโหลดเข้าบอร์ด
6. เปิด processing แล้วลองรันงานที่เรียกใช้ทั้ง analog และ digital ดูว่าทำงานได้หรือป่าว (มันต้องได้ถ้าทำไม่ผิดเอง)
ตัวอย่าง
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
int analogPin = 0;
int value = 0;

void setup(){
arduino = new Arduino(this, Arduino.list()[0], 57600);
}

void draw(){
value = arduino.analogRead(analogPin);
println(value);
arduino.digitalWrite(13,Arduino.HIGH);
delay(value);
arduino.digitalWrite(13,Arduino.LOW);
delay(value);
}

13 มกราคม 2553

รายงานความก้าวหน้า ครั้งที่ 3

Tensile Testing
จากรายงานครั้งที่ 2 หลังติดตั้งทุกอย่างพร้อมแล้วก็ลองอัพโหลดโปรแกรมใช้งานดู ปรากฏว่าราบรื่นดีไม่มีปัญหาแต่อย่างใด แต่เคราะห์ซำ้กรรมซัดเหตุอันใดไม่ทราบทำไม code ที่เขียนบน processing ดันรันบน arduino ไม่ได้ แม้ว่าจะ import library มาแล้วก็ตามก็ดันไม่ยอมรัน ฉะนั้นจึงต้องย้ายกลับไปทำบน processing ตามเดิม แต่โชคดีที่ว่าใน processing มี library ของ arduino ให้ใช้งานได้อย่างสะดวกสะบาย เหมือนเขียนอยู่บน arduino ปกติ แต่กว่าจะง่ายเพียงนั้น มันยากลำบากหนักกว่าจะหาวิธีใช้งานได้ ทั้งนี้แล้วจะขอเขียนไว้สำหรับผู้ใช้ processing ในการเขียนโปรแกรมควบคุม arduino หรือ freeduino ก็ตามสามารถใช้ได้เหมือนกัน กระผมทดลองแล้ว ฮ่าๆๆ มีดังนี้

1. เปิดเจ้าตัว arduino evironment ขึ้นมา
2. เลือก file > examples > firmata > StandardFirmata หรือถ้าต้องการเรียกใช้ส่วนของ analog I/O ให้เลือก SimpleAnalogFirmata แทน ไม่งั้นถึงเรียกใช้ไปจะได้แค่ค่า 0 กลับมาส่วนสาเหตุนั้นกำลังศึกษาเบื้องต้นอยู่
3. หลังจากเลือกแล้วให้เชื่อมต่อ arduino board เข้ากับคอมพิวเตอร์ แล้วทำการอัพโหลดเจ้า standardFirmata หรือ SimpleAnalogFirmata ลงไป
4. ทำการลง arduino library ลงใน libraries ของ processing ซึ่งจะอยู่ในส่วนของ sketchbook โดยเราสามารถดูได้ว่าอยู่ที่ไหนจาก preference (ในกรณีที่เราไม่เคยลง library เพิ่มเติมเลยให้เราสร้างโฟร์เดอร์ชื่อ "libraries" ขึ้นมา) และนำโฟร์เดอร์ arduino ไปวางไว้ในนั้น โดย arduino library โหลดได้จากที่นี่ >> processing-arduino-0017.zip
5. หลังจากนั้นก็ลองรันโปรแกรมที่เขียนควบคุม arduino จาก processing ดู
ตัวอย่าง

import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
int analogPin = 0;
int value = 0;

void setup(){
arduino = new Arduino(this, Arduino.list()[0], 57600);
}
void draw(){
value = arduino.analogRead(analogPin);
println(value);
}

หวังว่าคงจะช่วยลดเวลาให้การแก้ปัญหาเดียวกันไปได้ระดับนึงนะ อิอิ ยังไงลองทำดูสำหรับผู้ที่ต้องการใช้ processing เขียนโปรแกรมควบคุม arduino

แหล่งข้อมูลจาก :: http://www.arduino.cc/playground/Interfacing/Processing
http://processing.org/discourse/yabb2/YaBB.pl?num=1232482902

12 มกราคม 2553

รายงานความก้าวหน้า ครั้งที่ 2


Tensile Testing
รายงานต่อจากครั้งที่ 1 ภายหลังจากการปรึกษากับอาจารย์แล้ว ได้ดำเนินการต่อโดยเริ่มจากการติดตั้งและกำหนดค่าเบื้องต้นของ Arduino environment เพื่อใช้ในการเริ่มติดต่อกับ arduino board ทาง serial port ในขั้นต่อไป ซึ่งสรุปวิธีการติดตั้งและกำหนดค่าเบื้องต้น มาดังนี้

How to get Arduino Running on Mac OS X (10.3.9 or later) or Windows
จะประกอบไปด้วยขั้นตอนต่าง ๆ ดังนี้
1.ต้องมี Arduino board และสายเคเบิ้ล (Freeduino ก็โอเคอยู่)
2.Download ตัว Arduino environment มาติดตั้ง
3.ติดตั้ง USB driver
4.เชื่อมต่อเข้ากับ board
5.run ตัว Arduino environment
6.ทำการ upload โปรแกรมเพื่อทำงาน
7.เริ่มต้นพัฒนา (สำหรับโปรแกรม LED นี้ ให้สังเกตการสว่างของ LED)
8.เริ่มเรียนรู้การใช้งาน arduino เบื้องต้นด้วยแบบฝึกหัดต่าง ๆ

เริ่มกันเลยดีกว่า !!!
1.Arduino board ตัว arduino board น้ันจะมีรูปร่างหน้าและส่วนประกอบต่าง ๆ ที่สำคัญ ดังรูป


และนอกจากจะต้องมี Arduino board แล้วจะลืมเสียมิได้ก็คือ สายเคเบิ้ล ถ้าไม่มีให้นึกถึงสาย USB เครื่อง printer ที่บ้าน

แทนกันได้อยู่


2.Download arduino environment

สั้น ๆ ง่าย ๆ คำเดียวเลยก็คือ เราจะต้องมีตัวพัฒนา เพื่อใช้ในการทำงานของเรา ฉะนั้นแล้วเราจำเป็นจะต้องทำการโหลด arduino environment มาติดตั้ง

>> http://arduino.cc/en/Main/Software

3.ติดตั้ง USB drivers

ในการเชื่อมต่อระหว่างคอมพิวเตอร์กับตัว arduino board นั้น เราจะต้องทำการติดตั้งตัว driver สำหรับ FIDI chip ที่อยู่บนบอร์ดก่อน โดยเราสามารถหาลง driver ดังกล่าวได้จากการ unpack ตัวติดตั้งของ arduino

(เลือกให้ตรงกับเครื่องของตัวเองนะ)

FTDIUSBSerialDriver_v2_1_9.dmg for older (PPC) Macs like the Powerbook, iBook, G4 or G5


FTDIUSBSerialDriver_v2_2_9_Intel.dmg for newer (Intel) Macs like the MacBook, MacBook Pro, or Mac Pro

Download new version>> http://www.ftdichip.com/Drivers/VCP.htm


*หมายเหตุ 1. เมื่อติดตั้งเสร็จ เสียบสายเคเบิ้ลกับบอร์ดแล้วยังไม่สามารถเลือก /dev/tty/usbserial ได้ให้เปิด terminal พิมพ์ตามดังนี้แล้ว restart เครื่อง


$ sudo mkdir /var/lock

$ sudo chmod 777 /var/lock


2. ระบบ windows สามารถโหลดได้จากเว็บไซต์เดียวกันและสามารถ add new hardware wizard เพื่อค้นหา driver

ดูวิธีทำได้ที่ >> http://arduino.cc/en/Guide/Windows


4.เชื่อมต่อเข้ากับ board

แหล่งจ่ายไฟที่บอร์ดจะใช้งานนั้นจะสามารถเลือกได้ระหว่าง USB และ power plugs ในกรณีที่แหล่งจ่ายไฟมาจาก USB

(ซึ่งจะเหมาะสำหรับการทำงานของอุปกรณ์ที่ใช้ไฟฟ้าต่ำ เช่น LEDs) ตำแหน่งของ jumper จะคล่อมสอง pin ในส่วนของ USB ดังรูป


และสำหรับกรณีที่แหล่งจ่ายไฟของเรานั้นมาจาก external power supply (6-12V) ตำแหน่งของ jumper จะคล่อมสอง pin ในส่วนของ power plug (EXT จากรูปข้างต้น) และสำหรับบางตัวที่ไม่มีตัว jumper นั้นบอร์ดจะทำการเลือกให้อย่างอัตโนมัติ หลังจากการเชื่อมต่อแล้ว power LED ควรติดเป็นสีเขียว


5.run ตัว Arduino environment

ให้เราเริ่มเปิดโปรแกรม arduino ที่ทำการติดตั้งไว้ หลังจากทำตาม ข้อ 2

6.ทำการ upload โปรแกรมเพื่อทำงาน

เราสามารถเริ่มต้นการพัฒนาได้เลย สำหรับตัวอย่างนี้จะเปิดตัวอย่างที่มีมาให้จาก

File >> Sketchbook >> Example >> Digital >> Blink และทำการเลือก serial device จาก

Tool >> Serial Port (สำหรับคนใช้ Mac ควรใช้ /dev/tty/usbserial)

หลังจากเราเลือกค่าต่าง ๆ แล้ว เราจะต้องเลือกชนิดบอร์ดที่เราใช้งานจาก Tool>Board สำหรับ arduino ตัวใหม่จะเป็น Arduino Duemilanove or Nano w/ ATmega 328 แต่รุ่นก่อนหน้านี้หรือ Freeduino จะต้องเลือกใช้งานเป็นแบบ Arduino Diecimila, Duemilanove or Nano w/ ATmega 168 เมื่อเราทำทุกขั้นตอนบรรลุแล้ว ให้เรากดลูกศร ดังรูป

*หมายเหต ATmega 168 และ Atmega 328 เป็น micro-controller ที่ถูกใช้ใน Arduino board ใน 168 จะมีส่วนของ memory ขนาด 16 KB แต่ 328 จะมี 32 KB ทั้งคู่จะเสียให้ 2 KB สำหรับการใช้งานในส่วนของ bootloader อีกทั้ง 168 ยังมี SRAM = 1 KB และ EEPROM 512 Bytes ซึ่งใช้ในการอ่านและเขียนข้อมูลเก็บไว้เมื่อต้องปิดบอร์ด สามารถทำได้ประมาณ 100,000 รอบ และสำหรับ 328 นั้นจะมี SRAM = 2 KB และ EEPROM = 1KB

ที่มา :: ATmega 168 data sheet

>> http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf

ATmega 328 data sheet

>> http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf

EEPROM

>> http://www.arduino.cc/en/Reference/EEPROM

Arduino Duemilanove (มันแปลว่า 2009 เป็นภาษาอิตาลี)

>> http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove


7.หลังจากที่เรา upload โปรแกรมเสร็จแล้วให้เราสังเกตการสว่างของ LED

8.เราสามารถเรียนรู้เพิ่มเติมได้จาก

ตัวอย่าง >> http://arduino.cc/en/Tutorial/HomePage

ข้อมูลอ้างอิงต่าง ๆ >> http://arduino.cc/en/Reference/HomePage



freeduino


เสียตังค์อีกแล้วเรา ตอนนี้ผมมีทั้ง Arduino ที่สั่งมาตอนแรก (ประมาณ 1,200 บาท บอร์ดสีน้ำเงิน ใช้ ATmega328) กับ Freeduino (ราคา 650 บาท บอร์สีเขียว ใช้ ATmega168) ที่สั่งจากคุณช้าง ณ ayarafun.com ดูรูปกันหน่อย


เอ้า...ใครอยากลองเล่นก็มีให้ยืมแล้วนะ