Wi-Servo: 웹 브라우저로 와이파이 서보 모터 제어하기
부품 및 소모품
| 부품 | 수량 |
| Arduino UNO | 1 |
| Espressif ESP8266 ESP-01 모듈 | 1 |
| 아두이노 프로토 실드 | 1 |
| SG90 마이크로 서보 모터 | 2 |
| 점퍼 와이어 (범용) | 1세트 |
| 10kΩ 저항 3개 | 3 |
앱 및 온라인 서비스
프로젝트 개요
일반 웹 브라우저(파이어폭스 등)로 와이파이 네트워크상의 서보 모터를 원격 제어하는 프로젝트입니다. 장난감, 로봇, 드론, 카메라 팬/틸트 등 다양한 용도로 응용 가능합니다.
서보 모터는 아두이노 우노에 연결되고, ESP-8266 모듈로 와이파이 네트워크에 접속합니다. 제어 인터페이스는 HTML과 jQuery로 구현했습니다. Miguel의 튜토리얼(ESP8266으로 웹페이지에서 LED 제어)에서 영감을 얻었습니다.
이 기술은 제 다른 프로젝트 "Robô da Alegria(기쁨 로봇)"에도 사용되었습니다.
1단계: 전자 회로
필요한 부품: 아두이노 우노, ESP8266, 프로토실드(또는 브레드보드), 10kΩ 저항 3개, 점퍼 와이어, SG90 서보 모터 2개, 컴퓨터(코드 컴파일/업로드용). 회로는 USB 포트(컴퓨터 또는 휴대폰 충전기)로 전원 공급되며, 외부 DC 전원이나 배터리를 아두이노 전원 잭에 연결해도 됩니다.
2단계: 조립
회로도에 따라 모든 부품을 연결합니다. ESP-8266과 서보 모터 연결용 점퍼 와이어가 필요합니다. 프로토실드, 브레드보드, 또는 직접 설계한 아두이노 실드 중 편한 방식 사용. USB 케이블을 아두이노에 연결 후 다음 단계로.
3단계: 아두이노 코드
최신 Arduino IDE 설치 필요. 서보 제어용 Servo.h 라이브러리 사용. 코드 업로드 시 와이파이 모듈과 USB 포트 충돌 방지를 위해 SoftwareSerial 라이브러리 사용. ESP8266 보드레이트를 코드에 맞게 설정하세요.
서보 모터가 0° 또는 180° 근처에서 지터(떨림)나 소음이 발생할 수 있어, 아두이노 코드와 웹 인터페이스 양쪽에서 각도를 10°~170°로 제한했습니다.
중요: Servo.h와 SoftwareSerial.h가 같은 타이머를 사용해, 아두이노가 ESP-8266과 통신할 때 서보 지터가 발생할 수 있습니다. 이를 방지하기 위해 각 명령 후 서보를 detach()합니다. 또는 모듈을 하드웨어 시리얼 핀(0, 1번)에 연결하고 업로드 전 모듈을 분리하는 방법도 있습니다.
코드 파일(wi-servo.ino)을 다운로드해 Wi-Fi SSID(XXXXX)와 비밀번호(YYYYY)를 수정한 뒤 업로드합니다.
4단계: 웹 인터페이스
서보 모터 제어용 HTML 인터페이스입니다. 예제는 서보 2개지만, 아두이노 우노로는 최대 4개까지 테스트되었습니다. IP 주소 입력란과 각 서보용 슬라이더로 구성됩니다. Wi-servo.html과 jquery.js 파일을 같은 폴더에 저장하세요.
5단계: 사용 방법
- 아두이노 재시작 시 자동으로 와이파이 연결 시도. 시리얼 모니터로 연결 성공 여부와 할당된 IP 확인.
- 브라우저에서 HTML 파일 열기.
- ESP-8266 IP 주소 입력 후 슬라이더로 각도 조절. 마우스 버튼을 놓으면 자동으로 요청 전송 및 서보 이동.
코드
GitHub 저장소
https://github.com/ferauche/RoboAlegria
회로도
