從Arduino發送byte資料讓processing接收

發送byte資料後在processing用println()函式印出
以利觀察資料值
processing:
catvx=(data[0]-64)/5.0; //-64是為了要讓值有正負,有了正負就能給予方向
catvy=(data[1]-64)/5.0; //-64的原因是因為得到的資料不為0而是64,需處理後物體才不會亂跑
byte [] data = new byte[3]; //宣告接收資料時所需的變數型態byte
void getData() {
if (myPort.available()>0) { //如果有收到資料
myPort.readBytes(data); //就讀取資料
}
} //接收資料用的函式
Arduino:
void setup() {
Serial.begin(9600); //設定訊號源為9600
pinMode(5,INPUT); //設定pin5為按鈕用的腳位
digitalWrite(5,HIGH); //並將它打開
}
byte data[3]; //發送資料時用的變數型態byte
void loop() {
int valX=analogRead(A0); //讀取joystick的X值變化
int valY=analogRead(A1); //讀取joystick的Y值變化
data[0]=valX/8;
data[1]=valY/8; //將讀取到的值除以8(縮小範圍值從0~127)並給予data[0] data[1]
if(digitalRead(5)==LOW) data[2]=1; //如過按鈕按下 data[2]為1
else data[2]=0; //否則為0
Serial.write(data,3); //送出資料data[3]
delay(100); //需讓processing畫面刷新的頻率與Arduino發送資料的頻率同步,可視為幀數
}
沒有留言:
張貼留言