본문 바로가기

Robot/Robot Program - ROS

유니티에서 ARDUnity를 이용하여 아두이노에 연결된 서보모터 움직여 보기

유니티에서 뭔가를 만지작 거리는 것이 점점 재미있어 집니다.^^. 뭐 그거야 제가 첫 글[바로가기]에서도 이야기했지만, 아주 좋은 헬퍼(^^)를 두고 있기 때문이기도 하며, 또 아두니티(ARDUnity)라는 재미난 애셋을 이용해서 아두이노라는 하드웨어를 건드리는 재미도 같이 느끼기 때문이겠지요^^. 오늘은 ARDUnity가 제공하는 몇 몇 자원을 이용해서 서보모터를 돌리는 것을 해볼려고 합니다.^^

첫화면입니다. 이제 아두니티(ARDUnity)를 import하는 것은 지나가죠~~^^ import까지 되고 서보모터 돌리기 예제를 따라가볼까요^^

일단, UI->Canvas를 추가합니다.

저렇게 생성됩니다.

이제 Canvas의 하위에서 UI->Panel을 추가합니다.

저렇게 생성됩니다.

이제 방금 생성한 Panel을 선택한 상태에서 메인 메뉴의 ARDUnity->add Utility->DialSlider를 선택합니다.

그러면 Panel의 Inspector에 Dial Slider가 생성되었음을 확인할 수 있습니다.

Panel에서는 Image 속성이 필요없어서 지웁니다.^^

이제 아까 Panel의 이름을 DialSlider로 변경하고...

Rect Transform의 속성값을 위와 같이 해 둡니다. 그리고, Dial Slider의 minAngle과 maxAngle을 잡아줍니다. 이 각도는 실제 서보모터의 구동 각도를 제한하는 것입니다.

그리고, DialSlider에 Empty Create를 선택한 후 위 그림처럼 이름은 Knob으로 하고, Canvas Renderer와 Image라는 Component를 추가(add)합니다.

이제 Assets->ARDUnity-ResourcesSteeringWheel을 마우스로 끌어다가 KnobImageSource Image에 놓습니다.

그러면 위 그림처럼 됩니다.^^

이제 다시 Canvas 밑에 만들어 둔, DialSliderDial Slider 속성의 knob 항목을 클릭해서 나타난 창에서 Knob을 선택해 줍니다. 이제 여기까지만 작업한 후에 중간 점검을 해 볼까요???

이제는 아두이노와 연결을 해야죠^^ Empty Create를 한 다음 ARDUnity로 이름을 잡고, Ardunity AppComm Serial을 추가합니다. 이 내용은 이 전 글을에서 다루었으니 이제는 살짝 가볍게 지나가도록 하죠^^

그리고, ARDUnity 하위에 Servo를 만들어서 Generic Servo를 Add Component합니다.

그리고, DialSlider를 선택한 후, ARDunity의 DialSliderReacotor를 선택합니다.

그러면 ARDUnity의 Wire Editor에 저 블럭 4개가 이미 생성되어 있을 겁니다.

위 그림처럼 연결해 주면 됩니다.^^ 아 서보 모터의 연결 핀 : Pin 2로 해주구요^^

이제 ARDUnity를 선택하고, Export Sketch를 해서 아두이노 소스코드를 생성합니다.

아두이노와 서보모터는 위 그림처럼 연결합니다.^^

생성된 아두이노 코드를 아두이노 보드에 업로드해주면 됩니다.^^

이제 보드와 모터를 연결한 그림이구요~~~

헨들의 움직임에 따라 서보모터를 구동하는 그림입니다.^^

반응형