基本上,我试图使用力感应电阻器接收到的数据来改变处理草图背景的颜色。我遇到的问题是Arduino串行端口运行得很好/很快,但处理串行端口的速度非常慢/响应非常延迟。
我已经尝试在Arduino循环中添加延迟,但是当我添加那行代码时,我收到了一个NullPointerException错误,尽管我有一个默认的background_color变量值。我还尝试使用myPort。clear()函数在循环结束时执行,尽管我没有收到错误,但它会弄乱颜色并产生闪烁效果,因为值经常被清除。
这是arduino代码:
int A = A0;
int fsrreadingA;
int motorMap = 255;
int forceMap = 300;
int scalar = 4;
void setup() {
pinMode(A, OUTPUT);
Serial.begin(9600);
}
void loop() {
fsrreadingA = analogRead(A) * scalar;
int valA = map(fsrreadingA, 0, forceMap, 0, motorMap);
analogWrite(3, valA);
Serial.println(valA);
delay(100);
}
这是处理代码:
import processing.serial.*;
Serial myPort;
float background_color = 0;
void setup() {
size(500,500);
colorMode(HSB, 255);
println("Available serial ports:");
println(Serial.list());
String portName = Serial.list()[1];
myPort = new Serial(this, portName, 9600);
}
void draw() {
if (myPort.available() > 0) {
background_color = float(myPort.readStringUntil('\n'));
println(background_color);
}
background(background_color,150,100);
}
我期望的是随着用户更多/更少地按下FSR,背景颜色会发生变化。它应该从棕色变为紫色/粉红色。我不知道该怎么办/如何修复NullPointerException错误。我应该采取不同的方法吗?
你的Arduino似乎仍在以太快的速度发送数据,处理过程无法做出反应。
在处理端,你有一个FIFO缓冲区,因此如果你不能继续从RX缓冲区读取数据,你将开始删除最近收到的数据。
仅当ADC读数发生特定更改和/或读取后清除处理上的缓冲区时,您才可以尝试从Arduino发送数据:
myPort.clear()
如果这两种方法都不能解决您的问题,您可能还在运行有缺陷的处理版本,您可能需要更新它。
首先,我知道这个问题被问了很多,但我找不到任何解决我问题的答案。因此,当我试图使用处理将数据写入Arduino的串行监视器时,它会说端口(在我的例子中是“com3”)正忙。我不知道它会忙些什么,因为我已经设置了串行监视器读数的延迟。 Arduino代码: 处理代码: 我知道这是非常基本的,但我在显示问题的同时,使代码尽可能小 提前谢谢
问题内容: 我有一个Java程序,必须读取Arduino发送的信息。我从这里获取了Java代码。现在,我不太了解它是如何工作的,但是我尝试对其进行修改,并且得到了以下信息: 我创建一个对象串行COM口,我需要在主程序,然后我使用和当我需要它。 效果很好,Arduino获取数据并将其显示在LCD显示屏中。问题是。程序运行时,它会不断从串行端口读取数据(大约每40毫秒一次),但这并不意味着Arduin
问题内容: 我想知道是否有一种方法可以通过PHP读取我的串行端口-可行:-) 在练习Arduino技能时,我开发了一个简单的LED ON / OFF草图。通过在串行监视器中 打开 或 关闭 它可以工作。 下一步,我整理了一个网页,充当GUI界面,以单击链接并执行上面的打开和关闭功能。该基于Web的GUI可通过PHP使用。我正在使用PHP SERIAL 类与Arduino使用的串行端口进行交互。 问
我想知道是否有一种方法可以通过PHP来完成对串行端口的读取——有效:—— 在练习Arduino技能时,我设计了一个简单的LED开关示意图。它通过在串行监视器中输入on或off来工作。 下一步,我把一个网页放在一起,作为一个GUI界面,点击一个链接并执行上面的开关功能。这个基于网络的GUI通过PHP工作。我使用PHP串行类与Arduino使用的串行端口进行交互。 问题是我需要找到一种从串口获取反馈的
我尝试做的是:Processing 3通过我的网络摄像头接收一种二维码-- 问题是:Processing 3和Unity都使用相同的端口(COM4,9600)。这将导致Unity中出现IO异常,表示“访问被拒绝”,随后出现串行端口未打开的错误。 处理3代码 Arduino代码 统一代码 我们显然无法在Unity中打开端口,因为它已经被处理3使用。如何解决这个问题?通信流: 最终,Unity需要根据
我试图让Arduino在串口读取字符“s”时触发一个中继。该字符“s”由python根据从屏幕读取的图像发送。 我的问题是arduino似乎无法从串行端口读取数据,因为它从不执行if条件。我的猜测是这两者之间存在某种死锁(这就是为什么我将ardu.close()放在函数foo中) 这是我的arduino代码: 这是我的python代码: