Java Netbeans和控件中的Arduino(处理)库

Java Netbeans和控件中的Arduino(处理)库,java,arduino,led,Java,Arduino,Led,我试图控制4个LED,并从4个触点获得模拟输入。该程序是用java编写的,因此要获得对arduino函数的访问权限,例如AnalogRead()和将LED设置为高或低,导入处理库会让程序使用这些函数吗 我还想知道,该程序是否会传输到arduino it本身,或者java程序只是从管脚中提取数据?使用处理库的想法是,将标准固件程序上载到arduino,然后使用串行通信,使用java和处理访问arduino函数 这篇文章应该会让你开始: 因此,在Java程序中,您可以从输入读取模拟值,并根据该读数更

我试图控制4个LED,并从4个触点获得模拟输入。该程序是用java编写的,因此要获得对arduino函数的访问权限,例如AnalogRead()和将LED设置为高或低,导入处理库会让程序使用这些函数吗


我还想知道,该程序是否会传输到arduino it本身,或者java程序只是从管脚中提取数据?

使用处理库的想法是,将标准固件程序上载到arduino,然后使用串行通信,使用java和处理访问arduino函数

这篇文章应该会让你开始:


因此,在Java程序中,您可以从输入读取模拟值,并根据该读数更改输出管脚上的值。

更新:我的建议是首先尝试将Arduino与您自己的处理进行通信。这就是我在下面描述的。如果你想直接通过处理直接控制Arduino,Binary Nerd提供的链接是你开始的最佳选择

更新2:同时尝试此链接:


Arduino代码在Arduino上运行,处理代码在您的计算机上运行。如果您想通过处理来控制Arduino,您最有可能使用串行端口,并创建两个程序。其中一个在Arduino上,可能接收命令并执行操作(打开或关闭LED),或者返回答案。另一个在处理过程中,可能会向Arduino发送必要的命令,并以某种方式处理它的答案

下面是我为一个LED和一个模拟输入所做的一个快速示例。这是未经测试的代码。按照步骤操作。一旦成功了,您可以尝试在Netbeans中直接使用Arduino进行处理

第一步Arduino

  • 买一块Arduino板
  • 下载ArduinoIDE()
  • 将Arduino连接到您的计算机
  • 将Arduino代码(如下)复制到Aruino IDE中
  • 上传到Arduino
  • 第二步处理

  • 下载处理IDE
  • 将处理代码(如下)复制到处理IDE中
  • 确保代码中的COM端口是Arduino连接的端口
  • 运行处理代码
  • Arduino代码:

    int ledPin = 13;
    int analogPin = 0;
    char c = 0;
    
    void setup()
    {
        pinMode( ledPin, OUTPUT );
        Serial.begin( 9600 );
    }
    
    void loop()
    {
        // Wait for a character to arrive at the serial port.
        if( Serial.available() > 0 )
        {
            // Read one byte (character).
            c = Serial.read();
            switch( c )
            {
                case '1':
                    // Turn LED on.
                    digitalWrite( ledPin, HIGH );
                    break;
                case '0':
                    // Turn LED off.
                    digitalWrite( ledPin, LOW );
                    break;
                case 'q':
                case 'Q':
                    // Send the reading from the analog pin throught the serial port.
                    Serial.println( analogRead( analogPin ) );
                    break;
            }
        }
    }
    
    处理代码(在计算机上运行)


    非常感谢,答案非常有用,但它让我们想知道如何处理。因此,如果我导入处理库,我将获得处理功能,从而读取模拟,并控制LED。但是arduino项目,将如何使用?它必须同时运行才能工作吗?由于处理是基于Java的,我想知道,如果语法和功能不是很相似的话?因此,实际的函数是用java编写的,而像analogread这样的调用是一个特殊的处理函数?我在回答中添加了一些步骤。如果我回答了你的问题,请告诉我。我已经成功地连接了arduino和processing,但是我想使用Netbeans IDE,这样我就可以加载处理jar文件和整个库,在该IDE中进行处理,但是java的函数,它们会与处理代码一起工作吗?非常感谢这些代码示例,它们让事情变得非常清楚(:是的,你可以。我从来没有在NetBeans中这样做过,但我在Eclipse中这样做过。这里的想法是,你正在用Java运行处理代码,而不是相反的方式。尝试我在顶部添加的新链接。我阅读了你提供的链接,非常感谢,但我仍然不能使用serial.read和serial.write。我导入了RXTX库以及其中的所有文件arduino和processing lib目录,但它们似乎都不允许我使用这些函数。
    import processing.serial.*;
    
    Serial serial;
    String str;
    
    void setup()
    {
        size(400, 400);
        serial = new Serial(this, "COM1", 9600);    // Use the serial port connected
                                                    // to your Arduino.
        while( true )
        {
            serial.write( '1' );        // Turn LED on.
            delay( 1000 );              // Wait one second
            serial.write( '0' );        // Turn LED off.
            delay( 1000 );
            serial.write( 'Q' );        // Get analog reading
            serial.bufferUntil( 10 );   // Wait for the data from the Arduino.
                                        // This captures characters until a newline
                                        // is received, the runs serialEvent()...
        }
    }
    
    void draw()
    {
        background(0);
    }
    
    void serialEvent(Serial s)
    {
        println( s.readString() );
    }