산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

WiDC: Wi-Fi FPV 로봇 – 실시간 영상 원격 제어

부품 및 소모품

부품수량
Arduino UNO1
Espressif ESP8266 ESP-011
Arduino Proto Shield1
DC 기어 모터 (바퀴 포함)2
H-브리지 모터 드라이버1

앱 및 온라인 서비스

프로젝트 개요

이 튜토리얼은 Wi-Fi 네트워크를 통해 원격 제어되는 2륜 FPV(First Person View) 로봇을 제작하는 방법을 안내합니다. 아두이노 우노와 ESP8266 모듈을 사용하여 웹 브라우저 기반 인터페이스로 로봇을 제어하며, 안드로이드 스마트폰으로 실시간 영상과 오디오를 스트리밍합니다.

기존 이전 튜토리얼을 개선하여 더 빠른 로봇을 제작하며, 3D 프린터나 레이저 커터 없이 일반 공구만으로 저비용 아크릴 프레임을 제작하는 방법도 다룹니다.

참고: 이 프로젝트는 Joy Robot 프로젝트에서 파생되었으며, 컴포넌트 선택은 접근성과 단순성을 고려했습니다. NodeMCU나 라즈베리 파이 등으로 최적화 가능합니다.

1단계: 필요한 도구

기계 구조 제작, 로봇 조립, 전자 부품 연결에 사용됩니다. 기성 키트를 구매하면 일부 도구는 불필요합니다.

2단계: 기계 구조 및 재료

기계 재료:

3단계: 전자 부품

모든 부품은 온라인에서 쉽게 구할 수 있습니다. 컴포넌트 선택은 다른 프로젝트에서 파생되었으며, 다른 마이크로컨트롤러로 최적화 가능합니다.

4단계: 구조 설계

Fusion 360으로 3D 모델링하여 메인 부품(아두이노, 기어 모터, H-브리지, 파워뱅크, 스마트폰 거치대)의 배치를 결정했습니다. GrabCAD 라이브러리에서 3D 모델을 다운로드해 활용했습니다.

전자 부품을 평면에 배치해 풋프린트를 정하고, 모터와 바퀴 위치를 정해 안정적인 구조를 설계했습니다. 메인 구조는 베이스 플레이트, 사이드 플레이트 2개, 브라켓으로 연결된 3판 구조입니다.

WiDC: Wi-Fi FPV 로봇 – 실시간 영상 원격 제어

도면 파일: base.pdf, base.svg

5단계: 구조 제작 및 조립

  1. 아크릴 베이스 재단: 2D 도면 치수대로 아크릴 시트를 자릅니다. 레이저 커터가 없으면 일반 도구로 가능합니다. 도면을 접착지에 출력해 아크릴에 붙이고, 커터 칼과 자로 선을 그어 절단합니다. 사포로 모서리를 다듬습니다.
  2. 구멍 뚫기: 도면 표시 위치에 드릴 머신으로 구멍을 뚫습니다. 아크릴은 드릴이 잘 들어가며, 드릴이 없으면 커터 칼로 수작업 가능합니다.
  3. 부품 장착: 3D 도면과 영상 참고해 나사와 너트로 부품을 고정합니다. M3는 브라켓과 DC 모터, M2는 전자 부품, 5/32"는 전륜과 스마트폰 클립에 사용합니다.
WiDC: Wi-Fi FPV 로봇 – 실시간 영상 원격 제어

6단계: 전자 회로 조립

아두이노 우노가 메인 컨트롤러이며, ESP8266과 시리얼 통신으로 Wi-Fi를 담당합니다. H-브리지로 2개의 DC 모터를 양방향 제어합니다. 파워뱅크를 아두이노 USB 포트에 연결해 전원 공급합니다(편리한 충전, 안전한 5V).

회로도(wiDC_Esquem_C3_A1tico.pdf, wiDC.fzz, wiDC_bb.pdf)대로 점퍼 와이어로 연결합니다. ESP-01은 브레드보드 비호환이므로 점퍼 와이어로만 연결하고 구조물에 고정하지 않습니다.

WiDC: Wi-Fi FPV 로봇 – 실시간 영상 원격 제어

7단계: 아두이노 코드

최신 Arduino IDE 설치 후 라이브러리 없이 SoftwareSerial만으로 ESP8266과 통신합니다. ESP8266 보드레이트를 코드에 맞게 설정하세요(기본 115200bps → 9600bps로 변경 권장).

WiDC.ino 다운로드 후 XXXXX를 공유기 SSID, YYYYY를 비밀번호로 변경하고 업로드하세요.

코드 핵심 설명

// 소프트웨어 시리얼: 핀 3(RX), 2(TX)
SoftwareSerial esp8266(3, 2);

void setup() {
  // 모터 핀 설정
  pinMode(5, OUTPUT); pinMode(6, OUTPUT);
  pinMode(9, OUTPUT); pinMode(10, OUTPUT);
  // 시리얼 시작
  Serial.begin(9600); esp8266.begin(9600);
  // ESP8266 초기화 및 Wi-Fi 연결
  sendData("AT+RST\r\n", 2000, DEBUG);
  sendData("AT+CWMODE=1\r\n", 1000, DEBUG);
  sendData("AT+CWJAP=\"XXXXX\",\"YYYYY\"\r\n", 2000, DEBUG);
  delay(5000);
  sendData("AT+CIFSR\r\n", 1000, DEBUG); // IP 확인
  sendData("AT+CIPMUX=1\r\n", 1000, DEBUG);
  sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG); // 포트 80 웹서버
}

void loop() {
  if (esp8266.available()) {
    if (esp8266.find("+IPD,")) {
      esp8266.find("?");
      String msg = esp8266.readStringUntil(' ');
      String cmd = msg.substring(0, 3); // cm1~cm5
      // 상태 변경: 1=전진, 2=후진, 3=우회전, 4=좌회전, 5=정지
    }
  }
  // 상태에 따른 모터 PWM 제어
}

AT 명령어로 ESP8266을 설정하고, 웹서버를 띄워 HTTP GET 요청으로 제어 명령(cm1~cm5)을 수신합니다. 모터 속도는 PWM(motorSpeed 기본 150)으로 조절합니다.

8단계: 웹 기반 제어 인터페이스

interface.rar 압축 해제 후 index.html을 파이어폭스에서 엽니다. 두 영역으로 구성됩니다:

  • 영상/오디오: 안드로이드 IP Webcam 앱의 IP/포트(기본 192.168.0.5:8080) 입력 후 로드
  • 제어: 아두이노(ESP8266) IP 입력, 키보드 방향키로 로봇 제어(누르면 전송, 떼면 정지)

자바스크립트(myscript.js)로 키 이벤트 감지 후 $.get()으로 아두이노에 명령 전송. 래치 변수로 중복 전송 방지.

9단계: 사용 방법

  1. 아두이노 재시작 → 시리얼 모니터로 Wi-Fi 연결 확인 및 ESP8266 할당 IP 확인
  2. HTML 파일을 브라우저에서 열고 아두이노 IP 입력
  3. 아두이노를 컴퓨터에서 분리해 파워뱅크 연결 → 재연결 대기
  4. 로봇의 스마트폰에서 IP Webcam 앱 실행 → 제어 인터페이스에 영상 IP 입력 후 연결
  5. 영상 해상도를 낮춰 지연 최소화
  6. 키보드 방향키 누르고 있어 로봇 제어

주의: 오픈루프 제어라 미세한 모터 차이로 직진 유지가 어렵습니다. 명령 손실 시 로봇이 계속 움직일 수 있으니 명령 처리 로직 개선 권장.

코드 및 자료

  • 아두이노 코드: WiDC.ino (위 전문 참조)
  • 웹 인터페이스: interface.rar (다운로드 필요)
  • 3D 도면: base_7JLgOpcox6.svg
  • 회로도: wiDC_Esquem_C3_A1tico.pdf, wiDC.fzz, wiDC_bb.pdf

제조공정

  1. 블루투스 제어 라즈베리 파이 로봇 만들기 - 오디오 피드백 포함
  2. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  3. DIY 아두이노 USB 게임 컨트롤러 - 나만의 고성능 게임패드 만들기
  4. 아두이노 우노로 자율 주행 라인 트레이서 로봇 만들기
  5. 아두이노 나노로 만드는 음성 제어 로봇 - 블루투스와 안드로이드 앱 활용
  6. MobBob: 아두이노 로봇 직접 만들기, 안드로이드 스마트폰으로 매끄럽게 제어
  7. 픽셀 체이서: 아두이노 나노로 만든 인터랙티브 원탭 LED 게임
  8. 아두이노 기반 척력 자기 부상: 간단 회로 & DIY 가이드
  9. 피봇(PiBot): 아두이노 기반 88건반 피아노 연주 로봇
  10. 자율 홈 어시스턴트 로봇 'O'nine' 제작 – ROS, Alexa, MoveIt, 내비게이션 완전 가이드