desktop robots/04 robot programming

외부 인터페이스 함수와 SG90 서보 (2) Dobot Magician 외부 인터페이스 프로그래밍

NDo 2026. 8. 23. 15:51

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

 

반응형