2016-03-07 59 views
0

我已經設法將Arduino草圖連接到處理草圖,但我被困在如何讓Arduino控制處理中的對象。如何通過Arduino草圖控制處理中的對象?

使用傾斜傳感器時,目標是當傾斜傳感器傾斜一個方向時,它將以這種方式移動物體,然後當它傾斜時,另一種方式會以另一種方式移動物體。

任何人都可以幫忙嗎?

這是我的Arduino代碼:

void setup() 
{ 
    // put your setup code here, to run once: 
Serial.begin(9600); 
} 

void loop() 
{ 
    // put your main code here, to run repeatedly: 
Serial.println("Hello, World!"); 

delay(100); 

} 

這是我的代碼進行處理:

import processing.serial.*; 
Serial myPort; 
String val; 
PShape bike; 

void setup() 
{ 
String portName = Serial.list()[0]; 
myPort = new Serial(this, portName, 9600); 

size(800, 600); 
bike = createShape(RECT, 0, 0, 200, 200); 
bike.setFill(color(102, 204, 0)); 
bike.setStroke(false); 

} 

void draw() 
{ 
    if (myPort.available() > 0) 
    { // If data is available, 
    val = myPort.readStringUntil('\n');   // read it and store it in val 
    } 
println(val); //print it out in the console 

shape(bike, 0, 0); 

} 

回答

0

打破你的問題分解成更小的碎片。

寫一個簡單的示例草圖(換句話說,[mcve])只做一件事:它只是讀取Arduino中的值並將它們打印到控制檯。它甚至不需要在屏幕上繪製任何東西。

寫另一個[mcve]只是做一件事:它只是在屏幕上移動一個對象。注意,這應該是而不是涉及你的Arduino代碼。儘量使其儘可能獨立。

當你將這兩個工作完全分開時,你可以考慮將它們合併成一個草圖。如果你遇到困難,你可以發佈[mcve]以及一個特定的技術問題。

下面是移動基於鼠標位置的對象草圖,只是去讓你開始:

float objectX = 0; 

void setup() { 
    size(500, 100); 
} 

void draw() { 

    if (mouseX > objectX) { 
    objectX ++; 
    } 

    background(0); 
    ellipse(objectX, height/2, 25, 25); 
} 
0

你的Arduino的代碼看起來that's唯一的hello world。 我使用arduino庫(傳感器,執行器)使用處理,做的是分割2個arduinos的任務:一個使用libs並從另一個arduino發送/接收數據。這第二個arduino加載了標準的firmdata(固件),允許從處理草圖中輕鬆地直接交流:http://playground.arduino.cc/Interfacing/Processing

相關問題