1

CアプリケーションからArduinoの値を読み取るための標準的な方法は何ですか?

私は加速度計といくつかのポエンティオメーターを持っており、それらをCocoaコントロール(たとえばNSSlider)にバインドしたいと思います。

私のarduinoは現在次の場所に接続されています:/dev/cu.usbmodem26431AnalogReadSerialコードサンプルによって出力された値をシリアルモニターで読み取ることができます。

から読むにはどうすればよい/dev/cu.usbmodem26431ですか?

4

1 に答える 1

1

ココアシリアル(編集)

ここでは、ObjectiveCとのインターフェースの3つの方法を紹介します。

http://arduino.cc/playground/Interface/Cocoa

Arduinoシリアル

接続を確立する方法を知っている場合はSerial/USB、値を文字列またはバイナリとしてArduinoに送信できます。

setup()Arduinoのメソッドでは、Serialこのような接続として確立します。

nb:115200この例ではボー/速度を使用

Serial.begin(115200);

Arduinoのloop()メソッドでは、cアプリケーションからデータを読み取ることができます。これは、を使用してcアプリケーションにデータを送り返す方法を含む完全なArduinoの例です。Serial.print()

int incomingByte = 0;   // for incoming serial data

void setup() {
        Serial.begin(115200);     // opens serial port, sets data rate to 115200 bps
}

void loop() {

        // send data only when you receive data:
        if (Serial.available() > 0) {
                // read the incoming byte:
                incomingByte = Serial.read();

                // say what you got:
                Serial.print("I received: ");
                Serial.println(incomingByte, DEC);
        }
}

ソースhttp://arduino.cc/en/Serial/read

上記の例は非常に大雑把です。Serial.available()を使用して、読み取られるのを待機しているデータの量を確認できます。

パケットの終わりのインジケータとして(パケットが完全に受信されたことを知るために)ラインターミネータまたは他のタイプのターミネータstringsを使用したい場合があります。\n

独自のヘッダーを設計し、データの整合性を確保することをお勧めしますが、単純で重要でないプロジェクトについてcheck sumは気にしません。check sums

例として、gpsシステムは文字列/テキストモードのときに文を送信することがよくあります。tinyGPSと呼ばれるArduinoライブラリを検索すると、Arduinoプログラム内のさまざまな変数に文全体を読み取る1つの方法がわかります。

これはNMEAGPSセンテンスです。プロジェクトで同じヘッダーを使用せず、代わりに独自のヘッダーを設計してください。これは、複数の値(int、string、floatなど)をArduinoに送信する方法のほんの一例です。

$GPBWC,081837,,,,,,T,,M,,N,*13

http://aprs.gids.nl/nmea/

于 2012-09-27T20:53:23.130 に答える