본문 바로가기
대외 활동/유니티 스터디

[ardunity]_기본 사용법 (ardunity 설치하기, 기본 셋팅)

by ballbig 2021. 8. 31.
728x90

 

ardunity_asset_기본 사용법

Ardunity Asset 다운

아두니티(ardunity)는 아두이노(Arduino)와 유니티(Unity)의 합성어로, 유니티에서 아두이노를 쉽게 사용할 수 있도록 만든 unity asset이다.

unity_asset_store에서 다운 받을 수 있으며,

  • 교육용 무료버전 (ARDUnity Basic)
  • 연구 및 프로젝트 수행 용 유료버전 (ARDUnity Deluxe) 

2가지가 있는데, 두 버전의 차이점은 다음과 같다.

비교 항목 Basic Deluxe
가격 무료 $50
Wire Editor O O
PlayMaker 지원 O O
모든 시리즈 Arduino 보드 지원 (호환 보드 포함) O O
시리얼 통신 (Windows/Mac) O O
Digital I/O 제어 (Digital Input/Output) O O
PWM 제어 (Analog Output) O O
ADC 입력 처리 (Analog Input) O O
서보 모터 (PWM 제어 방식) O O
음계 제어 (Buzzer) O O
DC 모터 제어 X O
블루투스 통신 (Classic) X O
블루투스 4.0 통신 (HM-10 지원) X O
TCP/IP 통신 (WiFi) X O
스마트 폰 기능 사용 X O
AHRS(자세 인식) 센서 지원 X O
기타 여러가지 아두이노 호환 제품 X O

 

ardunity asset 다운 사이트

https://assetstore.unity.com/publishers/23554?price=0-4000&q=ardunity&orderBy=4 

 

Dungeon Mason - Asset Store

Enjoy! PBR and HP version will be updated soon!

assetstore.unity.com

 

 

 

 

Ardunity import

앞서 설명한 ardunity asset을 유니티에서 임포트(Import)하면 다음과 같이 상단 메뉴에 ARDUnity 관련 메뉴가 나타난다. 

각 메뉴의 기능은 다음과 같다.

  • Wire Editor: 아두니티 전용 편집기
  • Add Utility: 유용한 기능들
  • PlayMaker Add-on: PlayMaker 사용자를 위한 Add-on
  • View User Guide: 사용자 설명서 보기
  • Online Document: 온라인 문서 사이트 가기
  • About ARDUnity: 버전 정보 확인

 

또한, Project View에 import해준 ARDUnity asset폴더가 생성된 것을 확인할 수 있는데, 해당 폴더에는 다음과 같은 것들이 담겨 있다.

 

  • Arduino: 아두이노 라이브러리 (.ino)
  • Examples: 아두니티 예제
  • Plugins: 멀티 플랫폼 빌드를 위한 플러그인
  • Resource: 예제에 사용된 리소스
  • Scripts: 아두니티 C# 소스

 

 

 

**ardunity import시 발생하는 문제 해결
project Settings

ardunity를 사용하기 위해선 다음과 같은 setting이 필요하다.

  1. 에디터 상단 메뉴 선택 (Edit->Project Settings->Player)
  2. Inspector View에서 'Others Settings' 탭을 찾는다.
  3. 'Optimization/API Compatibility Level' 항목을 찾는다.
  4. '.Net 2.0 Subset'을 '.Net 2.0'으로 바꾼다.

 

ardunity 사용가능한 unity version

위와 같이 settings값을 바꾸는 이유는, 아두이노 보드에는  USB2Serial 컨버터가 내장되어있어 USB로 연결되었다 하더라도 OS상에서는 시리얼 포트로 잡히게 되기 때문이다.

(Windows에서는 시리얼 포트 이름을 COM1, COM2... 방식으로 매기며, Linux나 Mac의 경우는 dev/tty 혹은 dev/usbserial 등으로 매긴다.)

 

따라서 유니티와 아두이노 보드가 통신하기 위해서는 가장 기본적인 방식인 USB2Serial을 사용해야 하고, 이것은 유니티가 채용한 Mono(.Net)의 Serial Port Class를 통해 접근할 수 있다.

 .Net Subset은 핵심 기능으로만 구성되어 있기에, Serial Port가 빠져있다. 따라서 ardunity와 같이 Serial Port를 사용하는 C# 코드가 있는 경우 위와 같은 셋팅이 필요하다.

 

하지만, 최신 버전의 유니티가 설치되어 있는 경우, projectsettings에서 .Net 2.0을 찾을 수 없는 경우가 있다.

ardunity는 출시된 지 꽤 시간이 지났기 때문에 최신버전의 유니티에선 사용할 수 없다.

따라서 해당 문제를 해결하기 위해선 2017~2018버전의 unity를 설치해주면 된다.

 

(*이때, projectsettings -> player -> configuration도 .NET 3.5로 수정해 주어야 한다.)

 

(아두니티는 시리얼 통신 뿐 아니라 Bluetooth나 WiFi같은 통신 방식도 지원하는데, 이는 유료버전인 deluxe버전에서만 가능하다.ㅜㅜ)

 

 

시리얼 통신을 위한 기본 셋팅
Ardunity App 추가하기

앞서 말했듯, ardunity basic버전에선 오직 시리얼 통신으로 arduino와 unity가 서로 정보를 주고 받을 수 있다.

이를 위해선 unity 상에서 다음과 같은 셋팅이 필요하다.

  1. Empty GameObject를 하나 만든 후 이름을 Ardunity라 변경한다.
  2. Ardunity GameObject를 선택한 후, Wire Editor에서 메뉴를 띄워 ARDUINO/Add ArdunityApp을 선택한다.

(3. 그러면 Ardunity GameObject에 ArdunityApp이란, 컴포넌트가 추가된 것을 확인할 수 있으며 Wire Editor상에도 ArdunityApp Block이 나타나게 된다.)

 

여기서, ArdunityApp은 연결할 아두이노 보드를 의미하며, ardunity를 사용하기 위해 Scene에 반드시 1개 이상 있어야 한다.

(아두이노 보드 당 1개의 ArdunityApp이 필요한데 만약, 여러 개의 아두이노 보드를 연결하려 하면 보드 개수만큼 ArdunityApp을 Scene에 추가해주면 된다.)

 

 

Ardunity Serial통신 추가하기

다음으로 할 일은 아두이노 보드와 통신할 CommSocket을 추가하는 것이다.

아두니티가 지원하는 통신 방식은 다음과 같다.

  • USB2Serial: CommSerial (Windows/OSX)
  • Bluetooth: CommBluetooth (Android) <Deluxe 버전만 가능>
  • BLE: CommBLE (OSX/Android/iOS) <Ardunity Brain 보드만 가능>
  • TCP/IP: CommWiFi (Windows/OSX/Android/iOS) <Deluxe 버전만 가능>

가장 기본적인 연결은 USB 케이블을 통한 USB2Serial 통신이기에 다음과 CommSerial 추가하면 된다.

 

 

  1. Ardunity Wire Editor창에서 unity -> Add CommSocket -> CommSerial을 선택하여 CommSerial를 활성화 한다.
  2. ArdunityApp과 CommSerial을 서로 연결해준다. 

(ArdunityApp 붉은색으로 표시된 CommSocket 클릭한 드래그하여 CommSerial CommSocket 드롭하면 서로 연결된다.)

 

 

이렇게 되면 Arduino와 Unity사이 정보를 주고 받기 위한 통신 셋팅은 모두 완료 된 것이다!

이렇게 셋팅을 해주면, 아두이노에 연결한 센서에서 읽어온 값을 unity에서 불러올 수 있으며 (Input)

반대로 unity에서 아두이노에 값을 보내 특정 동작을 수행하도록 조작할 수 있다. (Digital)

이와 관련된 설명은 다음 포스팅에서 이어서 해보겠당 ^0^

 

+ 관련 사이트

다음의 사이트들에서 ardunity 사용법과 관련 예제들을 찾아 볼 수 있다.

ardunity 공식 블로그 (기본 사용법, 기본 예제 등)

http://ardunityproject.blogspot.com/

 

ARDUnity Project

아두이노(Arduino)와 유니티(Unity)의 융합에 대한 블로그입니다.

ardunityproject.blogspot.com

 

ardunity 공식 사이트 (ardunity 소개, 대표 예제)

https://sites.google.com/site/ardunitydoc/home?authuser=0 

 

Ardunity Documents

What is ARDUnity Asset? ARDUnity is an asset that can make Unity App to interact with ARDUINO. ARDUnity is a compound word of "ARDUINO + Unity".

sites.google.com

 

 

+ 공대생's 일기 (내 블로그..ㅎㅎ)