1

带有Video Experimenter Shield的Arduino UNO R3。在 Video Experimenter Shield 的帮助下,我从 Arduino 获得了从安全摄像头捕获的图像的轮询串行通信字节。我用 Java 构建了该代码以从 Arduino 检索字节并将 ByteArrayList 转换为 0 和 1 的单色图像。

java 程序不会立即从 arduino 收集可用数据,然后在 OUTPUT_BUFFER_EMPTY 的情况下将此字节堆栈作为图像。但它会不断地将从 arduino 接收到的字节一次又一次地保存到字节块中。

4

2 回答 2

2

我怀疑您没有从串口读取所有数据。您检查可用的字节数并将其读入缓冲区,但这可能不是整个图像。因此,当您调用ImageIO.read它时,它会返回 null。

有关如何执行此操作的详细信息,请参阅此问题的答案。

文档ImageIO.read还说,如果没有注册ImageReader图像数据,它将返回 null 。您使用的图像格式可能不受支持。

ImageIO 的实现至少支持 JPEG、PNG、BMP、WBMP 和 GIF。从您的描述来看,您似乎没有使用任何这些格式。

于 2012-04-17T12:24:05.063 回答
0

arduino 太慢了。因此,您应该在打开通讯通道后稍等片刻。如果没有,arduino 没有时间准备,你会丢失数据......

检查 RXTX java 库以及示例代码和注释:http ://arduino.cc/playground/Interfacing/Java 。

于 2012-04-18T07:45:31.173 回答