2016년 8월 25일 목요일

온도 센서 다루기

온도 센서는 정말 종류가 많지만, 이 포스트에서는 TMP36이란 부품을 가지고 응용해보겠습니다.
TMP36

이 부품을 아두이노에서 사용하려면 다음과 같이 회로를 꾸밉니다.

TMP36은 온도에 따라 전압이 달라지기 때문에 Analog Pin의 값이 변하게 됩니다. TMP36의 데이터시트(Datasheet)를 확인하면 온도와 측정되는 전압 사이의 관계가 나와있습니다.

이 회로를 유니티에서 다루려면 아두니티 Wire Editor에 다음과 같이 연결하면 됩니다.

위 정보를 아두이노 스케치로 Export하고 보드에 업로드하면 유니티에서  TMP36을 다룰 수 있는 준비가 끝납니다.
실제로 보드와 유니티를 연결하여 실험을 해보면 0 ~ 1 사이의 값이 전달되는 것을 확인할 수 있지만, 이 값을 온도로 환산해야 뭔가 활용할 수 있을 것 같습니다.


MappingInput
AnalogInput의 값을 온도로 환산할 때 유용하게 사용할 수 있는 것은 MappingInput입니다.


MappingInput은 다음과 같은 설정이 필요합니다.
  • sourceName: 입력 항목의 이름
  • resultName: 출력 항목의 이름
  • mapCurve: 변환에 사용될 Mapping curve

Mapping Curve를 만들기 위해서는 TMP36의 특성 곡선을 잘 분석해야 합니다. 테이블 형태로 AnalogInput의 값과 온도 사이의 관계를 정의해보면 다음과 같습니다.
TMP36 특성곡선에 근거한 AnalogInput과 온도 사이의 관계

이것을 유니티 Curve Editor로 표현하면 다음과 같습니다.
AnalogInput과 온도 사이의 관계 Curve

이제 MappingInput을 AnalogInput에 연결하여 온도 값이 잘 변환되어 나오는 지 봐야 합니다.


온도를 텍스트로 보여주기
TextReactor는 Unity UI를 이용해서 측정된 온도를 텍스트로 보여주는 기능을 갖고 있습니다.


TextReactor는 다음과 같은 설정이 있습니다.

이것을 MappingInput과 연결하면 Unity UI의 Text로 온도가 표현됩니다.



여기까지의 응용을 영상으로 확인하시기 바랍니다.





댓글 없음:

댓글 쓰기