如何在Mac OS X上将Arduino中的整数传递给C应用程序

时间:2012-09-27 06:39:29

标签: macos arduino usbserial

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

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

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

如何阅读/dev/cu.usbmodem26431

1 个答案:

答案 0 :(得分:1)

Cocoa Serial (编辑)

这里介绍了与Objective C接口的三种方法

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

Arduino Serial

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

在Arduino上的setup()方法中,您建立了Serial这样的连接。

nb:在此示例中使用115200波特/速度

Serial.begin(115200);

在Arduino上的loop()方法中,您可以从c应用程序中读取数据。这是一个完整的Arduino示例,包括如何使用Serial.print()

将数据发送回c应用程序
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/