สืบเนื่องจากรายงานครั้งที่ 3 ตรงข้อที่ 2 ของการติดตั้ง firmata ที่ติดไว้ว่า ทำไมถ้าเราเลือกเป็น StandardFirmata แล้วค่าจาก analog I/O มีค่าเป็น 0 ซึ่งได้ข้อสรุปมาว่า เป็น bug ของ firmata ใน arduino 0017 ซึ่งได้รับการแก้ไขจาก firmata developer เรียบร้อยแล้ว ทั้งนี้ได้สรุปวิธีแก้ไข มาดังนี้
 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);
 }
 
ไม่มีความคิดเห็น:
แสดงความคิดเห็น