当前位置: 首页 > 知识库问答 >
问题:

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

松新
2023-03-14

我已经成功地将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);

}

共有2个答案

鄢开诚
2023-03-14

您的arduino代码看起来只是Hello world。我使用arduino库(传感器、执行器)使用处理所做的是将任务拆分为2个arduinos:一个使用库并从另一个arduino发送/retive数据。第二个arduino加载了标准固件数据(固件),它允许轻松直接地从处理草图进行通信:http://playground.arduino.cc/Interfacing/Processing

洪彬
2023-03-14

把你的问题分解成更小的部分。

编写一个简单的示例草图(换句话说,[mcve]),它只做一件事:从Arduino读入值并将其打印到控制台。它甚至不需要在屏幕上画任何东西。

编写另一个[mcve]只做一件事:它只是在屏幕上移动一个对象。请注意,这根本不应该涉及您的Arduino代码。尝试使其尽可能独立。

当你把这两个完全分开的时候,你可以考虑把它们合并成一个草图。如果你被卡住了,你可以把[mcve]和一个具体的技术问题一起发布。

这是一个基于鼠标位置移动对象的草图,开始吧:

java prettyprint-override">float objectX = 0;

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

void draw() {

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

  background(0);
  ellipse(objectX, height/2, 25, 25);
}
 类似资料:
  • 我使用的是陀螺仪/加速计传感器(https://www.sparkfun.com/products/13284)用Arduino来记录旋转。我总共使用了八个这样的传感器。我还使用多路复用器来帮助多个传感器(https://learn.adafruit.com/adafruit-tca9548a-1-to-8-i2c-multiplexer-breakout/overview).在我的Arduino

  • 我尝试做的是:Processing 3通过我的网络摄像头接收一种二维码-- 问题是:Processing 3和Unity都使用相同的端口(COM4,9600)。这将导致Unity中出现IO异常,表示“访问被拒绝”,随后出现串行端口未打开的错误。 处理3代码 Arduino代码 统一代码 我们显然无法在Unity中打开端口,因为它已经被处理3使用。如何解决这个问题?通信流: 最终,Unity需要根据

  • 当arduino连接到USB时,我的串行端口是/dev/ttyacm0。这个很管用。然而,当蓝牙适配器连接时,我收到错误“程序员没有响应”。我无法识别bluetooth在哪个端口上运行。我试着列举串行端口,但我找不到有没有蓝牙适配器的区别。你知道在哪里可以找到适合蓝牙通信的串行端口名称吗?

  • 我目前正在研究一种数据可视化技术,它从电影中获取信息,实时播放并同时创建。为此,我想有两个独立的草图窗口。一个窗口应显示实时播放的电影,另一个窗口应显示正在进行的可视化。 我似乎不知道如何轻松地添加另一个草图窗口,并尝试了一些在处理3中不再工作的示例。 然后我偶然发现了这个例子:https://gist.github.com/atduskgreg/666e46c8408e2a33b09a 尽管我可

  • 我想做的是从我用Arudino制作的转速表电路中读取连续的数据流,然后将其输入处理;我已经使用下面的代码成功完成了: 我不确定如何处理数据,以便每当检测到某个值时,处理中都会发生事件。 编辑:有人建议关闭,所以我的问题是调用是一个阻塞调用,这意味着中的指令指针将保持在。指针将调用和,但永远不会到达启动串行端口的线路 建议的解决方案是将这些行移动到的顶部,并将作为的最后一行。我尝试了这个(我下面的代

  • 这是如何使用公共类frome的一个后续步骤。其他处理选项卡中的java文件?;使用来自的Usage类中的示例。java文件-有完整的文档吗?-处理2。x和3。x论坛,我有这个: /tmp/Sketch/Foo.java 这个例子运行得很好,但是如果我取消注释import peasy。组织 行,则编译失败: 当然,我确实在下安装了PeasyCam,如果我导入peasy.*它工作得很好 来自草图。 我