본문 바로가기

Robot/Robot Program - ROS

ARDUnity를 이용하여 유니티(Unity)에서 기초 UI Button으로 아두이노 LED 제어하기

생각보다 유니티의 asset인 ARDUnity 유저분들이 많으셨던 것 같습니다. 지난번 ARDUnity를 처음 소개할 겸 살짝 기초 따라하기를 해 보았을 뿐인 첫 소개글[바로가기]이 아주 호응이 높아서 깜짝 놀랬거든요^^. - 뭐 그렇다고 하더라도 공학도의 블로그이기 때문에 뭐 파격적으로 많다 뭐 그런 이야기는 아닙니다.^^. 아무튼 그래서 지난 시간에는 ARDUnity를 불러와서 한 번 구동해 보는 것을 해보았는데요. 이제 조금씩 유니티스럽게 진행을 해보도록 하죠. 그런데 아무래도 유니티의 Asset이기 때문에 결국 기초스러운 유니티 이야기와도 비슷하게 흘러가야 할 듯 합니다. 이제 지난번 글[바로가기]에서 했던 것 중에서

저 상태에서 시작해 보도록 하겠습니다. 여전히 Arduino Uno 보드의 13번핀에 연결된 기본 LED를 사용할 거구요.

일단 Hierarchy의 Create를 눌러도 되고 그냥 빈 공간에서 마우스 오른쪽 버튼으로 UI -> Button을 클릭합니다.

그러면 Canvas 밑에 Button이 생성되는데요. 그 Button이라는 항목이 생긴걸 알 수 있습니다.

이제... Button을 누르고 그 상태에서 InspectorButton탭에서 Add Component를 눌러줍니다.

그러면 ARDunity를 선택할 수 있게 되고....

그 안에서 Reactor를 선택합니다.

그리고, UI항목 안에서

ButtonReactor를 선택합니다.^^

그러면 이렇게 블럭이 Ardunity Wire Editor에 추가된 것을 알 수 있습니다. 여기서

Get Pressed의 왼편에서 마우스를 클릭한 상태로 끌면 선이 나타납니다. 그걸 DigitalOutput 블럭의 Value(digital)항목에 가져다 놓으면 선이 연결됩니다.

이렇게 말이죠~~^^

이 간단한 동작이 ARDUnity를 사용하는 방법의 핵심 중 기초부분입니다. 방금 처럼 필요한 블럭을 가져다 놓고 상황에 맞는 연결선을 그리는 것. 그리고 살짝 설정이라는 양념을 뿌려주는 거죠^^. 방금한 ButtonReactor를 연결한 과정을 말로 풀면, 버튼이 눌러지면(Get Pressed) 13번 Pin에 연결된 LED를 가동하기 위해 값을 인가(Value-Digital)하라..는 뜻입니다.

이제 지난번 글에서 이야기했듯이 아두이노를 연동하기 위해

Hierarchy에서 Ardunity를 선택해서 Export Sketch를 눌러 줍니다.

뭐 첫 글에서도 이야기했지만 아두이노를 실행해서 Export된 스케치를 읽어서 보드에 업로드를 하면 됩니다^^

그리고 유니티를 플레이를 시키면 Game화면에 저렇게 좀 생뚱맞긴 하지만 버튼이 하나 있습니다.^^.

그리고... 위에 체크되었듯이 Connect를 눌러서 보드와 연결합니다.

이제 뭐 버튼을 클릭해보면 LED가 켜지는 것을 알 수 있답니다. 지난번에도 보여드렸기도 하지만 단순히 LED가 깜빡 거리는 건 이제 증거 화면으로는 생략하도록 하죠^^. 여하튼 이 번 글에서는 비록 단순한 과정이긴 하지만 Ardunity의 Wire Editor의 개념을 이해하는데 도움이 되기를 바라며 끄적거려 보았습니다.^^

반응형