휴머노이드 교재 고급 part2 Flipbook PDF


84 downloads 118 Views 4MB Size

Recommend Stories


Porque. PDF Created with deskpdf PDF Writer - Trial ::
Porque tu hogar empieza desde adentro. www.avilainteriores.com PDF Created with deskPDF PDF Writer - Trial :: http://www.docudesk.com Avila Interi

EMPRESAS HEADHUNTERS CHILE PDF
Get Instant Access to eBook Empresas Headhunters Chile PDF at Our Huge Library EMPRESAS HEADHUNTERS CHILE PDF ==> Download: EMPRESAS HEADHUNTERS CHIL

Story Transcript

HUMANOID Advanced level

beginning level

㈜ 고영로보틱스

1

부록

* PLUTO 제원



제 품 명: PLUTO 기본형



제 어 기: GY-HC64 (ARM Cortex MCU 사용)



프로그램 : SUNNY-C



조 종 기: 블루투스 리모컨 기본



구동모터 : 17관절 서보모터



Specification: - Size: 35 x 25 x 11 - 무게 1.9Kg - All Metal Gear, torque 30kg/cm

• •



원: 7.4v Li-Po 3,000mAh 리튬폴리머배터리 / 전용 충전기 포함 2

부록

* 메인보드 + ①

SIG

② GND VCC





+ TXD RXD

① 출력 포트

Slave (보드용)

Mater (조종기용)

② 전원 스위치 ③ Bluetooth 모듈 ④ 전원 커넥터

3

부록

* PLUTO 조종기 작동 키

⑮ ③ ④





⑥ ①

















① 영점 자세

⑨ 앞으로 일어나기

② 기본자세

⑩ 뒤로 일어나기

③ 전진

⑪ 앞 왼손 공격

④ 왼쪽 턴

⑫ 앞 오른손 공격

⑤ 후진

⑬ 뒤 왼손 공격

⑥ 오른쪽 턴

⑭ 뒤 오른손 공격

⑦ 왼쪽 보행

⑮ 모드 변경

⑧ 오른쪽 보행 4

부록

* 사용 전 주의 사항 • 로봇을 사용하기 전 주의 사항들을 알아보자

1. 로봇의 전원을 on 하기 전 임의로 영점 자세를 잡아준 후 전원을 on 해야 한다. (임의로 영점 자세를 잡지 않을 시 로봇에 토크가 안 들어 올 경우도 있고 이상 동작을 할 수도 있다.) ※ 별첨- 팔 관절의 경우 배선이 꼬일 수 있음, 7page 사진 참고 2. 로봇의 전원을 on 후 로봇의 토크가 잡히지 않을 시, 배선의 연결 유무 및 손상 여부를 확인한다. 3. 배터리 연결 전 극성(+,-)을 확인한다. 4. 모션을 만들 시 안전에 유의한다. ※ 토크가 크기 때문에 손을 다칠 위험이 있다. 5. 배터리는 장시간 충전하지 않는다. ※ 과충전 시 폭발 및 화재의 위험이 있다. (충전 권장 시간 : 1시간 ~2시간) 6. 배터리 사용 시 7v 이하까지 사용하지 않는다. ※7.4v 리튬폴리머 특성상 완충 시 8.2v까지 충전이 되고 과방전시 배터리를 사용할 수 없게 됨으로 7v이하를 사용하면 배터리의 고장의 원인이 될 수 있다.

5

부록

* 사용 전 주의 사항 ※ 별첨- 로봇의 전원 on 전 자세

※ 잘못된 자세 - 배선 꼬임 현상

※ 정상적인 자세

6

Contents

1주차 . 프로그램 설치 및 IDE 사용 환경 • 01. 아두이노 정의 및 특징 • 02. 아두이노 프로그램 설치 • 03. IDE 사용환경 알아보기 • 04. 프로그램 기본구조

2주차 . 임베디드 시스템 실습 및 시리얼 통신 • 01. 임베디드 시스템 실습 1 - LED 연결 및 실습 - 스위치 연결 및 실습 • 02. 시리얼 통신 - 시리얼 통신 데이터 전송 - 빛 센서 연결 및 실습

3주차 . 임베디드 시스템 실습 및 휴머노이드 실습 • 01. 임베디드 시스템 실습 2 • 02. 휴머노이드 블루투스 연결 • 03. 휴머노이드 실습

4주차 . 휴머노이드 임베디드 시스템 심화 미션 • 01. 휴머노이드 실습 • 02. 휴머노이드 심화 실습 - 물류이송 미션 실행

7

3주차

임베디드 시스템 실습 및 휴머노이드 실습 • 01. 임베디드 시스템 실습 1 • 02. 휴머노이드 블루투스 연결 • 03. 휴머노이드 실습

8



 릴레이 연결 및 실습 •

릴레이를 사용해서 프로그램을 코딩해보자

 릴레이 스펙

 릴레이 사진

• 공급 전압 : 3.3V ~ 5V • 스위칭 용량 : 10A • 인증 : UL, CUL, TUV • 고온 및 우수한 화학 용액 성능을 위한

 황색 : 신호선  적색 : + 전원 (3.3V)  흑색 : - 전원 (GND)

플라스틱 소재 선택 • NC : 일반적으로 닫힌 120-240V 단자 • NO : 평상시 열리는 120-240V 단자 • C : 공통 단자 • Ground : ESP-12 의 접지 핀에 연결 • 5V Vcc : ESP-12의 5V 핀에 연결한다. • 신호 : 릴레이를 작동시키는 ESP-12의 신호에 연결한다.  릴레이 회로 및 릴레이 내부 도안

9



 릴레이 연결 및 실습 •

릴레이를 사용해서 프로그램을 코딩해보자

 AC 고전압 릴레이 연결방법 • 다음은 릴레이 동작에서 평상시 열린 접점과 평상시 닫힌 접 점에 대하여 소개한다.

 평상실 열림 접점 릴레이 연결방법 • 정상적으로 열린 구성에서 릴레이가 HIGH 신호를 받으면 120-240V 스위치가 닫히고 전 류가 C 터미널에서 NO 터미널로 흐릅니다. LOW 신호는 릴레이를 비활성화하고 전류를 흐르지 않게 한다. 릴레이를 켜고 싶다면, HIGH 신호로 출력하면 된다.

 평상시 닫힘 접점 릴레이 연결방법 • 정상적으로 닫힌 구성에서 HIGH 신호는 스위치를 OPEN 되고 120-240V 전류를 차단된 다. LOW 신호는 스위치를 닫고 C 터미널에서 NC 터미널로 전류가 흐르도록 합니다. 따라서 HIGH 신호가 120-240V 전류를 끄도록 하려면 평상시 닫힘 단자(NC)를 사용하십시오.

10



 릴레이 연결 및 실습 •

릴레이를 사용해서 프로그램을 코딩해보자

 실습 4-1 : 아날로그 입력 및 디지털 외부 출력 확인 • 빛 센서 커넥터 방향이 있으니 주의한다. • 빛 센서의 선은 청색(파랑) 선이 보드의 바깥쪽에 위치하며 보드의 중심은 적색(빨강), 보드의 안쪽은 흑색(검정) 선이다.

 황색 : 신호선  적색 : + 전원 (3.3V)  흑색 : - 전원 (GND)

 청색 : 신호선  적색 : + 전원 (3.3V)  흑색 : - 전원 (GND)

• 릴레이는 커넥터 방향이 있으니 주의한다. • 릴레이의 S 표시는 신호를 의미하며, 중앙 +는 5V를 의미하고, 끝 부분은 –는 GND를 의미한다.

11

 릴레이 연결 및 실습





릴레이를 사용해서 프로그램을 코딩해보자

 실습 4-1 : 아날로그 빛 센서 연결 릴레이 동작 • 아날로그 0 번 핀을 통하여 빛 센서 입력을 수행하며, 아날로그로 입력받은 데이터를 시리얼 플로터 및 시리얼 모니터를 통하여 데이터를 확인한다. 그리고 데이터 가 400 이상인 경우 릴레이 동작을 수행한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

int val1 = 0; // AD 변환값을 저장할 변수 int val2 = 0; // 릴레이 변수값을 저장할 변수 void setup() { Serial.begin(9600); pinMode(15, OUTPUT); } void loop() { val1 = analogRead(0); // 아날로그 0번 핀 (VR) 값을 입력 Serial.print(val1); if (val1 > 400) { digitalWrite(15, LOW); val2 = 400; else { digitalWrite(15, HIGH); val2 = 0; Serial.print(" "); Serial.println(val2); }

} }

delay(50);

• 동작 확인 : 시리얼플로터 화면을 출력하고 보드레이트 설정 9600을 선택한다. 화면에 빛의 변화 량이 화면에 출력된다. 빛이 밝아지면 릴레이가 동작한다.

빛이 있을 때

빛이 없을 때

빛이 있을 때

12



 초음파센서 연결 및 실습 •

초음파센서를 이용해서 코딩해보자.

 HC-SR 04 • 사용전압 : 5V • 사용전류 : 15mA • 주파수 : 40Hz • 최대거리 : 4m • 최소거리 : 2Cm • 측정각도 : 15도 • 트리거 입력신호 : 10uS TTL 펄스 • 에코 출력 신호 : TTL 신호 출력 • 크기 : 45 x 20 x 15mm

 HC-SR 04 • Vcc : 5V • GND : GND • Trigger Pin : G13 • Echo Pin : G12

13



 초음파센서 연결 및 실습 •

초음파센서를 이용해서 코딩해보자.

 실습 5 : 초음파 거리측정 센서 •

초음파 거리 측정을 위하여 아래와 같이 포트 13번을 이용하여 트리거 신호를 출력 하고 포트 12번을 이용하여 에코 입력을 받는다. 트리거 신호 1회를 출력 후 되돌아 온 클러의 수를 체크하여 거리 환산 수식을 이용하여 최종 결과값을 도출한다.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 •

// defines pins numbers const int trigPin = 13; const int echoPin = 12; // defines variables int duration; float distance; void setup() { pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output pinMode(echoPin, INPUT); // Sets the echoPin as an Input Serial.begin(9600); // Starts the serial communication } void loop() { // Clears the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculating the distance distance = duration * 0.034 / 2; // Prints the distance on the Serial Monitor Serial.println(duration); Serial.print(" "); Serial.println(distance); delay(500); } 거리 데이터 값이 우측과 같이 출력이 나오는 것을 확인할 수 있다. 거리 데이터 값은 노이즈 성분이 많기 때문에 그대로 쓰 지 말고 필터 처리 후 사용하는 것이 바람직하다.

14



 초음파센서 연결 및 실습 •

초음파센서를 이용해서 코딩해보자.

 실습 5-1 : 초음파 센서를 이용한 led 켜기 •

초음파센서로 거리를 측정해서 조건에 따라 led가 켜지는 프로그램을 작성해 보자. 조건문은 if 문을 사용해서 프로그램을 코딩하며 거리가 50보다 커지면 led가 켜지고 50보다 작으면 led가 꺼지는 프로그램을 코딩하자.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 •

거리 데이터 값이 우측과 같이 출력 이 나오는 것을 확인할 수 있고 보드 에 led가 거리에 따라 켜지고 꺼지는 동작을 볼 수 있다.

15

 온도센서 연결 및 실습





온도센서를 이용해서 코딩해보자.

사용자의 인터페이스 및 온 습도 데이터 입력 보일러 장치의 온도 설정 입력과 같이 사용자 인터페이스에 대하여 이해하고 화면에 도출하는 방법에 대하여 이해하도록 한다. 현재 온도 데이터를 입력하고 내가 설정한 온도가 EEPROM에 저장되는 시 확인해 본다.

[ 섭씨와 화씨 ] : -

온도를 말할 때 단위는 섭씨와 화씨가 있다.

-

섭씨온도: 1) ℃, Celsius 2) 한국을 포함한 많은 나라에서 사용한다. 3) 표준 기압에서 물의 어는 점을 0도, 끓는 점을 100도로 간주한다.

-

화씨온도: 1) ℉, Fahrenheit 2) 미국과 일부 영어권에서 사용한다. 3) 표준 기압에서 물의 어는 점을 32도, 끓는 점을 212도로 간주한다.

[ 온도 센서 TMP36 식 ] : -

V(전압)과 C(온도)의 관계는 V = 0.01 * C + 0.5이다. 이 식에서 온도는 C = 100 * (V – 0.5)로 온도(섭씨)의 식을 구한다.

-

위에서 구한 온도(섭씨) 값에 9/5를 곱하고 32를 더하면 화씨가 된다.

-

☞ 전압 식 : V = reading * 5.0 / 1024.0

-

☞ 온도(섭씨) 식 : C = 100 * (V – 0.5)

-

☞ 화씨 식 : F = (9/5 * C) + 32

16



 온도센서 연결 및 실습 •

온도센서를 이용해서 코딩해보자.

[ float 변수란 ] : -

int형 변수와 long형 변수는 정수만을 나타내지만 float형 변수는 소수까지 표현이 가능하여 더 정밀한 값을 나타낼 수 있으며 int와 long과는 비교할 수 없을 정도로 큰 자릿수도 표현이 가능하다.

-

약 3.4 * 10 ^ 38 ~ -3.4 * 10 ^ 38까지의 숫자 표현이 가능하다.

-

float형 변수는 표현하는 숫자의 정밀도에 제한이 있다. 유효숫자가 6자리라서 왼쪽에서 6번째 자리 이후의 숫자는 정확하지 않을 수 있다.

-

예를 들어서 float 변수에 2.18297619762517를 넣고 값을 확인해 보면 2.18297 이후의 숫자들은 다르게 표시될 수 있다.

-

높은 자리수(38자리수)까지 표현할 수 있지만 정밀도는 떨어진다.

17



 온도센서 연결 및 실습 •

온도센서를 이용해서 코딩해보자.

 실습 6 : 온도센서 온도 측정 실습 •

온도센서를 이용해 현재 있는 장소에 온도를 센서로 인식해서 알아보도록 한다. 섭씨, 화씨 2개의 온도를 나타나도록 프로그래밍을 코딩한다.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17



온도 데이터 값이 우측과 같이 출력이 나오는 것을 확인할 수 있다. 센서의 위치에 따라 값이 다르게 나올 수 있기 때문에 여 러 곳을 움직여서 값의 변화를 살펴보도록 한다.

18



 네오픽셀 RGB 연결 및 실습 •

네오픽셀을 이용해서 코딩해보자.

네오픽셀 RGB LED 모듈 RGB LED에 WS2812 드라이버가 내장되어 있는 네오픽셀 LED모듈입니다. 보통 RGB LED는 전원 을 입력하면 작동하지만 본 모듈은 전원 입력 + 데이터 신호를 입력하여 작동할 수 있습니다. 네오픽셀의 장점은 여러 형태의 네오픽셀들을 연결하여 사용할 수 있으며, 연결된 네오픽셀 LED가 1개든 100개든 하나의 데이터 선만으로 연결된 네오픽셀을 개별 제어(색상, 패턴, 밝기, ON, OFF 등)할 수 있다는 점입니다.

사양 (Specification) • WS2811 드라이버 내장 RGB LED • 1600만가지의 다양한 색상표현 • 다른 네오픽셀 LED와 연결가능 • 컨트롤러를 통한 사용 및 제어 • 작동 전압: DC 5V • 작동 전류: 10~50mA • 고휘도: 5050 RGB LED • 크기: 14 x 12mm • 무게: 2g



네오픽셀 배선 회로도

19



 네오픽셀 RGB 연결 및 실습 •

네오픽셀을 이용해서 코딩해보자.

 실습 7 : 네오픽셀 RGB 작동하기 • 네오픽셀 RGB를 이용해서 순서대로 빨강, 초록, 파랑색이 나오도록 해보자 이번에는 시리얼통신을 사용하지 않고 네오픽셀만 변하게 프로그램을 코딩해 본다..

 실습 결과 • 네오픽셀 RGB 가 빨강, 초록, 파랑새가 순서대로 변하는 것을 볼 수 있다.

20



 서보모터 연결 및 실습 •

서보모터를 이용해서 코딩해보자.

9G 소형 서보모터 RGB LED에 WS2812 드라이버가 내장되어 있는 네오픽셀 LED모듈입니다. 보통 RGB LED는 전원 을 입력하면 작동하지만 본 모듈은 전원 입력 + 데이터 신호를 입력하여 작동할 수 있습니다. 네오픽셀의 장점은 여러 형태의 네오픽셀들을 연결하여 사용할 수 있으며, 연결된 네오픽셀 LED가 1개든 100개든 하나의 데이터 선만으로 연결된 네오픽셀을 개별 제어(색상, 패턴, 밝기, ON, OFF 등)할 수 있다는 점입니다.

사양 (Specification) • Dimension : 23×12.2×29mm • weight : 9g • Stall torque : 1.8kg/cm(4.8), • Operating voltage : 4.8 • Dead band width : 10μs • Operating speed : 0.1sec/60degree(4.8v)

■ 9g 소형 서보모터 회로도

21



 서보모터 연결 및 실습 •

서보모터를 이용해서 코딩해보자.

 실습 9 : 9g 소형 서보모터 제어 • 소형 서보모터를 제어하는 프로그램을 코딩해 보자. • 각도를 조절해서 자신이 원하는 각도를 자연스럽게 움직이는 프로그램을 만들어보자.

 실습 결과 • 서보모터가 0도에서 90도까지 0.1초 시간을 지연하면서 움직이는 것을 볼 수 있다.

22



 휴머노이드 블루투스 통신 •

아두이노에 대해서 알아보도록 하자.

실습보드와 휴머노이드 연결 프로그램을 살펴보면 여러 명령어가 있는데 우리가 확인해야 할 부분은 void loop 부분이다. 지난 초급, 중급에서 배웠던 모션 동작을 void loop 부분에 넣어야 하는데 void loop 안에 ‘oxooo1‘ 이 우리가 모션 코딩할 때 사용한 조종기 값을 의미한다. 저 부분에 자신이 만든 동작에 조종기 값을 넣으면 아두이노를 컴파일 했을 때 휴머노이드가 프로그램에 들어간 모션을 한다.

■ 아두이노 블루투스 회로도

23



 휴머노이드 블루투스 통신 •

아두이노에 대해서 알아보도록 하자.

휴머노이드 연결 코드

24



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 연습 1 : 보드와 블루투스를 통신해서 전진 모션을 만들어보자. • Sn5 프로그램에서 휴머노이드 전진 모션을 코딩해 보자. • 아두이노 프로그램을 코딩해서 전진 모션만 나오게 프로그램을 코딩해 보자.

< 전진 달리기 조종기 값 : 0x000002 >

-

먼저 SN5 프로그램에서 ‘휴머노이드 중급’ 시간에 만든 전진 모션을 확인한다.

-

전진 모션 옆에 조종기 값을 확인한다.

-

전진 모션과 조종기 값이 코딩되어 있는 걸 확인했으면 아두이노 프로그램을 실행시킨다. 25



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 연습 1 : 보드와 블루투스를 통신해서 전진 모션을 만들어보자. • Sn5 프로그램에서 휴머노이드 전진 모션을 코딩해 보자. • 아두이노 프로그램을 코딩해서 전진 모션만 나오게 프로그램을 코딩해 보자.

< Void loop 안에 키 값을 바꾸도록 한다. >

-

휴머노이드 연결 프로그램에서 ‘void loop’ 부분을 바꿔주도록 한다.

-

( )안에 숫자 순서는 로봇 ID 값, 조종기 값, 속도를 집어넣으면 된다.

-

로봇 ID 값은 0 고정이고 조종기 값은 각자 모션 넣은 조종기 값을 넣어주면 된다.

-

속도 값은 본인이 원하는 속도를 집어넣으면 된다.

26



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 연습 1 : 보드와 블루투스를 통신해서 전진 모션을 만들어보자. • Sn5 프로그램에서 휴머노이드 전진 모션을 코딩해 보자. • 아두이노 프로그램을 코딩해서 전진 모션만 나오게 프로그램을 코딩해 보자.

 실습 결과 • 휴머노이드가 전진모션을 하는 결과를 볼 수 있다.

END LINE

-

프로그램을 작성하고 아두이노 프로그램을 컴파일하면 휴머노이드가 전진하는 모습을 볼 수 있습니다.

-

전진 모션뿐만 아니라 중급에서 만든 모션들의 키 값을 넣으면 다양한 모션들을 볼 수 있습니다.

27



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 2 : 보드와 블루투스를 통신해서 전진 모션을 하게 되면 led가 켜지게 만들어 보자. • Bread board에 led를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 휴머노이드 모션 후에 led가 켜지게 만들어보자.

 실습2 블루투스, led 회로도.

28



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 2 : 보드와 블루투스를 통신해서 전진 모션을 하게 되면 led가 켜지게 만들어 보자. • Bread board에 led를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 휴머노이드 모션 후에 led가 켜지게 만들어보자.

< 전진 달리기 조종기 값 : 0x000002 >

-

먼저 SN5 프로그램에서 ‘휴머노이드 중급’ 시간에 만든 전진 모션을 확인한다.

-

전진 모션 옆에 조종기 값을 확인한다.

-

전진 모션과 조종기 값이 코딩되어 있는 걸 확인했으면 아두이노 프로그램을 실행시킨다.

29



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 2 : 보드와 블루투스를 통신해서 전진 모션을 하게 되면 led가 켜지게 만들어 보자. • Bread board에 led를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 휴머노이드 모션 후에 led가 켜지게 만들어보자.

 실습2 블루투스, led 프로그램 코드

30



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 2 : 보드와 블루투스를 통신해서 전진 모션을 하게 되면 led가 켜지게 만들어 보자. • Bread board에 led를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 휴머노이드 모션 후에 led가 켜지게 만들어보자.

 실습 결과 • 휴머노이드가 전진하면 LED가 켜지는 결과를 볼 수 있다.

END LINE END LINE

-

아두이노 프로그램을 컴파일 하면 휴머노이드가 전진하면서 LED가 켜지는 결과를 볼 수 있다.

-

지금은 LED 하나만 사용해서 코딩했지만 여러 개의 LED를 넣어서 코딩해 보자. 전진 모션뿐만 아니라 다른 모션을 실행했을 때 모션마다 다른 색깔이 나오게 코딩해 보자 31



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 3 : 세그먼트를 이용해서 세그먼트 숫자가 변할 때마다 다른 동작을 하도록 코딩해 보자. • Bread board에 세그먼트를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 세그먼트 숫자가 변할 때마다 동작을 할 수 있게 코딩해 보자.

< 세그먼트 연결 회로도>

32



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 3 : 세그먼트를 이용해서 세그먼트 숫자가 변할 때마다 다른 동작을 하도록 코딩해 보자. • Bread board에 세그먼트를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 세그먼트 숫자가 변할 때마다 동작을 할 수 있게 코딩해 보자.

< 세그먼트 숫자 표기>  실습3 블루투스, 세그먼트 회로도.

33



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 3 : 세그먼트를 이용해서 세그먼트 숫자가 변할 때마다 다른 동작을 하도록 코딩해 보자. • Bread board에 세그먼트를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 세그먼트 숫자가 변할 때마다 동작을 할 수 있게 코딩해 보자.

< 5개의 모션을 코딩 >

-

먼저 SN5 5개의 동작 모션을 코딩하도록 한다.

-

전진 모션은 처음 실습에서 사용했으니 다른 동작을 만들도록 한다.

-

5개의 동작을 만들었으면 5개의 조종기 값을 기억하도록 한다.

34



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 3 : 세그먼트를 이용해서 세그먼트 숫자가 변할 때마다 다른 동작을 하도록 코딩해 보자. • Bread board에 세그먼트를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 세그먼트 숫자가 변할 때마다 동작을 할 수 있게 코딩해 보자.

 실습3 블루투스, 세그먼트 프로그램 코드

35



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 3 : 세그먼트를 이용해서 세그먼트 숫자가 변할 때마다 다른 동작을 하도록 코딩해 보자. • Bread board에 세그먼트를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 세그먼트 숫자가 변할 때마다 동작을 할 수 있게 코딩해 보자.

36



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 3 : 세그먼트를 이용해서 세그먼트 숫자가 변할 때마다 다른 동작을 하도록 코딩해 보자. • Bread board에 세그먼트를 연결해서 코딩해 보자 • 아두이노 프로그램을 통해 세그먼트 숫자가 변할 때마다 동작을 할 수 있게 코딩해 보자.

 실습 결과 • 세그먼트의 숫자가 1에서 5까지 변할 때마다 휴머노이드가 각각의 숫자에 맞춰서 동작하는 결과를 볼 수 있다..

-

아두이노 프로그램을 컴파일 하면 세그먼트 숫자가 변하고 휴머노이드가 움직이는 모습을 볼 수 있다.

-

지금은 5개의 모션만 넣었지만 더 많은 모션을 넣어서 코딩해 보도록 한다.

-

숫자도 5까지만이 아니라 더 많은 숫자를 넣어보도록 한다.

37



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 4 : 초음파 센서를 이용해서 물체가 감지되었을 때 모션하는 프로그램을 코딩해 보자 • 초음파센서를 이용할 때 if문을 사용해서 코딩한다. • 총 3가지의 조건을 줘서 조건마다 다른 동작을 하도록 코딩해 본다.

 실습4 초음파 센서 회로도

38



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 4 : 초음파 센서를 이용해서 물체가 감지되었을 때 모션하는 프로그램을 코딩해 보자 • 초음파센서를 이용할 때 if문을 사용해서 코딩한다. • 총 3가지의 조건을 줘서 조건마다 다른 동작을 하도록 코딩해 본다.

< 공격모션 조종기 값 : 0x000001 >

-

먼저 새로운 동작을 SN5 프로그램에 들어가서 코딩해 본다.

-

새로운 3가지 모션 조종기 값을 확인한다.

-

새로운 모션과 조종기 값을 확인했으면 아두이노 프로그램을 실행시킨다.

39



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 4 : 초음파 센서를 이용해서 물체가 감지되었을 때 모션하는 프로그램을 코딩해 보자 • 초음파센서를 이용할 때 if문을 사용해서 코딩한다. • 총 3가지의 조건을 줘서 조건마다 다른 동작을 하도록 코딩해 본다.

 실습4 초음파 센서 프로그램 코드

40



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 4 : 초음파 센서를 이용해서 물체가 감지되었을 때 모션하는 프로그램을 코딩해 보자 • 초음파센서를 이용할 때 if문을 사용해서 코딩한다. • 총 3가지의 조건을 줘서 조건마다 다른 동작을 하도록 코딩해 본다.

 실습 결과 • 초음파센서 감지 거리마다 휴머노이드가 다른 동작을 하는것을 볼 수 있다..

-

그림과 같이 거리마다 휴머노이드가 다른 동작을 하는 것을 볼 수 있다.

-

센서 거리를 바꿔서 최적의 거리를 찾아서 프로그램을 코딩해 본다.

-

3가지의 조건 말고 2가지의 조건이나 더 많은 조건을 만들어서 다양한 프로그램을 코딩해 본다.

41

4주차

휴먼노이드 임베디드 시스템 심화 미션 • 01. 휴머노이드 실습 • 02. 휴머노이드 심화 실습 - 물류이송 미션 실행

42



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 5 : 모션을 수행할 때 lcd에 글자를 표시하고 모션을 수행하지 않을 때 lcd에 글자가 표시 되지 않도록 프로그램을 코딩해 보자

 실습5 lcd 회로도

43



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 5 : 모션을 수행할 때 lcd에 글자를 표시하고 모션을 수행하지 않을 때 lcd에 글자가 표시 되지 않도록 프로그램을 코딩해 보자

< 창작모션 조종기 값 : 0x000001 >

-

먼저 새로운 동작을 SN5 프로그램에 들어가서 코딩해 본다.

-

새로운 3가지 모션 조종기 값을 확인한다.

-

새로운 모션과 조종기 값을 확인했으면 아두이노 프로그램을 실행시킨다.

44



 휴머노이드 실습 •

휴머노이드와 보드를 연결해서 실습을 해보자.

 실습 5 : 모션을 수행할 때 lcd에 글자를 표시하고 모션을 수행하지 않을 때 lcd에 글자가 표시 되지 않도록 프로그램을 코딩해 보자

45



 아두이노 프로그램 •

아두이노에 대해서 알아보도록 하자.

 실습 5 : 모션을 수행할 때 lcd에 글자를 표시하고 모션을 수행하지 않을 때 lcd에 글자가 표시 되지 않도록 프로그램을 코딩해 보자

 실습 결과 • 휴머노이드가 움직이지 않을 때 lcd에 글자가 표시되지 않고 움직이면 글자가 표시되 는 것을 볼 수 있다.

GO

-

그림과 같이 휴머노이드 로봇이 움직일 때는 lcd에 GO 문구가 출력되고 모션 을 하지 않을 때는 lcd에 아무런 문구도 뜨지 않는 것을 볼 수 있다.

-

지금은 자기 마음대로 글씨를 넣었지만 동작 이름을 정해서 알맞은 동작에 맞는 글씨가 나오게 코딩해 보자

46



 휴머노이드 물류 이송 미션 •

임베디드를 이용해서 물건을 옮기는 동작을 코딩 해보자.

미션 설명 START 라인에서 출발해서 RED 존에 있는 물체를 GREEN 존에 옮기고 END 라인까지 빠르게 통과하면 미션 종료. 1. RED 존에 있는 장애물을 GREEN에 옮긴다. ( 물체는 반드시 들어야 하며 몸으로 밀거나 차서 옮기면 실패 ) 2. 총 2개의 물체를 옮기고 END 라인으로 빠르게 오면 미션 종료 3. 조종기는 사용하지 않고 임베디드 보드만 사용할 것

END

START

47



 휴머노이드 물류 이송 미션 •

임베디드를 이용해서 물건을 옮기는 동작을 코딩 해보자.

END

START 미션 TIP -

휴머노이드 미션 시작 지점을 동일하게 해야 한다. 시작 지점을 정해놓고 모션 코딩을 하는데 매번 코딩할 때마다 시작 지점이 달라지면 동작 위치가 매번 달라지기 때문에 시작 지점은 동일하게 해야 한다.

- 물건을 들어서 옮기고 나서 동작이 중요하다. 물건을 옮기고 물건을 생각 안 하고 모션을 코딩하게 되면 물건의 방해를 받아서 위치가 변할 수 있기 때문에 항상 옮겨놓은 물건을 생각해야 한다.

48

beginning level

Advanced level

㈜ 고영로보틱스

49

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.