soc 로봇워 참가자 교육

46
SoC 로로로 로로로 로로

Upload: chynna

Post on 04-Feb-2016

90 views

Category:

Documents


0 download

DESCRIPTION

SoC 로봇워 참가자 교육. 목차. 1. DRS-0101 주요 레지스터 2. DRC-005T 주요 레지스터 3. DRS-0101 & DRC-005T 프로토콜 4. DR-Visual Logic 활용 5. 두뇌보드 프로그래밍 방안 6. Q&A. 1. DRS-0101 주요 레지스터. 비휘발성 (EEPROM) 과 휘발성 (RAM) 메모리 비휘발성 : 전원이 꺼져도 유지 . 설정 값 저장 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SoC  로봇워 참가자 교육

SoC 로봇워 참가자 교육

Page 2: SoC  로봇워 참가자 교육

2

목차

1. DRS-0101 주요 레지스터2. DRC-005T 주요 레지스터3. DRS-0101 & DRC-005T 프로토콜4. DR-Visual Logic 활용5. 두뇌보드 프로그래밍 방안6. Q&A

Page 3: SoC  로봇워 참가자 교육

3

1. DRS-0101 주요 레지스터

비휘발성 (EEPROM) 과 휘발성 (RAM) 메모리– 비휘발성 : 전원이 꺼져도 유지 . 설정 값 저장– 휘발성 : 전원이 꺼지면 지워짐 . 동작에 직접적 영향 . 설정 값 , 상태 , 센

서 값 등 저장– 비휘발성 메모리 중 설정 값 영역이 부팅 시 휘발성 메모리에 복사

RW( 읽기 / 쓰기 가능 ) 와 RO( 읽기만 가능 ) 로 나뉨

값을 바꿀 때– 비휘발성 : 현재 동작에 영향 없음 . 재부팅 이후 부터 영향– 휘발성 : 현재 동작에 영향 있음 . 재부팅 시 사라짐 설정 값을 변경 시 비휘발성 & 휘발성 모두 바꾸거나 비휘발성 바꾼 후 재부팅

시켜야 .

레지스터와 프로토콜은 모두 Little Endian– 하위 바이트가 더 메모리의 앞에 위치 . 0x1234 는 0x34, 0x12

Page 4: SoC  로봇워 참가자 교육

4

1. DRS-0101 주요 레지스터

ID(RW, EEP 6/RAM 0) Ack Policy(RW, EEP 7/RAM 1) Torque Policy(RW, EEP 9/RAM 3) Position Kp(RW, EEP 30/RAM 24) Position Kd(RW, EEP 32/RAM 26) Position Ki(RW, EEP 34/RAM 28) Calibration Difference(RW, EEP 53/RAM 47) Status Error(RW, RAM 48) Status Detail(RW, RAM 49) Torque Control(RW, RAM 52) Calibrated Position(RO, RAM 58) Absolute Position(RO, RAM 60)

Page 5: SoC  로봇워 참가자 교육

5

1. DRS-0101 주요 레지스터

ID(RW, EEP 6/RAM 0)– Servo 식별 ID. 0x00~0xFD. 동일 ID 가 같이 연결된 경우 오동작

Ack Policy(RW, EEP 7/RAM 1)– 요청 패킷 수신 시 응답 패킷을 보낼지 여부에 대한 정책

• 0: 무응답• 1: Read CMD(EEP_READ, RAM_READ) 에만 응답• 2: 모든 패킷에 응답

– 패킷의 pID 가 254(broadcasting) 일 경우 무응답– 단 CMD 가 STAT 일 경우 무조건 응답 (254 일 경우도 )

Position Kp, Kd, Ki(RW, EEP 30, 32, 34/RAM 24, 26, 28)– 위치 제어기의 PID 게인 .– 서보에서 덜덜 거리는 소리가 날 경우 Kd 를 낮춰 보는 것을 추천

Page 6: SoC  로봇워 참가자 교육

6

1. DRS-0101 주요 레지스터

Status Error(RW, RAM 48)– 서보의 에러 상태를 나타내는 레지스터

Status Detail(RW, RAM 49)– 서보의 상태와 에러의 상세 내역을 나타내는 레지스터

Page 7: SoC  로봇워 참가자 교육

7

1. DRS-0101 주요 레지스터

Torque Policy(RW, EEP 9/RAM 3)– Status Error 와 비교해서 1 로 설정된 비트에 해당하는 에러가 발생 시

서보의 토크를 자동으로 해제– Status Error 를 해제 후 다시 Torque Control 값을 수동으로 바꿔 주어야

복귀

Torque Control(RW, RAM 52)– 토크의 인가 상태를 제어 .

• 0x00 : Torque Off• 0x40 : Break On( 초기 상태 )• 0x60 : Torque On

Page 8: SoC  로봇워 참가자 교육

8

1. DRS-0101 주요 레지스터

Calibration Difference(RW, EEP 53/RAM 47)– 영점 조절 시 사용하는 -128~127 의 값– Calibration Difference = Absolute Position – Calibrated Position

Calibrated Position(RO, RAM 58)– Calibration Difference 가 적용된 현재 위치 + GPIO 입력 값– LSB 13 비트 (0~12 번 비트 ) : 위치 값– 그 위 2 비트 (13~14 번 비트 ) : GPIO 입력 값 (Active Low)– 마지막 MSB 1 비트 (15 번 비트 ) : reserved– 모터 움직이는 명령은 모두 Calibrated Position 이 기준

Absolute Position(RO, RAM 60)– 보정되지 않은 현재 위치의 Raw Data– 각도 = Raw Data * 0.325

Page 9: SoC  로봇워 참가자 교육

9

2. DRC-005T 주요 레지스터

Special Function(RW, EEP 5) ID(RW, EEP 7/RAM 0) Ack Policy(RW, EEP 8/RAM 1) Torque Off Policy(RW, EEP 9/RAM 2) Status Check Policy(RW, EEP 11/RAM 4) Remocon Channel(RW, EEP 15/RAM 8) Status Error(RW, RAM 16) Status Detail[5](RW, RAM 17) Servo Count(RO, RAM 34) Servo ID[33](RO, RAM 35) Playing Motion(RO, RAM 68) Playing Task(RO, RAM 69) Remocon Length(RO, RAM 74) Remocon Data(RO, RAM 75) ADC Port 1 Sensor Type(RO, RAM 79) ADC Port 2 Sensor Type(RO, RAM 80) ADC Port 1 Sensor Value(RO, RAM 81) ADC Port 2 Sensor Value(RO, RAM 83) ACC/GYRO Connected(RO, RAM 85) ACC X/Y/Z Value (RO, RAM 86, 88, 90) GYRO X/Y/Z Value (RO, RAM 92, 94, 96) Servo Status Error & Detail[32](RO, RAM 106) Servo Position[32](RO, RAM 170)

Page 10: SoC  로봇워 참가자 교육

10

2. DRC-005T 주요 레지스터

ID(RW, EEP 7/RAM 0)– 제어기 식별 ID. 0x00~0xFD. 기본 값 0xFD

Ack Policy(RW, EEP 8/RAM 1)– 요청 패킷 수신 시 응답 패킷을 보낼지 여부에 대한 정책

• 0: 무응답• 1: Read CMD 와 CON_CHECK 등 몇몇 CMD 에 대해서만 응답• 2: 모든 패킷에 응답

– 패킷의 pID 가 254(broadcasting) 일 경우 무응답– 단 CMD 가 STAT 일 경우 무조건 응답 (254 일 경우도 )

Torque Off Policy(RW, EEP 9/RAM 2)– 상태 에러 발생 시 제어기에 연결된 서보 모터의 토크를 풀 것인지 여부– Status Error 와 비교해서 1 로 설정된 비트에 해당하는 에러가 발생 시

연결된 모든 서보의 토크를 자동으로 해제

Page 11: SoC  로봇워 참가자 교육

11

2. DRC-005T 주요 레지스터

Status Error(RW, RAM 16)– 제어기의 상태 오류 내역

Status Detail[5](RW, RAM 17)– 제어기 상태 오류의 더 상세한 내역 코드 ( 최근 5 개 )

Page 12: SoC  로봇워 참가자 교육

12

2. DRC-005T 주요 레지스터

Servo Count(RO, RAM 34)– 연결된 서보의 총 수 ( 최대 32 개 )

Servo ID[33](RO, RAM 35)– 연결된 서보의 ID 가 오름차순으로 저장– 연결된 수만큼 저장되며 나머지 공간은 0xFE(Broadcasting ID)

Page 13: SoC  로봇워 참가자 교육

13

2. DRC-005T 주요 레지스터

Remocon Channel(RW, EEP 15/RAM 8)– 리모컨의 채널 값 (0x61~0x6A)– 현재 사용하는 리모컨의 채널이 일치해야 리모컨 값을 인식할 수 있음

Remocon Length(RO, RAM 74)– 리모컨 버튼이 눌린 길이 . 리모컨 버튼 신호가 들어온 순간부터 125ms

마다 1 증가

Remocon Data(RO, RAM 75)– 리모컨 키 값 . 리모컨 신호가 안 들어올 때는 0xFE

Page 14: SoC  로봇워 참가자 교육

14

2. DRC-005T 주요 레지스터

Playing Motion(RO, RAM 68)– 저장된 모션이 실행 중인지 여부 (실행 중 :1, 아님 : 0)– 모션이 끝날 때까지 대기하려면 이 레지스터가 0 이 될 때까지 기다리면 됨

Playing Task(RO, RAM 69)– 저장된 Task 가 실행 중인지 여부 (실행 중 :1, 아님 : 0)

Page 15: SoC  로봇워 참가자 교육

15

2. DRC-005T 주요 레지스터

Status Check Policy(RW, EEP 11/RAM 4)– 연결된 서보의 현재 위치와 상태를 지속적으로 읽어올지 여부를 설정– 1 로 설정되어 있을 때 , Servo Status Error & Detail 과 Servo Position 을

지속적으로 업데이트

Servo Status Error & Detail[32](RO, RAM 106)– 연결된 서보의 Status Error 와 Status Detail 값이 저장 (2 바이트 )– Status Check Policy 가 1 일 때 지속적으로 업데이트– 단선이 되어 통신이 안되는 경우 0x80, 0x00 으로 변경

Servo Position[32](RO, RAM 170)– 연결된 서보의 Calibrated Position 값이 저장 (2 바이트 )– Status Check Policy 가 1 일 때 지속적으로 업데이트– Calibrated Position = 위치 (13 비트 ) + GPIO(2 비트 )임을 주의

Page 16: SoC  로봇워 참가자 교육

16

2. DRC-005T 주요 레지스터

ACC/GYRO Connected(RO, RAM 85)– 가속도 / 자이로 센서 모듈 연결 여부– I2C 통신이 정상적으로 이루어지면 1, 아니면 0

ACC X/Y/Z Value(RO, RAM 86, 88, 90)– -4096~+4095(-16g~+16g)– 정지 상태에서는 바닥 방향으로 -1g(약 -256) 작용– 서있는 경우 ACC X, Y, Z = 0, -256, 0– 엎드린 경우 ACC X, Y, Z = 0, 0, 256– 누운 경우 ACC X, Y, Z = 0, 0, -256

GYRO X/Y/Z Value(RO, RAM 92, 94, 96)– -32768~32767(-2000dps~+2000dps)– 축의 +방향에서 보았을 때 반시계면 +– 100dps 로 회전 중일 때 레지스터 값은 약 1600

Page 17: SoC  로봇워 참가자 교육

17

2. DRC-005T 주요 레지스터

ADC Port 1 Sensor Type(RO, RAM 79) ADC Port 2 Sensor Type(RO, RAM 80)

– ADC Port 1(좌측 ), 2( 우측 ) 으로 연결된 센서의 종류• 0 : 센서가 연결되지 않음• 1 : PSD 센서가 연결 되었음• 2 : 디지털 거리 센서가 연결 되었음• 3 : DRX-0001M 이 연결 되었음 (Genie)

ADC Port 1 Sensor Value(RO, RAM 81) ADC Port 2 Sensor Value(RO, RAM 83)

– ADC Port 1(좌측 ), 2( 우측 ) 으로 연결된 센서 값• Sensor Type 0 일 경우 : 0• Sensor Type 1 일 경우 : 3~40(cm 단위 )• Sensor Type 2 일 경우 : 0~1(10cm 이상 :1, 이내 :0)• Sensor Type 3 일 경우 : 0

Page 18: SoC  로봇워 참가자 교육

18

2. DRC-005T 주요 레지스터

Special Function(RW, EEP 5)– DRC-005T 를 특수 용도로 쓰고 싶을 때 사용

– 사용자 센서 모드• 0 : 센서 포트에 PSD 혹은 디지털 거리 센서 1 개를 사용 ( 총 2 개 )• 1 : 임의의 아날로그 센서 1 개와 디지털 센서 1 개를 달 수 있음 ( 총 4 개 )

– TTL 통신 모드• Zigbee Serial Interface(TTL 3.3V) 로 통신 가능

– 기본 제공 센서 사용하실 분은 0x02, 직접 제작 센서 사용하실 분은 0x03 으로 세팅하세요 .

Page 19: SoC  로봇워 참가자 교육

19

2. DRC-005T 주요 레지스터

사용자 센서 모드– GND, 5V 로 센서에 전원 공급– Analog 출력을 3 번에 연결– Digital 출력을 4 번에 연결

– 아날로그 센서 값은 ADC Port 1/2 Sensor Value 에 10 비트 0~1023 ADC Raw Data 로 저장

• 변환 식 : Raw Data / 1024 * 5V = Analog 출력 (V)

– 디지털 센서 값은 ADC Port 1/2 Sensor Type 에 0~1 로 저장

Page 20: SoC  로봇워 참가자 교육

20

Header : 0xFF 0xFF Packet Size : 총 바이트 수 pID : 제어할 서보 / 제어기 ID. 0xFE(254) 일 경우 Broadcasting CMD : 명령

– 요청 패킷 : 서보 0x01~0x09, 제어기 0x11~0x1E– 응답 패킷 : 서보 0x41~0x49, 제어기 0x51~0x5E

Check Sum1 : (Packet Size ^ pID ^ CMD ^ Data[0] ^ … ^ Data[n-1]) & 0xFE

Check Sum2 : (~(Packet Size ^ pID ^ CMD ^ Data[0] ^ … ^ Data[n-1])) & 0xFE

Optional Data : CMD 종류에 따라 다름

3. 프로토콜 – 패킷 구조

Page 21: SoC  로봇워 참가자 교육

21

3. 프로토콜 – CMD 종류 ( 서보 )

Page 22: SoC  로봇워 참가자 교육

22

3. 프로토콜 – CMD 종류 ( 서보 )

Page 23: SoC  로봇워 참가자 교육

23

3. 프로토콜 – CMD 종류 ( 제어기 )

Page 24: SoC  로봇워 참가자 교육

24

3. 프로토콜 – CMD 종류 ( 제어기 )

Page 25: SoC  로봇워 참가자 교육

25

3. 프로토콜 – 자주 쓰는 CMD

RAM_WRITE( 서보 )– Address 부터 Length 바이트만큼 RAM Data 로 쓴다 .

예시 – 모든 서보의 Torque ON(52 번 주소 , 1 바이트 , 0x60)

구분 Header Packet Size pID CMD CheckSum Data[0]Data[1

]

Value0xF

F0xF

F7+(2+Lengt

h)0~0xFE 0x03 CS1 CS2

Address

Length구분 Data[2] … Data[Length+1]

Value RAM Data[0] … RAM Data[Length-1]

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Data[1]

Data[2]

Value0xFF

0xFF

0x0A 0xFE0x03

0xA2

0x5C

0x34 0x01 0x60

Page 26: SoC  로봇워 참가자 교육

26

3. 프로토콜 – 자주 쓰는 CMD

RAM_READ( 서보 ) – 요청 패킷– Address 부터 Length 바이트만큼 읽는다 .

예시 – 0 번 서보 Calibrated Position 읽기 (58 번 주소 , 2 바이트 )

구분 Header Packet Size pID CMD CheckSum Data[0]Data[1

]

Value0xF

F0xF

F7+2

0~0xFD

0x04 CS1 CS2Addres

sLength

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Data[1]

Value0xFF

0xFF

0x090x00

0x04

0x34

0xCA

0x3A 0x02

Page 27: SoC  로봇워 참가자 교육

27

3. 프로토콜 – 자주 쓰는 CMD

RAM_READ( 서보 ) – 응답 패킷– Address 부터 Length 개 값을 RAM Data 와 상태를 넣어 응답한다 .

예시 – 0 번 서보 Calibrated Position 응답 (58 번 주소 , 2 바이트 )

구분 Header Packet Size pID CMD CheckSum Data[0]Data[1

]

Value0xF

F0xF

F7+(2+Length)

+20~0xF

D0x4

4CS1 CS2

Address

Length구분 Data[2] … Data[Length+1] Data[Length+2] Data[Length+3]

ValueRAM Data[0]

… RAM Data[Length-1] Status Error Status Detail

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Data[1]

Value0xFF

0xFF

0x0D0x00

0x44

0xFA

0x04

0x3A 0x02

구분 Data[2]

Data[3] Data[4] Data[5]

Value 0xE8 0x63 0x00 0x00

Page 28: SoC  로봇워 참가자 교육

28

3. 프로토콜 – 자주 쓰는 CMD

  요청 패킷 CMD 응답 패킷 CMD

EEP_WRITE( 서보 ) 0x01 0x41

EEP_READ( 서보 ) 0x02 0x42

RAM_WRITE( 서보 ) 0x03 0x43

RAM_READ( 서보 ) 0x04 0x44

EEP_WRITE( 제어기 ) 0x11 0x51

EEP_READ( 제어기 ) 0x12 0x52

RAM_WRITE( 제어기 ) 0x13 0x53

RAM_READ( 제어기 ) 0x14 0x54

서보와 제어기의 WRITE/READ CMD

Page 29: SoC  로봇워 참가자 교육

29

3. 프로토콜 – 자주 쓰는 CMD

S_JOG( 서보 )– N 개의 서보를 Play Time 동안 동시에 움직인다 .

구분 Header Packet Size pID CMD CheckSum Data[0]

Value0xF

F0xF

F7+(1+4*N) 0xFE

0x06

CS1 CS2 Play Time

구분 Data[1]~Data[4]

…Data[4*N-3]~Data[4*N]

Value SJOG Data[0] … SJOG Data[N-1]

Page 30: SoC  로봇워 참가자 교육

30

3. 프로토콜 – 자주 쓰는 CMD

S_JOG( 서보 )– N 개의 서보를 Play Time 동안 동시에 움직인다 .

Play Time– 목표 /속도에 도달하는 데 걸리는 시간– 값 * 11.2ms = 시간 . 예 )50 = 560ms

JOG– 목표 위치 /속도– 속도 제어 시 14 번 비트 = 역회전

SET– Stop Flag -> 모터 즉시 정지– Mode -> 0: 위치 , 1: 속도– LED -> LED 점등 여부– Invalid -> JOG 명령 무시

ID– 제어할 ID

Page 31: SoC  로봇워 참가자 교육

31

3. 프로토콜 – 자주 쓰는 CMD

S_JOG( 서보 ) 예시 – 0 번 서보 , 1 번 서보 동시 제어– 실행 시간 : 100(1.12ms)– 0 번 서보 : 위치 제어 , 512, Green LED 점등– 1 번 서보 : 위치 제어 , 400, Blue LED 점등

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Value0xFF

0xFF

0x10 0xFE0x06

0x12

0xEC

0x64

구분 Data[1]

Data[2] Data[3] Data[4] Data[5] Data[6] Data[7] Data[8]

Value 0x00 0x02 0x04 0x00 0x90 0x01 0x08 0x01

Page 32: SoC  로봇워 참가자 교육

32

3. 프로토콜 – 자주 쓰는 CMD

PLAY_MOTION( 제어기 )– Motion No 번 모션을 실행한다 .

Motion No : 모션 번호 0~127. (254 이면 현재 모션 정지 ) Motion Ready : 모션 준비자세 여부 (1 이면 모션의 첫 프레임만 느리게 )

예시 – ID 253 인 DRC 에서 모션 1 번 실행

예시 – ID 253 인 DRC 에서 모션 2 번 첫 프레임만 실행

구분 HeaderPacket

SizepID CMD CheckSum Data[0] Data[1]

Value0xF

F0xF

F7+2

0~0xFE

0x16

CS1 CS2Motion

No.Motion

Ready

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Data[1]

Value0xFF

0xFF

0x090xFD

0x16

0xE2

0x1C

0x01 0x00

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Data[1]

Value0xFF

0xFF

0x090xFD

0x16

0xE0

0x1E

0x02 0x01

Page 33: SoC  로봇워 참가자 교육

33

3. 프로토콜 – 자주 쓰는 CMD

PLAY_TASK( 제어기 )– 제어기의 Task 를 실행한다 .

Instruction– 0 일 때 : 일반 모드로 Task 실행– 254 일 때 : Task 정지– 1 일 때 : 디버깅 모드로 Task 실행– 2 일 때 : 디버깅 모드일 때 , Task 를 한 스텝만 진행 후 멈춤

예시 – ID 253 인 DRC 에서 Task 실행

구분 HeaderPacket

SizepID CMD CheckSum Data[0]

Value0xF

F0xF

F7+1

0~0xFE

0x17

CS1 CS2Instructio

n

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Value0xFF

0xFF

0x080xFD

0x17

0xE2

0x1C

0x00

Page 34: SoC  로봇워 참가자 교육

34

3. 프로토콜 – 자주 쓰는 CMD

REMOCON( 제어기 )– 제어기에 리모컨을 쏜다 .(IR 리모컨을 쏜 것과 동일한 효과 )

Channel : 리모컨의 채널 (0x61~0x6A) Length : 리모컨 버튼이 눌린 시간 (0~240, 1 당 125ms) Data : 리모컨 버튼 키

예시 – 모든 DRC 에 0x61 의 채널로 1 초 동안 버튼 0x21 이 눌림

구분 HeaderPacket

SizepID CMD CheckSum Data[0]

Data[1]

Data[2]

Value0xF

F0xF

F7+3

0~0xFE

0x1C

CS1 CS2Channe

lLength Data

구분 HeaderPacket Size

pID CMD CheckSum Data[0]

Data[1]

Data[2]

Value0xFF

0xFF

0x0A 0xFE0x1D

0xA0

0x5E

0x61 0x08 0x21

Page 35: SoC  로봇워 참가자 교육

35

4. DR-Visual Logic

로봇 Task 프로그래밍 툴 모듈 배치와 Input/Output 핀 연결로 프로그램 작성 프로그램 -> C-like script -> 로봇에 다운로드 실시간 디버깅 기능 ( 스텝 진행 , 중단점까지 진행 )

Page 36: SoC  로봇워 참가자 교육

36

4. DR-Visual Logic

Motion– Move : 모션 실행– Motor : 모터 제어– LED : 제어기 & 머리 LED 제어– Sound : 버저 음계 , 멜로디 재생

– 로봇의 행동을 제어

Page 37: SoC  로봇워 참가자 교육

37

4. DR-Visual Logic

Sensor– Sound Sensor : 소리 방향 센서– Touch Sensor : 머리 터치 센서– Light Sensor : 빛 밝기 센서– Distance Sensor : 거리 센서 (PSD, 디지털 )– Dynamics Sensor : 가속도 / 자이로 센서– Hand Touch Sensor : 손바닥 터치 센서

– 센서의 감지 여부나 기준값 과의 비교 결과를 True/False 로 출력

Page 38: SoC  로봇워 참가자 교육

38

4. DR-Visual Logic

Communication– IR Receive : IR 리모컨 수신– Button : Button

– 모듈에 설정된 IR 리모컨 Key 나 Button 입력이 들어왔는지 여부를 True/False 로 출력

Page 39: SoC  로봇워 참가자 교육

39

4. DR-Visual Logic

Data– Operator : 연산자 (산술 , 논리 , 비교 , 비트 , 증감 )– Variable : 제어기 / 서보 RAM Data, 사용자 변수 , 상수

– 제어기 / 서보의 RAM Data, 사용자가 선언한 변수 , 상수 등과 연산자를 사용해 계산을 하는 모듈

Page 40: SoC  로봇워 참가자 교육

40

4. DR-Visual Logic

Flow– Loop : 무한 반복 / for문– While : while문– Switch : If-else문– Wait : 내용 없는 while문– Delay : 지정한 시간 대기– Continue : 반복문 처음부터 시작– Break : 반복문 빠져 나가기

– 프로그램의 흐름을 제어하는 모듈

Page 41: SoC  로봇워 참가자 교육

41

4. DR-Visual Logic

My Module– 기존에 저장되어 있는 dts 파일을 불러와서 함수처럼 사용– 파라미터 없는 void function

Page 42: SoC  로봇워 참가자 교육

42

4. DR-Visual Logic

커넥터– 모듈의 Input 과 Output 을 서로 이어 한 모듈의 Output 이 다른 모듈의

Input 으로 들어가도록 프로그래밍

Page 43: SoC  로봇워 참가자 교육

43

4. DR-Visual Logic

Task 예제– 거리 센서 사용 예제– 넘어짐 감지 예제– 리모컨 모션 예제– 양산 기본 Task

Page 44: SoC  로봇워 참가자 교육

44

5. 두뇌보드 프로그래밍 방안

1. 순수 두뇌보드 프로그래밍 두뇌보드에서 프로토콜로 모든 제어를 하는 프로그래밍

2. 두뇌보드 – DRC 분담 프로그래밍 DRC 에 Task 를 작성해 무한 반복으로 돌려 놓고 두뇌보드에서는 REM

OCON 패킷을 사용해 제어하는 프로그래밍 두뇌보드의 연산과 통신라인의 부담이 줄음

예 ) 1 번 키를 보내면 좌회전 3회 , 직진 3회 두뇌보드 : PLAY_MOTION->RAM_READ 로 Playing Motion Register 감시 -> 완료 후 다시 PLAY_MOTION 을 6 번 반복

두뇌보드 +DRC : REMOCON

Page 45: SoC  로봇워 참가자 교육

45

6. Q&A

문의사항 : [email protected] Soc관련 자료 : www.dongburobot.com 서비스로봇 자료실 오늘 PPT 자료 , 펌웨어 , 예제 자료 업로드

Page 46: SoC  로봇워 참가자 교육

46

감사합니다 .