2013-02-23 2 views
0

안녕하세요, 저는 파이썬에서 Arduino로 여러 비트의 정보를 보내고 있습니다. 이제 Arduino에서 Python으로 정보를 보내고 싶습니다. 예를 들어 보았지만 모두 한 줄의 정보 만 보냈습니다.Arduino to python serial read split

his은 내가 붙어있는 것입니다. Arduino는 시작 번호 255를 보낸 다음 ID와 같은 정보를 터미널 창에서 보냅니다.

255 start chr 

1 ch ID 

99 Value 

파이썬에서 개별 배열로 다시 분할하려고합니다.

감사합니다.

+0

실제로'출력하는 아두 이노가이 같은 아두 이노 직렬 모니터 결과 뭔가 :

VALUE 1 , VALUE 2 , LAST VALUE 

은 쉽게 파이썬의 값을 나눌 수 및 배열에서 값을 복용처럼 각각의 값에 변수를 할당 "시작 chr"'? 값 사이에 두 개의 개행 문자가 있습니까? 또는 '255199'를 받으시겠습니까? – Eric

+0

별도의 줄에 255 1 99를 출력합니다. 나는 그것들을 data0 data1 data2에 넣고 싶다. –

답변

1

가장 쉬운 방법은 전용 구분 기호 (예 : 쉼표)를 사용하여 그에 따라 문자열을 분할하는 것입니다. Python 측의 파싱이 쉬워 지도록 코드의 Arduino 측을 작성하십시오.

+0

당신이 의미하는 바를 모르지만 내 arduino Serial.print (data0) Serial.print (data1) Serial.print (data2) –

+0

@jamesjordan :'print' 또는'println'? 이 코드는 '255199'를 생성합니다. 이는 해석이 불가능합니다. – Eric

1

인쇄 등과 같은 쉼표로 구분와 라인에 아두 이노 항목 :

Serial.print(VALUE 1); 
    Serial.print((" , ")); 
    Serial.print(VALUE 2); 
    Serial.print((" , "));  
    Serial.println(LAST VALUE); 

마지막 값에 println을 사용하여 한 줄에 이전의 모든 인쇄를 결합합니다.

SERIALDATA= sensorData.readline() #Read line of text from Arduino 
DATASPLIT= SERIALDATA.split(' , ') #Splits the line of text into array of strings composed of each individual sensor data 

pyVALUE1= DATASPLIT [0] 
pyVALUE2= DATASPLIT [1] 
pyFINALVAL= DATASPLIT [2]