2012-09-27 7 views
1

C 응용 프로그램에서 Arduino의 값을 읽는 표준 방법은 무엇입니까?Arduino의 정수를 Mac OS X의 C 응용 프로그램에 전달하는 방법

나는 가속도계와 몇 가지 전위차계를 가지고 있는데, 예를 들어 Cocoa 컨트롤 인 NSSlider에 바인딩하고 싶습니다.

내 arduino는 현재 /dev/cu.usbmodem26431에 연결되어 있으며 Serial Monitor에서 AnalogReadSerial 코드 샘플에 의해 인쇄 된 값을 읽을 수 있습니다.

/dev/cu.usbmodem26431에서 어떻게 읽습니까?

답변

1

코코아 시리얼 (편집) 여기에 제시하는 목표 C와 인터페이스의

세 가지 방법

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

아두 이노 직렬

당신이 Serial/USB을 설정하는 방법을 알고 있다면 연결을 사용하면 값을 문자열 또는 바이너리로 Arduino.

Arduino의 setup() 방법에서는 이와 같이 Serial 연결로 설정합니다.

주의 :이 예에서는 C 응용 프로그램으로부터 데이터를 읽을 수의 Arduino에 loop() 방법에

Serial.begin(115200); 

115200 대한 전송/속도 사용. 여기에 사용하여 C 응용 프로그램에 다시 데이터를 전송하는 방법을 포함하여 전체 아두 이노의 예입니다 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 문장이므로 프로젝트에서 동일한 머리글을 사용하지 말고 직접 디자인하십시오.이것은 당신이 아두 이노

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

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

+0

내 문제는 맥 측면에 더에 여러 값을 (INT, 문자열 등 플로트) 전송할 수있는 방법에 단지 예입니다. 정확히 (가상) 직렬 포트에 연결하는 방법을 정확히 알지 못합니다. 내 수정 된 질문보기 – alecail