2

我安装了 Java 串行 RXTX 库并正确设置了我的 Arduino。我什至已经启动并运行了示例代码,但我似乎无法理解如何访问不同的 Arduino 引脚以例如打开 LED。如何使用 OutputStream 或任何其他方式访问引脚?

我是否需要向流发送一些特殊的东西才能告诉它特定的引脚?

4

4 回答 4

1

开箱即用的 Arduino 不提供从串行链路控制 I/O 端口的任何方法。

您将需要获取或编写一个在 Arduino 上运行并侦听来自串行端口的命令以控制 I/O 引脚的程序。因为 Arduino 上面只有一个小型微控制器,所以你可能无法用 Java 编写这个程序。

这是一个在 Arduino 上运行的示例程序,它通过串行线路读取以十进制 ASCII 字符拼写的数字,然后使用这些数字来控制 RGB LED。您应该能够使用此示例来了解如何解决问题的 Arduino 方面,并且您的 Java RXTX 代码可以发送整数来控制它一旦工作。

http://arduino.cc/en/Tutorial/ReadASCIIString

于 2012-06-15T13:55:06.653 回答
1

我不确定我的代码的可读性如何,或者安装它的难易程度,但我写了一个小项目通过 RXTX 与 Arduino 对话。你可以在这里看到我的代码:

https://github.com/p90puma/SerialToIR

它应该给你一些想法。

这三个文件应该为您提供所需的一切:

于 2012-06-15T13:52:33.820 回答
0

先前答案中的所有信息都是正确的。Arduino 本身并不与运行 Java 的计算机对话并做任何事情。您需要将代码放到 Arduino 上,该代码将使用某种协议与您的计算机对话。

事实证明,存在一套标准的代码。它被称为Firmata。有关Firmata 主页,请参见http://firmata.org/wiki/Main_Page 。有关Firmata 和处理的讨论,请参见http://playground.arduino.cc/Interfacing/Processing 。

Processing是一个基于Java的PC/Mac/Linux编程环境。Processing 和 Arduino 项目密切相关。

尝试各种示例。将 Processing 和 Arduino IDE 放在您的计算机上。将 Firmata 上传到您的 Arduino 并使用 Processing / Firmata 示例来尝试一切。

于 2014-01-10T19:44:47.907 回答
0

不,Arduino 本身可以访问自己的引脚。您使用 Java 将串行数据发送到 Arduino,然后它决定使用哪个引脚/代码。

因此,在您的 Arduino 代码中,您可以从以下内容开始:

Serial.begin(9600);
...
...

要从 Java 进行串行连接,您可以使用该SerialPortEventListener接口。

于 2012-06-15T13:52:11.723 回答