🧪 새 튜토리얼이 계속 업데이트 중 — 로봇 팔부터 센서까지
본문으로 건너뛰기

PWM 웹 제어 ​

이 페이지는 웹 제어의 PWM(ESP32-S3) 버전 전용 설명입니다. 공통 UI, 시작 방법, 프리셋 포즈, 카메라 텔레오퍼레이션은 웹 제어 개요를 참고하세요.

하드웨어와 플래싱 ​

  • 배선, GPIO, 전원 공급과 서보 모델은 PWM 배선, GPIO와 전원 공급을 참고하세요.
  • 펌웨어 플래싱(ESP-IDF 또는 사전 빌드된 bin)은 PWM 빠른 시작을 참고하세요.
  • 호스트 PC↔ESP32는 115200 8N1로 고정되며, 서보 자체에는 보드레이트가 없습니다.

웹 연결 ​

  1. 상단 "드라이버" 드롭다운에서 PWM(ESP32-S3) 선택
  2. **시리얼 포트 추가…**를 눌러 ESP32-S3의 USB 시리얼 포트 선택
  3. 연결을 누르면 페이지가 자동으로 핸드셰이크(NOP)하고 왼손/오른손 선택을 보낸 뒤 중간 위치로 복귀합니다
  4. 이후 슬라이더, 프리셋 포즈, 카메라 텔레오퍼레이션으로 제어합니다; 손가락 제목에 CH 1/2 …(PWM 채널 번호)가 표시됩니다

PWM 모드: 상단 드라이버 선택과 CH 채널 표시

PWM 모드의 수동 제어 패널: 손가락 제목에 CH 채널이 표시되고 토크 버튼은 숨겨짐

SCS0009 버전과의 차이 ​

항목SCS0009 버스 버전PWM 버전
시리얼 보드레이트1,000,000115,200
드라이버 보드USB 버스 드라이버 보드ESP32-S3 + PWM 어댑터 보드
토크켜기/해제 가능없음(펌웨어에 토크 명령이 없어 버튼이 숨겨짐)
E-stop모든 토크 해제0xFF를 보내 제스처 중단, 서보는 전원이 들어온 채 위치 유지
속도속도 파라미터 지원직접 구동 프레임에는 속도 파라미터 없음
피드백위치/온도/전압/속도 읽기읽기 없음, 걸림이나 탈조 감지 불가
왼손/오른손서보 ID가 다름동일한 채널 그룹, 0xF1을 보내 전환(주로 펌웨어 제스처에 영향; 웹 포즈는 각 손의 매핑 사용)

각도 캘리브레이션 ​

웹 페이지는 포즈 값을 8채널 0–180° 각도로 변환하며, 기본 공식은 다음과 같습니다:

angle = 90 + dir × scale × 포즈 값 + offset
  • 손가락마다 첫 번째 채널은 dir = -1, 두 번째 채널은 dir = +1
  • 기본값은 scale = 1, offset = 0이며, 서보 축 각도를 그대로 미러링합니다
  • mirror_pose가 참이면 먼저 손가락마다 두 포즈 값을 교환합니다(이 저장소는 왼손/오른손 모두 활성화)

실제 방향이 반대이거나 중간 위치가 어긋나면 config.json의 pwm.calibration을 편집하세요:

jsonc
"pwm": {
  "calibration": {
    "right": {
      "pointer": { "scale": 1.0, "offset_deg": [0, 0] }
    }
  }
}
  • 방향이 반대: 해당 손가락의 scale을 -1로
  • 중간 위치 오프셋: offset_deg 조정(두 채널을 각각 조정)
  • 손가락별 절차: 중간 위치 복귀 → 손가락 하나만 따로 드래그 → 방향/중간 위치 확인 → scale/offset_deg 수정 → 페이지 새로 고침 후 재시도

자주 묻는 질문 ​

  • 연결 실패 / ESP32 무응답: 보드레이트가 115200인지, ESP32의 COM 포트를 선택했는지, 5 V/3 A 전원과 공통 접지가 맞는지 확인하세요; 시리얼 포트를 열면 ESP32가 리셋될 수 있으며 페이지가 자동으로 NOP를 재시도합니다
  • 서보가 움직이지 않거나 떨림: 서보가 333 Hz 디지털 서보(PTK 7452 MG-D 또는 동급)인지, 전원이 충분한지 먼저 확인하세요; SG90은 펌웨어 수정이 필요합니다
  • 방향이 반대: 해당 손가락의 scale을 -1로
  • 중간 위치가 어긋남: 해당 채널의 offset_deg를 조정
  • "사용 중(제스처 실행 중)" 표시: 펌웨어가 내장 제스처를 실행 중입니다. 완료될 때까지 기다리거나 E-stop을 누르세요(0xFF)
  • 서보 스캔: tools/scan_servos.py는 SCS0009에만 적용됩니다; PWM은 AmazingHand-PWM/tools/serial_test.py 또는 웹 페이지를 사용하세요

관련 페이지 ​