【问题标题】:Problems with connecting to the serial port of the arduino using processing使用处理连接到arduino的串行端口的问题
【发布时间】:2019-02-14 19:20:23
【问题描述】:

首先,我知道这个问题被问了很多,但我找不到任何可以解决我问题的答案。因此,当我尝试使用处理向 Arduino 的串行监视器写入内容时,它说端口(在我的情况下为“com3”)正忙。我不知道它可能很忙,因为我已经设置了读取串行监视器的延迟。

Arduino 代码:

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

void loop() {
   if(Serial.available()){
      char ch = (char) Serial.read();
      Serial.println(ch);
      ch = "";
      delay(100);
}

处理代码:

import processing.serial.*;

Serial sPort;
String port;

void setup() {
  port = Serial.list()[0];
  sPort = new Serial(this, port, 9600);
  //port.write("hey, its working");
}

我知道这很基础,但我将代码尽可能小,同时仍然显示问题

提前致谢

【问题讨论】:

  • 关闭任何正在使用该端口或重新启动计算机。

标签: java arduino processing arduino-uno


【解决方案1】:

看来,您尝试从正在运行的处理草图访问串行端口,同时从 Arduino 串行监视器访问。

需要注意的是,Arduino IDE 串行监视器本身就是一个进程,它与您的 Arduino 进行通信。 Arduino 不能同时与串行监视器和另一个程序通信。

但是你已经完成了一半来监控你的 Arduino 所说的话。请改用处理。 您已经在发回消息。您所要做的就是在处理应用程序中记录传入的串行消息。

只需将其添加到您的处理绘制循环中:

if (sPort.available() > 0) {
  print(sPort.readSring());
}

关闭 Arduino 串行监视器,运行处理草图,您应该会在处理控制台中看到您发送的任何内容(使用 Arduino 中的 Serial.print)。

Serial.print 与 Serial.read 一样,都是在插入 USB 电缆后与计算机上的任何程序进行通信的函数。串行监视器就是其中之一,但还有很多其他的,其中包括处理。

【讨论】:

  • 感谢回复,我想写入 arduino 串行监视器,以便以后可以使用鼠标坐标写入串行监视器并相应地转动伺服器
  • 我想要完成的事情是基于这个视频:m.youtube.com/watch?v=-YwpvwRELzE
  • 正如我所说,您必须找到另一种方法来确保您的邮件到达。串行监视器必须使用相同的端口。在 library>serial 下的处理示例草图中,使用 callresonse 示例,因此您可以确保代码没有其他问题。
  • 并在开始处理草图之前关闭(或不打开)Arduino IDE 中的串行监视器!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 2013-03-27
  • 1970-01-01
相关资源
最近更新 更多