4

4 つの LED を制御し、4 つの接点からアナログ入力を取得しようとしています。プログラムは Java で書かれているので、AnalogRead() や LED を高または低に設定するなどの arduino の機能にアクセスするには、処理ライブラリをインポートすると、プログラムでこれらの機能を使用できるようになりますか?

また、プログラムがarduino自体に転送されるのか、それともJavaプログラムがピンからデータを引き出すだけなのか疑問に思っていましたか?

4

2 に答える 2

3

更新:私の提案は、最初にArduinoとProcessingを自分で通信してみることです。これについては、以下で説明します。Processing を使って直接 Arduino を制御したい場合は、Binary Nerd が提供するリンクが最適です。

更新 2 : このリンクも試してください: Netbeans と処理


Arduino コードは Arduino 上で実行され、Processing コードはコンピューター上で実行されます。Processing を介して Arduino を制御したい場合は、おそらくシリアル ポートを使用し、2 つのプログラムを作成します。Arduino では、コマンドを受信して​​アクション (LED をオンまたはオフにする) を実行したり、応答を返したりすることができます。もう 1 つは Processing で、Arduino に必要なコマンドを送信し、何らかの方法でその応答を処理します。

これは、1 つの LED と 1 つのアナログ入力用に作成した簡単な例です。これはテストされていないコードです。手順に従ってください。これが機能したら、Netbeans の Arduino で Processing を直接使用してみることができます。

ステップ 1. Arduino

  1. Arduino ボードを購入します。
  2. Arduino IDE をダウンロードします ( http://www.arduino.cc ) 。
  3. Arduino をコンピュータに接続します。
  4. Arduino コード (以下) を Aruino IDE にコピーします。
  5. Arduinoにアップロードします。

ステップ 2.処理

  1. 処理 IDE をダウンロードします。
  2. Processing コード (以下) を Processing IDE にコピーします。
  3. コード内の COM ポートが、Arduino が接続されているポートであることを確認してください。
  4. 処理コードを実行します。

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;
        }
    }
}

処理コード (コンピューター上で実行)。

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() );
}
于 2010-04-26T08:44:21.770 に答える
0

処理ライブラリを使用するアイデアは、標準ファームウェア プログラムを arduino にアップロードし、シリアル通信を使用して、Java と処理を使用して arduino 機能にアクセスすることです。

この記事を読んでください: Arduino と処理

したがって、Java プログラムでは、入力からアナログ値を読み取り、その読み取り値に基づいて出力ピンの値を変更できます。

于 2010-04-26T00:40:49.337 に答える