1

そこで、ArduinoをJavaプログラムに接続する方法を見つけました。ただし、シリアル接続を使用しても、形式が間違っているか、ボックスとして送信されるだけで、有用なデータが返されません。ここの早い段階で投稿された関連する質問を見てきましたが、どのヒントも役に立たないようです。では、シリアルポートを使用してArduinoとコンピューターの間でデータを送信する方法を知っている人はいますか?

これは私が使用しているコードであり、この人によって提供されています: http ://silveiraneto.net/2009/03/01/arduino-and-java/

package serialtalk;

import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.InputStream;
import java.io.OutputStream;
import processing.app.Preferences;

public class Main {
    static InputStream input;
    static OutputStream output;

    public static void main(String[] args) throws Exception{
        Preferences.init();
        System.out.println("Using port: " + Preferences.get("serial.port"));
        CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(
                Preferences.get("serial.port"));

        SerialPort port = (SerialPort)portId.open("serial talk", 4000);
        input = port.getInputStream();
        output = port.getOutputStream();
        port.setSerialPortParams(Preferences.getInteger("serial.debug_rate"),
                SerialPort.DATABITS_8,
                SerialPort.STOPBITS_1,
                SerialPort.PARITY_NONE);
        while(true){
            while(input.available()>0) {
                System.out.print((char)(input.read()));
            }
        }
    }
}

Arduinoはこれです: http ://www.arduino.cc/en/Main/ArduinoBoardDuemilanove

コードは単に番号を受け取り、Arduinoからどのアナログ読み取り値を送り返すかを決定します。

4

1 に答える 1

1

シリアル接続を扱うときは、次の重要な点を確認してください。

  • ボーレート一致
  • DATABITS は一致する必要があります
  • STOPBITS は一致する必要があります
  • パリティが一致する必要があります
  • 正しいケーブルを使用していることを確認してください (必要に応じてヌル モデム)
  • ケーブルが長すぎないことを確認してください

上記のすべてにより、Java 側の COM ポートから奇妙なものが出力される可能性があります。このコツをつかめば、あとはずっと簡単です。

私の個人的なお気に入りのライブラリはここにあります

于 2010-04-30T14:46:57.787 に答える