Professional Documents
Culture Documents
mightyZAP 아두이노 API 매뉴얼 - 한글 - 18E20 - V1.1
mightyZAP 아두이노 API 매뉴얼 - 한글 - 18E20 - V1.1
목 차
01 아두이노 라이브러리 활용 3
1.1. 라이브러리 추가 3
1.2. 예제 불러오기 4
1.3. 프로그램 업로드 하기 4
2
마이티잽 아두이노 API 매뉴얼 V.1.1
1 아두이노 라이브러리 활용
아두이노 API는 당사 웹사이트(http://www.irrobot.com/) 자료실에서 다운로드가 가능합니다.MightyZap아두이노 API를
다운로드하여아두이노 IDE에서 서보모터 제어가 가능합니다.
당사에서 제공한 아두이노 API는 아두이노 레오나르도 기준입니다. 기타 다른 아두이노 사용자분들께서는 이를 감안하여 적
절히 API를 수정하여 사용하여 주십시오.
2. MightyZap관련 예제 불러오기
3. 프로그램 업로드 하기
1.1 라이브러리 추가
1. MightyZap.Zip와IRROBOT_ServoTesterShield.Zip를 내려 받습니다.
2. [스케치] – [라이브러리 포함하기] – [.ZIP 라이브러리 추가…] 선택
3. MightyZap.Zip를 선택
3
마이티잽 아두이노 API 매뉴얼 V.1.1
1.2 예제 불러오기
1. 아두이노 IDE 실행
2. [파일] - [예제] - [IRROBOT_ServoTesterShield] – 사용할 예제 선택
UNO 계열 보드 일 때
[파일] - [예제] - [IRROBOT_ServoTesterShield] – [UNO]- [ServoTester_HardwareSerial]
Leonardo 계열 보드 일 때
[파일] - [예제] - [IRROBOT_ServoTesterShield] – [LEO]- [ServoTester_HardwareSerial]
4
마이티잽 아두이노 API 매뉴얼 V.1.1
1 아두이노 IDE 설치
1. https://www.arduino.cc/en/main/software 에서 Window Installer를 선택
5
마이티잽 아두이노 API 매뉴얼 V.1.1
6
마이티잽 아두이노 API 매뉴얼 V.1.1
7
마이티잽 아두이노 API 매뉴얼 V.1.1
2. 아두이노 IDE 기본 구성
아두이노 개발환경 기본 구성은 다음과 같습니다.
2. 업로드 버튼 : 컴파일과 동시에 Arduino에 업로드 합니다. (컴파일 오류 또는 Arduino와의 usb 연결 오류가 발생
하면 4번 영역에 표시)
3. 시리얼 모니터 버튼 : USB로 아두이노와 연결된 상태로 아두이노가 동작하면 아두이노에서 PC로 메시지를 보낼 수
있습니다. Serial.write() 또는 Serial.print()같은 함수를 사용하여 프로그램이 작성된 경우 시리얼 모니터를 통해 메
시지를 확인할 수 있습니다.
8
마이티잽 아두이노 API 매뉴얼 V.1.1
3. 서보 회로 연결
MightyZap Servo Motor와 통신을 하려면UART 신호를 Half Duplex type로 변환 시켜줘야 합니다.이때 변환
회로는 아래 그림과 같습니다.(당사의 MightyZap Tester Sheild는 아래의 회로를 포함하고 있으므로 추가로
구성할 필요가 없습니다. )
MightyZap(PT)을 TTL레벨로 제어 하기 위해서 제어기의 UART 신호를 Half Duplex type로 변환 시켜야
합니다.이때 변환 회로는 아래 그림과 같습니다.
74LVC2G241
위의 회로도에서 TTL Level의 Tx와 Rx는 DIRECTION_PORT의 Level에 따라 다음과 같이 Data 신호의 방향이
결정됩니다.
Tx_Lvel)을 사용해야합니다. 이때 &Serial을 아두이노의 해당 Serial, pin의 경우 Direction Port의 pin 번호를,
9
마이티잽 아두이노 API 매뉴얼 V.1.1
※전원이 별도로 외부에서 공급되는 경우에는, 485 D+, 485 D-만 연결해도 동작에 문제가 없습니다.
2.1 개요
아두이노 보드를 통해 mightyZAP 을 제어하기 위한 아두이노 예제입니다. 본 예제는 시리얼 데이터 통신(TTL 혹은 RS-
485 통신)을 통한 제어가 가능하면 PWM 통신은 지원하지 않습니다. (PWM 제어는 3 절 참조)
당사에서 제공한 아두이노 API는 아두이노 레오나르도 기준입니다. 기타 다른 아두이노 사용자분들께서는 이를 감안하여 적
절히 API를 수정하여 사용하여 주십시오.
각 파라메터 기능에 대한 구체적인 설명은 마이티잽 사용자 매뉴얼을 참고하여 주십시오.
당사의 아두이노 테스트 쉴드를 사용하면 보더 편리하고 효율적으로 아두이노 제어가 가능합니다.
10
마이티잽 아두이노 API 매뉴얼 V.1.1
.
#deifne ID_NUM / servo ID 지정
• 기능 : 제어할 서보모터의 통신 ID 지정
• 서보모터 ID
- 0 : Stand-alone ID(이하 예제는 ID를 0으로 사용합니다).
- 1 ~ 253 : 1 ~253 일 때, 미리 저장된 ID와 비교하여 선별적으로 동작함
- 254 :Broadcasting Mode로 동작하며 Feedback Packet은 동작하지 않음
m_zap.begin(int baudrate)/통신속도 설정
• 기능 : 서보모터의 통신속도 설정
11
마이티잽 아두이노 API 매뉴얼 V.1.1
• 파라미터
- baudrate : 서보모터와의 통신 속도 설정
Data 설 명
16 115200 baudrate
32 57600 baudrate
64 19200 baudrate
128 9600 baudrate
2.3. 예제 - Servo ID
MightyZap의ServoID() 명령어를 이용하여 서보모터의 ID를 설정합니
다.
[예제] - [MightyZap] - [UNO/LEO]–[MightyZap_ ServoID] 선택
12
마이티잽 아두이노 API 매뉴얼 V.1.1
- ID_SET : 서보모터의 수정 ID
2.4. 예제 - LED
m_zap.LimitTemperature() 명령어로 동작 한계 온
도를 설정할 수 있습니다.
13
마이티잽 아두이노 API 매뉴얼 V.1.1
14
마이티잽 아두이노 API 매뉴얼 V.1.1
15
마이티잽 아두이노 API 매뉴얼 V.1.1
16
마이티잽 아두이노 API 매뉴얼 V.1.1
m_zap.alarmLed()
- Error가 발생 했을 때, 해당 bit가 1로 설정되어 있으
면 LED표시를 수행합니다. (1=활성 / 0=비활성)
17
마이티잽 아두이노 API 매뉴얼 V.1.1
2.10. 예제 - AlarmShutdown
m_zap.alarmShutdown()
-Error가 발생 했을 때, 해당 bit가 1
로 설정되어 있으면 force를 off합니다. (1=활성 /
0=비활성)
18
마이티잽 아두이노 API 매뉴얼 V.1.1
1. m_zap.StrokeLimit()
- 위치 값의 최대/최소 한계 값을 설정하여 서보모터의
위치 값을 제한합니다.
- 서보모터의 최대 위치값이줄어거나, 최소 위치값이 늘
어납니다.
2. Shot Stroke(A)
Long Stroke(C)
19
마이티잽 아두이노 API 매뉴얼 V.1.1
ResolutionFactor()
- 서보모터의 위치 해상도를 변경
서보 모터의 위치 범위를 각각 512/
1024/2048/4096의 단계로 표현합니다.
ResolutionFactor()함수에 의해 위치 값의 해상도가
변하여 같은 위치 값의 명령어에 다르다 반응하는 것
을 확인할 수 있습니다.
시리얼 통신으로 서보모터의 Resolution Factor를 변
경할 수 있습니다.
ResolutionFactor(int ID_NUM,int
ResolutionFactor)/Parameter Write
• 기능 : 서보모터의 해상도 설정
• 파라미터
- ID_NUM : 해당 서보모터의 ID
- ResolutionFactor: 서보모터의 위치 해상도
Data 설 명
1 4096 (서보모터의 위치값을 0 ~ 4096
로 설정 )
2 2048 (서보모터의 위치값을 0 ~ 2048
로 설정 )
3 1024 (서보모터의 위치값을 0 ~ 1024
로 설정 )
4 512 (서보모터의 위치값을 0 ~ 512로
설정 )
20
마이티잽 아두이노 API 매뉴얼 V.1.1
1. m_zap.movingSpeed()
- 이동 속도를 설정합니다.
- 0~1023으로 설정값이 클수록 빨라집니다.(0일 때 최
대속도록 동작합니다)
- 전원인가 시 0으로 초기화 합니다.
21
마이티잽 아두이노 API 매뉴얼 V.1.1
m_zap.ForceLimit()
- 서보모터의 기동력을 설정하고 설정/확인
- 0~1023으로 설정, 클수록 높은 Force로 동작
- 전원 인가시 Max Force의 값으로 초기화
22
마이티잽 아두이노 API 매뉴얼 V.1.1
m_zap.MaxForce()
- 서보모터의 최대 기동력을 설정/확인
23
마이티잽 아두이노 API 매뉴얼 V.1.1
m_zap.complianceMargin()
- 서보모터의 최대 위치 오차를 설정합니다.
- 지나치게 크게 설정하면 Dead Band가 커집니다. 지나치게 작
으면 정밀도는 향상되나 jitter현상이 나타납니다
24
마이티잽 아두이노 API 매뉴얼 V.1.1
2.17. Punch
m_zap.Punch()
Punch는 서모모터 구동신 공급되는 최소 전류량으로 이
값이 크면 정지토크가 상승하지만 지나치면 떨림 현상이
생깁니다.
25
마이티잽 아두이노 API 매뉴얼 V.1.1
m_zap.PunchInitial()
- Punch의 초기값을 setting합니다.
26
마이티잽 아두이노 API 매뉴얼 V.1.1
2.19. PID
MightyZAP의 PID() 명령어를이용하여 Servo Motor의최적의움직임을setting합니다.
[Example] - [MightyZAP] - [UNO/LEO]–[MightyZAP_PID] 선택
m_zap.pidGain()
- Servo Motor의 PID 값을 각각 setting합니다.
27
마이티잽 아두이노 API 매뉴얼 V.1.1
아두이노 IDE를 통해 PWM으로 서보 모터를 제어합니다. 서보 모터를 PWM으로 직접 위치 제어할 때 사용합니다. PWM을
지원하는 PT 계열 마이티잽을 구비하여야 합니다. (RS-485 지원 F 버전은 해당사항 없음)
3.1개요 / 주의 사항
MightyZap을 아두이노로 직접 제어하기 위해서는 아래와 같이 회로를 구성해야 합니다. 이때 서보모터의 전압은 사양에 맞
게 입력해야 합니다.
28
마이티잽 아두이노 API 매뉴얼 V.1.1
29