Dobot은 몸체와 팔에 여러 개의 외부 입출력 인터페이스를 제공한다. 팔뚝에 위치한 GP3 출력 포트를 사용한다는 가정하에 Dobot Magician에서 제공하는 프로그램 함수(API)를 알아본다.
■ Dobot Magician 범용 인터페이스 포트 GP3-GP5 정리 읽어보기 >
■ Dobot Magician 외부 인터페이스 읽어보기 >
Dobot Magician의 IO 인터페이스에 대한 함수는 'Dobot Magician API Description' 18. EIO 부분에 설명되어 있다.
SetIOMultiplexing( )
Dobot Magician의 컨트롤러에서 IO 인터페이스의 주소는 정해져 있지 않아 우선 포트의 주소를 용도에 맞게 설정하는 SetIOMultiplexing( )이 필요하다.
dType.SetIOMultiplexing(api, addr, multiplex, isQueued=1)
1) addr
addr - IO 포트의 주소를 뜻한다. 예로 GP3의 PWM은 EIO8, GP4의 PW은 EIO6로 주소가 지정되어 있다.


그러므로 GP4의 PWM을 사용할 계획이면 addr = 6을 지정해야 한다.
2) multiplex
multiplex는 해당 포트의 기능을 정의한다. Dobot Magician의 EIO는 총 7개의 기능을 제공한다.
Dummy = 0 // Invalid, DO =1 // IO output, PWM = 2 // PWM output ...
GP4에 PWM 출력을 사용할 계획이면 multiplex =2로 지정한다.
addr = 4 # port # of GP4 at Dobot Magician's Upper Arm
multiplex = 2 # for PWM output
dType.SetIOMultiplexing(api, addr, multiplex, isQueued=1)
다음으로 정의된 포트를 사용하도록 GetIOMultiplexing( )를 실행한다.
dType.GetIOMultiplexing(api, addr)
SetIOPWM( )
SetIOPWM( ) 함수를 이용하여 정의된 포트에 PWM 출력을 정의한다.
PWM 출력에는 frequency와 dutyCycle을 정의할 수 있다.
dutyCycle,dType.SetIOPWM(api, addr, frequency, dutyCycle, isQueued=1)
1) frequency
PWM frequency를 뜻하며 10Hz - 1MHz 사이 값을 가진다.
2) dutyCycle
PWM duty cycle을 뜻하며 1-100까지 값을 가진다(단위 %).
서보 모터 동작 프로그램
1) 서보 모터를 GP4의 GND, 5V, PWM에 연결한다.
2) Open하는 방향의 dutyCycle 값과 Close하는 방향의 dutyCycle 값을 결정한다.
3) setIOPWM( ) 함수를 이용하여 PWM 신호 전달, 기계적 동작을 위해 약간의 delay를 준다.

Dobot Magician gripper IO interface test 20240725 ed by NDoStudio
SG90 모양
- 치수 등은 아래 Datasheet 참조.

SG90 배선
- 오렌지 색 배선에 PWM 신호 보냄

SG90 PWM 제어 관련
Position "0" (1.5 ms pulse) is middle,
"90" (~2ms pulse) is middle, is all the way to the right,
"-90" (~1ms pulse) is all the way to the left.
Datasheet에 위와 같이 적혀있으나, 중간에 오타가 있는것 같음. 교정하면 아래와 같음
Position "0" (1.5 ms pulse) is middle,
"90" (~2ms pulse) is all the way to the right,
"-90" (~1ms pulse) is all the way to the left.
SG90 PWM 관련 주의 사항
- 주파수는 50 Hz로 고정 단위 Pulse 길이 20 ms
- 신호 유지 시간으로 회전 각도 결정(아래 표 참조)
- 신호를 계속 주어야 각도 유지
|
duty
|
5%
|
7.5%
|
10%
|
|
high pulse시간
|
0-1 ms
|
1.5 ms
|
2 ms
|
|
모터회전
|
-90도
|
0도
|
90도
|
2024 NDoStudio
2024/7/25 처음 2024/7/25
systems/trip/vision/gtrip/gtrip01.py

'desktop robots > 04 robot programming' 카테고리의 다른 글
| Pick & Place 프로그램 (3) Dobot Magician 외부 인터페이스 프로그래밍 (0) | 2026.08.23 |
|---|---|
| 범용 인터페이스 포트 GP3-GP5 정리 (1) Dobot Magician 외부 인터페이스 프로그래밍 (0) | 2026.08.23 |
| 상호작용 구현 (8) Dobot Magician 로봇 프로그래밍 (0) | 2026.08.23 |
| 레일 프로그래밍 (7) Dobot Magician 로봇 프로그래밍 (0) | 2026.08.23 |
| Dobot Studio Script를 이용한 Dobot Magician 프로그래밍 (0) | 2026.08.23 |
