Java シリアル RXTX ライブラリをインストールし、Arduino を正しくセットアップしました。サンプルコードも実行していますが、たとえば LED を点灯させるために、さまざまな Arduino ピンにアクセスする方法を理解できないようです。OutputStream またはその他の方法でピンにアクセスするにはどうすればよいですか?
特定のピンについてストリームに伝えるために、何か特別なものをストリームに送信する必要がありますか?
Java シリアル RXTX ライブラリをインストールし、Arduino を正しくセットアップしました。サンプルコードも実行していますが、たとえば LED を点灯させるために、さまざまな Arduino ピンにアクセスする方法を理解できないようです。OutputStream またはその他の方法でピンにアクセスするにはどうすればよいですか?
特定のピンについてストリームに伝えるために、何か特別なものをストリームに送信する必要がありますか?
私のコードがどれほど読みやすいか、またはどれだけ簡単にインストールできるかはわかりませんが、RXTXを介してArduinoと通信するための小さなプロジェクトを作成しました。あなたはここで私のコードを見ることができます:
https://github.com/p90puma/SerialToIR
それはあなたにいくつかのアイデアを与えるはずです。
これらの3つのファイルは、必要なものすべてを提供するはずです。
出荷時、Arduino はシリアル リンクから I/O ポートを制御する方法を提供していません。
Arduino 上で実行され、シリアル ポートからのコマンドをリッスンして I/O ピンを制御するプログラムを入手または作成する必要があります。Arduino には小さなマイクロコントローラーしか搭載されていないため、おそらく Java でこのプログラムを作成することはできません。
以下は、Arduino で実行され、シリアル ラインを介して 10 進数の ASCII 文字で綴られた数字を読み取り、それらを使用して RGB LED を制御するプログラムの例です。この例を使用して、問題の Arduino 側にアプローチする方法を理解できるはずです。Java RXTX コードは、機能するようになったら、これを制御するために整数を送信できます。
いいえ、Arduino 自体が独自のピンにアクセスします。Java を使用してシリアル データを Arduino に送信すると、Arduino は使用するピン/コードを決定します。
したがって、Arduino コードでは次のように開始します。
Serial.begin(9600);
...
...
また、Java からシリアル接続を行うには、SerialPortEventListener
インターフェイスを使用できます。
以前の回答の情報はすべて正しいです。Arduino はそれ自体ではなく、Java を実行しているコンピューターと対話して何かを行います。ある種のプロトコルでコンピューターと通信するコードを Arduino に配置する必要があります。
このための標準的なコード セットが存在することがわかりました。フィルマータといいます。Firmataのホームページについては、http://firmata.org/wiki/Main_Page を参照してください。Firmata と Processing の説明については、http: //playground.arduino.cc/Interfacing/Processing を参照してください。
Processing は、Java ベースの PC/Mac/Linux プログラミング環境です。Processing と Arduino プロジェクトは密接に関連しています。
さまざまな例を試してください。Processing と Arduino IDE をコンピュータにインストールします。Firmata を Arduino にアップロードし、Processing / Firmata の例を使用してすべてを試してください。