산업 IoT & 스마트 팩토리 디지털트윈/IoT 시스템 아키텍처

[디지털트윈 x IoT x Unity x Arduino] 2편. Unity와 Arduino 연동

프로잉2 2025. 4. 30. 18:42
728x90

✅ 개요

Unity와 Arduino를 시리얼 통신(Serial)을 통해 연동하여 로봇 팔을 실시간으로 제어하는 방법을 다룹니다.
디지털 트윈 관점에서 Unity는 가상 공간의 인터페이스를 제공하고, Arduino는 실제 하드웨어의 동작을 제어합니다.

🧩 사용 구성요소

구성 설명
Arduino UNO/Nano 로봇 팔의 서보모터 제어
로봇 팔(Servo Motor 1~6축) 그립, 관절, 어깨, 회전축 등 포함
Unity (C#) 사용자 조작 UI, 가상 조종
시리얼 통신 (USB) COM 포트 기반 데이터 송수신
PC ↔ Arduino 연결 USB 케이블로 통신

🧠 이론: 시리얼 통신 기반 로봇 제어 원리

  • Serial.write() / Serial.read() 사용
  • Unity → Arduino : 제어 명령 전송 ("M1:90,M2:45" 등)
  • Arduino → Unity : 센서 피드백 또는 상태 전송 가능

예: "M1" = Motor1에 90도 회전 명령

🌀 PWM (Pulse Width Modulation)이란?

**PWM(Pulse Width Modulation)**은 전압의 평균값을 조절하는 방식으로, 디지털 신호로 아날로그 제어 효과를 구현할 수 있습니다. 서보모터 제어에 핵심적인 기술입니다.

  • 마이크로컨트롤러(예: Arduino)는 **HIGH(5V)와 LOW(0V)**의 펄스 신호를 빠르게 반복해서 전송
  • 이 펄스의 **폭(Width)**을 조절해 모터의 각도를 제어함

📐 서보모터와 PWM의 관계

서보모터는 일반적으로 **50Hz 주기(20ms)**를 기준으로 신호를 받고,
펄스의 폭(High 상태의 시간)을 통해 **회전 각도(0~180도)**를 결정합니다.

펄스 폭 서보모터 각도
1ms 0도
1.5ms 90도 (중립)
2ms 180도

https://www.youtube.com/shorts/nPPi-kBciaQ

🔍 디지털 트윈 적용 포인트

항목 설명
실시간 제어 Unity에서 UI 슬라이더로 모터 각도 조절
가상-현실 동기화 가상 로봇과 실제 로봇이 동일하게 움직임
유지보수 실제 하드웨어 문제를 Unity로 시뮬레이션
728x90