산업 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