문자열을 float로 바꾸는거 에러 좀 봐주세요 ㅠㅠ
글쓴이: merry / 작성시간: 수, 2020/05/20 - 1:35오후
아두이노에서 온도센서로 온도값 받아와서 파이썬으로 데이터 불러와서 이미지 처리하는데,
다음 코드에서 "dataArray = float(ard)"
이 부분이 자꾸 다음 같은 에러가 나네요 ㅠㅠ
코드가 아예 실행이 안되는것도 아니고 잘 되다가 에러 뜨다가 해요
뭐가 잘못된 걸까요 ㅠㅠ
아두이노 :
void loop() {
Serial.print(mlx.readObjectTempC());
Serial.println();
delay(50);
}
파이썬 :
arduinoString = arduino.readline().decode() # 아두이노 데이터 받아오기.
dataArray = float(arduinoString) # 아두이노에서 받은 문자열을 float형으로 변환
tempC.append(dataArray) # tempC에 데이터 입력
오류 내용 :
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/aduino/test.py", line 26, in
dataArray = float(ard)
ValueError: could not convert string to float:
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 149.2 KB |
Forums:
이런 경우 대부분은 string 데이터가 들어오다가
이런 경우 대부분은 string 데이터가 들어오다가 중간에 1 바이트씩 빠지는 경우 발생합니다.
문자열을 무조건 변환하지 마시고, 문자열이 모두 수신되었는지 확인해 보세요.
일종의 간략한 포맷도 고려해 보세요.
예를 들어,
Head (1 byte) | String (4 byte, Float) | Tail(1 byte)
0 | 0x12345678 | 1
등으로요. 그러면 다음 패킷도 찾기 쉽고 기타 처리에도 적용할 수 있습니다.
댓글 달기