我已经设法将Arduino草图连接到Processing草图,但我仍然坚持如何让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 :(得分: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);
}
答案 1 :(得分:0)
你的arduino代码看起来只是你好世界。 我使用处理来使用arduino libs(传感器,执行器)的做法是分割2个arduinos的任务:一个使用libs并从另一个arduino发送/接收数据。第二个arduino加载了标准的firmdata(固件),允许从处理草图中轻松直接地进行通信:http://playground.arduino.cc/Interfacing/Processing