如何通过Arduino草图控制处理中的对象?

时间:2016-03-07 21:26:06

标签: arduino processing

我已经设法将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);

}

2 个答案:

答案 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