2016년 8월 1일 월요일

AnalogOutput 응용

AnalogOutput의 대표적 응용은 LED 밝기 제어입니다.
DigitalOutput으로 LED를 제어하면 0V와 5V의 On/Off 제어만 가능합니다.
하지만, AnalogOutput은 PWM 신호를 이용해서 Analog 출력을 흉내낼 수 있기 때문에 0V ~ 5V까지 제어를 이용해서 LED 밝기 제어가 가능한 것입니다.

AnalogOutput으로 LED를 제어하려면 LED 제어 핀이 ~표시로 된 PWM 핀에 연결되어야 합니다.

위 회로에 대한 아두니티 Wire는 아래와 같습니다.



Analog Curve 제어
Analog 출력 제어를 한다는 말은 시간에 따라 전압의 세기를 부드럽게(Smooth) 변화시킨다는 의미입니다. 이러한 신호를 Analog Curve라 하는데, 아두이노만으로는 이 Curve를 만들어내는 것이 쉽지 않습니다.

아두이노에서는 이런 Curve를 만들어내려면 수학 식을 활용해야 하지만, 유니티에서는 이것을 매우 쉽게 만들 수 있습니다.
아두니티 Bridge중에 CurveOutput을 사용하면 Analog Curve를 만들 수 있습니다.


CurveOutput은 Analog Curve를 만들어내기 위해 다양한 속성을 갖고 있습니다.

  • outputName : 출력 노드 이름
  • start : 시작 상태 곡선
  • loop : 반복 상태 곡선
  • end : 종료 상태 곡선
  • multiplier : 출력 값의 크기
  • speed : 재생 속도
  • loop : 반복 여부
위의 값들의 용도를 이해하기 위해서는 CurveOutput이 어떤 원리로 Curve를 만드는지 알아야 합니다.

Curve의 상태는 3가지로 나눌 수 있습니다.
  • 시작(Start) : Play 명령이 내려진 상황에서 반복 준비를 하는 상태
  • 반복(Loop) : Stop 명령이 내려질때까지 반복하는 상태
  • 종료(End) : Stop 명령이 내려져서 다시 원 상태로 복귀하는 상태
각 상태 천이(Transition)는 다음과 같은 조건으로 이루어집니다.
  • Play 명령이 있어야 시작이 된다.
  • Stop 명령이 내려지면 어떤 상태라 하더라도 종료 상태가 된다.
  • 반복 옵션(loop)이 없다면 반복 상태는 1회만 하고 Stop 명령이 없이도 종료 상태가 된다.
  • 실행중이라 하더라도 Play 명령이 내려지면 다시 시작 상태로 돌아간다.
각 상태에 대한 Curve를 만들기 위해 유니티는 Curve Editor를 제공합니다.

만들어진 Curve를 재활용하기 쉽게 하려면 Normailize시키는 것이 좋습니다. 즉, 값의 단위와 길이를 0~1로 맞춰놓으면 Curve의 모양만 취하면서 필요에따라 값을 곱해서 사용할 수 있기 때문입니다.

이를 위해 CurveOutput은 출력 크기에 대한 곱으로 multiplier를 사용하고, 시간에 대한 곱으로 speed를 사용합니다.
AnalogOutput과 CurveOutput을 연결하는 방법은 다음과 같습니다.


CurveOutput을 활용하면 AnalogOutput의 활용 범위가 매우 많아집니다.
다음 동영상을 통해 어떤 재미있는 효과를 만들어낼 수 있는지 감상하시기 바랍니다.


댓글 없음:

댓글 쓰기