1

从 C 应用程序读取 Arduino 上的值的标准方法是什么?

我有一个加速度计和几个电位器,我想将它们绑定到Cocoa控件,例如 NSSlider。

我的 arduino 当前连接到:/dev/cu.usbmodem26431并且我可以在串行监视器中读取 AnalogReadSerial 代码示例打印的值。

我如何阅读/dev/cu.usbmodem26431

4

1 回答 1

1

可可系列(编辑)

这里介绍了三种与 Objective C 交互的方法

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

Arduino 串行

如果您知道如何建立Serial/USB连接,那么您可以将值作为字符串或二进制发送到 Arduino。

setup()Arduino 上的方法中,您可以Serial像这样建立连接。

注意:本例使用115200波特率/速度

Serial.begin(115200);

loop()Arduino 上的方法中,您可以从 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 程序中不同变量的方法。

这是一个 NMEA GPS 语句,不要在您的项目中使用相同的标题,而是自己设计。这只是您如何将多个值(int、string、float 等)传输到 Arduino 的示例

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

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

于 2012-09-27T20:53:23.130 回答