아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01...

59
아두이노 융합 실습 가이드 (그래픽 블럭 편집기용) v1.2 목차 1. 아두이노 설치 및 기본 실습 1) SPL-Duino 설치하기 SPL-Duino 보드는 손바닥 컴퓨터로서, 사용자가 프로그램을 작성하여 보드 에 넣어주면 해당 프로그램이 자동으로 실행되는 형태입니다. 현재 SPL-Duino를 포함하여 대부분의 아두이노 보드들은 C언어 기반으로 프 로그램을 작성합니다. 하지만, 이러한 C언어 기반은 초보자들이 접근하기에 는 매우 어려운 언어로서, 언어의 기본 교육이 필요한 문제가 있습니다. 다행히도 SPL-Duino 보드는 자체적인 편집기를 제공하여 별도로 C언어 교육 을 받지 않아도 BASIC 수준의 간단한 스크립트 명령어만 익히면 쉽게 프로 그램을 작성하는 기능을 제공합니다. 고급 사용자들은 아두이노 스케치 프로그램을 다운로드 받아 설치하여 사용 내용 시간(분) 준비물 1. 아두이노 설치 및 기본 실습 50 SPL-Duino 보드 2. 센서 응용 작품 만들기 50 스피커, 거리센서 3. 아두이노 음악예술 융합 50 스피커, 거리센서 4. LED 예술 응용 작품 만들기 50 LED 체인, 골판지, 매직팬 5. 스마트폰을 통한 로봇 제어하기 150 로봇 실습 키트, 스마트폰

Upload: others

Post on 23-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

아두이노 융합 실습 가이드

(그래픽 블럭 편집기용)

v1.2

목차

1. 아두이노 설치 및 기본 실습

1) SPL-Duino 설치하기

SPL-Duino 보드는 손바닥 컴퓨터로서, 사용자가 프로그램을 작성하여 보드

에 넣어주면 해당 프로그램이 자동으로 실행되는 형태입니다.

현재 SPL-Duino를 포함하여 대부분의 아두이노 보드들은 C언어 기반으로 프

로그램을 작성합니다. 하지만, 이러한 C언어 기반은 초보자들이 접근하기에

는 매우 어려운 언어로서, 언어의 기본 교육이 필요한 문제가 있습니다.

다행히도 SPL-Duino 보드는 자체적인 편집기를 제공하여 별도로 C언어 교육

을 받지 않아도 BASIC 수준의 간단한 스크립트 명령어만 익히면 쉽게 프로

그램을 작성하는 기능을 제공합니다.

고급 사용자들은 아두이노 스케치 프로그램을 다운로드 받아 설치하여 사용

내용 시간(분) 준비물1. 아두이노 설치 및 기본 실습 50 SPL-Duino 보드2. 센서 응용 작품 만들기 50 스피커, 거리센서3. 아두이노 음악예술 융합 50 스피커, 거리센서4. LED 예술 응용 작품 만들기 50 LED 체인, 골판지, 매직팬5. 스마트폰을 통한 로봇 제어하기 150 로봇 실습 키트, 스마트폰

Page 2: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

하면 되며, C 언어에 익숙하지 않은 사용자는 SPL 개발툴을 사용하여 간단

한 스크립트로 프로그램을 작성할 수 있습니다.

SPL-Duino 개발툴은 아래의 경로에서 다운로드 가능합니다.

http://www.helloapps.kr/download/

위의 다운로드 링크 중에서 “SPL-Duino 개발툴 (USB 드라이버 및 스크립트

편집기 포함)“을 다운로드 받은후, 압축을 풀고 설치를 진행합니다.

SPL-Duino는 최초 연결시 USB Driver를 필요로 합니다. 바탕화면의 SPL 폴

더를 열고 아래의 파일을 최초 한번만 실행해 줍니다.

Install SPL-Duino USB Driver

이제 USB Driver가 정상적으로 설치되었으며, 보드에 USB 케이블을 연결한

후, 컴퓨터에도 연결하여, 장치가 인식되도록 기다립니다.

2) SPL-Duino 실행하기

SPL-Dunio 보드는 사용자가 프로그램을 넣어 주기 전까지는 아무런 작동을

하지 않는 바보상자에 불과합니다. 이러한 바로상자를 아주 유용한 컴퓨터로

바꾸어 주기 위해서는 사용자가 필요한 프로그램을 작성하여 넣어주어야 하

며, 한번 프로그램을 넣어주면, 컴퓨터와 연결되어 있지 않아도 자체 전원으

로 계속 작동을 하게 됩니다.

Page 3: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

SPL-Duino 보드에 이러한 프로그램을 넣는 과정은 SPL-Duino 편집기 프로그

램을 이용하여 진행합니다.

이제 SPL-Duino 편집기 프로그램을 실행하여 간단한 프로그램을 작성한 후,

보드에 프로그램을 심어서 바보상자가 컴퓨터가 되도록 해 보겠습니다.

SPL-Duino 블록 편집기를 실행하면 위와 같이 스크립트 입력창이 표시됩니

다.

SPL-Duino 편집기에서는 왼쪽의 명령어 창에서 해당 명령어들을 마우스로

드래그하여 필요한 명령어를 입력해 줄 수 있습니다.

SPL-Duino 프로그램은 CPU가 계속 저장된 프로그램을 실행하는 구조로서

다음의 loop 라는 이름의 프로시져를 계속 반복적으로 실행하게 됩니다. 따

라서, 사용자는 필요한 로직이나 기능을 아래의 procedure loop와 end 사이

에 추가해 주어야 해당 기능이 구현이 되게 됩니다.

Page 4: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

3) SPL-Duino에서 Hello World 메시지 출력하기

첫 번째 예제로서, “Hello World!"를 화면에 출력해 보도록 하겠습니다. 우

선 왼쪽 상단의 명령어 항목에서 다음과 같이 문자열 출력 명령어를 마우스

로 드래그하여 추가해 줍니다.

Page 5: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

문자열 출력 명령어의 입력창에 Hello World! 라는 단어를 입력해 줍니다.

이제 1초 간격으로 메시지를 출력하기 위해 “기다리기” 명령어를 추가해

줍니다.

Page 6: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

이제, 프로그램 상단의 실행 버튼을 클릭하여, 프로그램을 실행시켜 봅니다.

기다리기 명령은 입력창 안에 밀리초 단위의 값을 입력받습니다. 위의 값은

1000밀리초, 즉 1초간 명령을 지연시키라는 의미입니다.

실행 전에 SPL-Duino 보드가 연결되어 있지 않으면 프로그램이 실행되지 않

으므로, 보드를 컴퓨터에 연결한 후 실행 버튼을 클릭해 줍니다.

스크립트를 정상적으로 입력했다면, 다음과 같이 약 10~20초의 업로드 과정

을 거친후, 별도로

표시되는 콘솔창에 Hello World 메시지가 표시됩니다.

만약 실행 버튼을 클릭한 후, 아래의 콘솔창이 잠시 보이지 않을 경우, 윈도

우의 작업표시줄을 마우스로 클릭하여, 다시 해당 윈도우가 맨 앞에 표시되

Page 7: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

도록 해 줍니다.

위의 메세지는 비록 컴퓨터 화면에 표시되기는 하지만, 실제적으로 보드에서

실행되는 것이며, 컴퓨터가 결과를 받아서 화면에 표시해 주는 것입니다.

보드와 컴퓨터 간에 연결이 끊기면 위와 같이 결과가 표시되지 않습니다.

Page 8: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

4) 아두이노 프로그램 구조 익히기

□ 아두이노 프로그램의 구조

▪ 아두이노 프로그램은 setup() 함수와 loop() 함수를 기본으로 가집니다.

§ setup() 함수는 전원이 켜진후 최초 한 번만 실행됩니다.

§ loop() 함수는 전원이 켜진 후 계속 반복하여 실행됩니다.

Page 9: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ setup() 함수의 활용

▪ 문자열출력(PrintLine) 명령어를 이용하여 문자열 출력하기

▪ 문자출력(Print) 명령어를 이용하여 문자열 출력하기

Page 10: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

▪ Print 명령어를 이용하여 구구단 출력하기

□ loop() 함수의 활용

▪ 0.1초 마다 1씩 숫자를 증가시켜 출력하기

Page 11: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 디지털 핀의 배치 및 핀 설명

□ 디지털 명령어

▪ 디지털 명령어 구조

디지털쓰기 ( Pin 번호, HIGH )

디지털쓰기 ( Pin 번호, LOW )

□ 보드에 장착된 기본 센서

§ 디지털 13번: LED

§ 아날로그 6번: 조도센서

§ 아날로그 7번: 버튼센서

Page 12: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

▪ 디지털 핀에 전압을 5V로 만들기

▪ 디지털 핀에 전압을 0V로 만들기

□ LED를 1초 간격으로 주기적으로 점별시키기

Page 13: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 실습

▪ SOS 신호를 LED를 이용하여 반복적으로 생성시켜 보시오

영문 국문 부호 영문 국문 부호 영문 국문 부호A ㅗ ․― J ㅎ ․― ― ― S ㅕ ․․․B ㄷ ―․․․ K ㅇ ―․― T ㅓ ―C ㅊ ―․―․ L ㄱ ․― U ㅣ ․․―D ㅡ ―․․ M ㅁ ― ― V ㄹ ․․․―E ㅏ ․ N ㅛ ―․ W ㅂ ․― ―F ㄴ ․․―․ O ㅍ ― ― ― X ㅋ ―․․―G ㅅ ― ―․ P ㅈ ․― Y ㅔ ―․― ―H ㅜ ․․․․ Q ㅐ ― ―․― Z ㅌ ― ―․ ․I ㅑ ․․ R ㅠ ․―․      

Page 14: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

5) 조도 센서를 이용한 아날로그 센서 익히기

□ 아날로그 핀의 배치 및 핀 설명

□ 아날로그 명령어 구조

§ 아날로그 읽기 ( Pin 번호 )

§ 아날로그 쓰기 ( Pin 번호, 값 )

□ 보드에 장착된 기본 센서

§ 디지털 13번: LED

§ 아날로그 6번: 조도센서

§ 아날로그 7번: 버튼센서

Page 15: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 아날로그 센서에서 값 읽어오기

□ 아날로그 조도센서 값 읽어오기

§ 0.1초 간격으로 밝기 값 출력하기

§ 활동1: 가장 어두울 때의 조도값 기록하기

§ 활동2: 가장 밝을 때의 조도값 기록하기

Page 16: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 실습

§ If 문장 이해하기

§ 가장 어두울 때와 밝을 때의 중간 값을 이용하여 조건문을

만들어 보시오.

§ 어두워지면 저절로 LED가 켜지는 기능을 구현하시오.

Page 17: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

2. 센서 응용 작품 만들기

1) 아날로그 거리 센서 익히기

□ 아날로그 핀의 배치 및 핀 설명

□ 아날로그 PSD 거리 센서 연결하기

▪ 아날로그 PSD 거리 센서를 아날로그 0번 핀에 연결한다.

▪ 빨간색 케이블이 보드 안쪽, 파란색 케이블이 보드 바깥쪽으로

향하도록 연결합니다.

Page 18: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 거리 센서값 읽어오기

▪ 아날로그 PSD 거리 센서의 값을 읽은 후 화면에 출력합니다.

▪ 거리를 변화시켜 가면서 변화되는 값을 관찰합니다.

□ 거리 측정 유효거리

▪ PSD 거리 센서의 유효 측정 범위는 10cm ~ 80cm이다.

▪ 구간별 실제 거리에 따른 센서값의 변위를 그래프로 그려봅니다.

□ map() 함수 이해하기

▪ 변환하기 (Map) 명령어를 이용해 거리 값을 반대로 표시해 봅니다.

Page 19: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 실습

▪ map() 함수를 이용하여 실제 거리와 근사한 수치가 출력되도록 로직을

구현하시오.

2) 거리 센서를 이용한 동체인식 장치 구현하기

□ 실습

▪ 움직임을 감지하여 화면에 감지된 상태를 출력하시오

Page 20: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 실습

▪ 움직임이 감지되면 3초간 LED를 켜시오

Page 21: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 실습

▪ 마지막 움직임을 감지한 시점으로 부터 3초간 LED를 켜시오

Page 22: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

3. 아두이노 음악 예술 융합

1) 스피커를 이용한 멜로디 만들기

□ 디지털 핀의 배치 및 핀 설명

□ 스피커 연결하기

▪ 스피커를 디지털 2번 핀에 연결합니다.

▪ 스피커는 극성에 관계없이 연결할 수 있습니다.

Page 23: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 소리를 끄는 방법

▪ 예제 실행 후, 스피커의 소리를 끄기 위해서는 “New”메뉴를

클릭하여 새로운 비어 있는 스크립트 창을 연 후, 실행버튼을

클릭하여, 현재 실행중인 프로그램을 삭제시킵니다.

□ 기본 소리 생성하기

▪ 1000Hz의 소리를 계속 발생시킵니다.

Tone( Pin 번호, 진동수, 시간)

Page 24: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 기본 멜로디 만들기

▪ 1초 간격으로 소리를 변화시켜 봅니다.

□ 기본 소리 간격(Duration) 조절하기

▪ 기다리기(Delay) 수치에 따라 발생하는 결과를 확인합니다.

Page 25: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 실습

▪ 1초간 실행되는 알림 멜로디를 작곡해 봅니다.

▪ 1초간 실행되는 경고 멜로디를 작곡해 봅니다.

□ 실습

▪ 동요 멜로디 작곡해 봅니다.

Page 26: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

2) 스피커와 거리 센서를 응용한 실험 실습 I

□ 아날로그 PSD 거리 센서 연결하기

▪ 아날로그 PSD 거리 센서를 아날로그 0번 핀에 연결합니다.

□ 스피커 연결하기

▪ 스피커를 디지털 2번 핀에 연결합니다.

□ 보안 장치 실습하기

▪ 움직이는 물체가 감지되면 3초간 경보음 울리기

Page 27: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

□ 자동차 후방 감지기 만들어 보기

▪ 거리 값에 따라 점멸 소리를 변화시켜 봅니다.

Page 28: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

3) 스피커와 거리 센서를 응용한 실험 실습 II

□ 아날로그 PSD 거리 센서 연결하기

▪ 아날로그 PSD 거리 센서를 아날로그 0번 핀에 연결합니다.

□ 스피커 연결하기

▪ 스피커를 디지털 2번 핀에 연결합니다.

□ 거리 값에 따라 소리 진동수 변화시키기

□ 디지털 피아노 건반 만들기 실습

▪ A4용지에 피아노 건반 그림을 그리시오

Page 29: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

▪ 건반 위치별 거리 구간 측정하기

▪ if 문장을 이용해 구간별 음계 구현하기

Page 30: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

4. LED 예술 응용 작품 만들기

1) LED 체인 연결 방법

LED 체인은 4핀으로 구성되어 있으며, 빨강, 파랑, 흰색, 녹색선으로 구성되어 있습니다. 보드의 좌측 하단에서 4핀을 확인한 다음 그림과 같이 빨강색 선이 보드의 아래쪽(바깥쪽)에 오도록 한 다음 연결해 줍니다.

Page 31: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

2) 전체 색상을 변경하기

LED 체인은 기본으로 25개의 셀로 구성되며, 하나의 보드에 최대 50개까지 연결이 가능합니다. 그리고 별도의 전원을 연결해 줄 경우에는 더 많은 수의 셀을 추가할 수 있습니다.

LED 체인의 각 셀의 색상은 총 160만 가지의 색상으로 조절될 수 있으며, 전체 색상을 한번에 바로 제어할 수도 있고, 각 개별 셀에 대해 각각 색상을 제어할 수 있습니다.

- SetAllColor(Red 색상값, Green 색상값, Blue 색상값)

전체 색상은 SetAllColor 명령을 사용하며, Red, Green, Blue 가지 색상에 대한 값을 입력받습니다.

각 색상값은 0에서 255 사이의 값을 가집니다.

각 색상별 기본 명령어는 다음과 같습니다.

- LED가 모두 꺼져 있음 : SetAllColor(0, 0, 0)- 빨강색 : SetAllColor(255, 0, 0)- 녹색 : SetAllColor(0, 255, 0)- 파랑색 : SetAllColor(0, 0, 255)- 흰색 : SetAllColor(255, 255, 255)

위의 색상은 대표적인 색상을 의미하며 각 색상값을 자유롭게 변형하여 다양한 색상을 만들어 낼 수 있습니다.

Page 32: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

3) 순차적으로 색상을 변경시키는 예제

1초 간격으로 색상을 변경시키는 예제는 다음과 같습니다.

Page 33: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

4) LED 체인을 점멸 시키는 예제

이번에는 LED 체인을 1초 간격으로 점멸시키도록 하겠습니다. 기존 LED 점멸 로직과 동일합니다.

Page 34: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

5) 조도 센서에 따라 밝기가 변하는 예제

이번에는 조도 센서 값을 읽어온 후 조도 센서 값에 따라 밝기가 변하게 하도록 하겠습니다.

6) 개별 LED 셀의 색상을 변경하기

SetColor 명령을 사용할 경우에는 개별 LED 셀의 색상을 제어할 수 있습니다.

- SetColor(순서, Red, Green, Blue)

SetAllColor 명령과 다른 점은 순서를 지정하는 값이 더 추가되었다는 것입니다.

LED 셀의 순서는 0부터 시작하며, 0이 첫 번째, 1이 두 번째가 됩니다.

Page 35: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

7) 0번째 LED 셀의 색상을 변경하기

첫 번째 (0번) LED 셀의 위치를 지정하여 파랑색으로 점멸시키는 예제는 다음과 같습니다.

Page 36: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

8) 순환 색상 변경하기

각 LED 셀을 순차적으로 색상을 변경해 나가는 예제는 다음과 같습니다.

아래 스크립트는 LED 셀의 개수를 25개로 하여 순차적으로 색상을 변경시키는 예제 입니다.

Page 37: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

9) 순환 무지개 예제 실행하기

LED 예술 조형작품시 활용되는 순환무지개 색상을 표시하는 예제입니다.

골판지에 아래 그림과 같이 각자 그림을 그린 후, LED를 장착하여 작품을

완성해 봅니다.

Page 38: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

5. 스마트폰을 이용한 로봇 제어하기

1) 로봇 DC 모터 연결하기

SPL-Duino 보드에서 DC 모터 단자는 좌측에 있습니다.

보드 바깥쪽 면이 Motor1 단자이고 안쪽에 있는 단자가 Motor2 단자입니다.

Page 39: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

SPL-Duino 로봇은 두 개의 DC 모터 (기어박스 내장)로 구성되어 있으며 다

음과 같이 연결선이 밖으로 나와 있는 것을 볼 수 있을 것입니다.

각각의 선을 Motor1 단자와 Motor2 단자에 연결해 줍니다.

이 때 Motor1과 Motor2는 서로 선의 방향이 반대가 되도록 연결해 줍니다.

모터가 서로 대칭되어 배치되어 있기 때문에 같은 방향으로 선을 연결해 주

면 로봇의 바퀴가 서로 반대로 회전하기 때문입니다.

아래 사진은 로봇 모터 단자를 서로 방향이 반대가 되게 하여 연결한 결과

를 보여 줍니다.

Page 40: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

2) IR 거리 센서 연결하기

SPL-Duino 로봇 키트에는 2개의 IR 센서가 포함되어 있습니다. 이제 이 2개

의 센서를 모터 단자 옆에 있는 아날로그 센서 핀에 연결하여 장애물 감지

또는 라인트레이서 목적으로 활용될 수 있도록 합니다.

우선 두 개의 IR 센서를 다음의 위치에 연결합니다.

센서 2개를 모두 연결합니다.

Page 41: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

보드에 로봇용 바퀴와 두 개의 IR 센서를 모두 연결한 결과는 위와 같습니

다. IR 센서들은 테이프 또는 주변에서 구할 수 있는 재료들을 활용하여 로

봇 프레임에 적당히 고정시켜 줍니다.

Page 42: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

3) 로봇 주행 제어하기

SPL-Duino에서 로봇의 모터를 제어하기 위해서는 주행 제어하기(DriveWrite)

명령을 사용하기만 하면 됩니다.

- DriveWrite(왼쪽 모터 파워값, 오른쪽 모터 파워값)

왼쪽 모터 값 : -255 ~ 255 사이의 값

오른쪽 모터 값 : -255 ~ 255 사이의 값

주행 상태별 명령어 활용 방법은 다음과 같습니다.

- 최대 속도 전진: DriveWrite(255, 255)

- 정지: DriveWrite(0, 0)

- 후진: DriveWrite(-150, -150)

- 제자리 회전: DriveWrite(-150, 150)

모터 파워값을 조절해 주면 로봇의 방향 뿐 만이 아니라 로봇의 속도 또한

제어가 가능합니다.

예를 들어 다음과 같은 경우는 같은 전진이라도 서로 다른 속도로 전진을

하게 됩니다.

- 느린 전진: DriveWrite(120, 120)

Page 43: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

- 보통 속고 전진: DriveWrite(170, 170)

- 빠른 속도 전진: DriveWrite(255, 255)

4) 로봇을 전진 시키기

이제 간단한 스크립트를 작성하여 로봇을 전진시켜 보도록 하겠습니다.

왼쪽 명령어 창에서 주행 제어(DriveWrite) 명령어를 선택하여 추가한 후, 기

다리기를 1000으로 설정해 줍니다.

위의 스크립트를 실행하여 로봇이 어떻게 주행하는 지를 확인해 봅니다.

5) 로봇의 주행 패턴 만들기

이번에는 로봇이 1초 동안 전진한 후 1초간 정지시키는 동작을 반복시켜 보

도록 하겠습니다.

이러한 동작은 Delay 명령을 적절히 활용하여 동작을 연결시켜 줍니다.

Page 44: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

6) 로봇의 후진과 회전 동작 만들기

이번에는 로봇이 1초 동안 전진한 후 1초간 후진, 1초간 회전하는 동작을 반

복시켜 보도록 하겠습니다.

Page 45: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

위의 동작 패턴은 로봇이 장애물을 만났을 때 실행하는 패턴으로서, 장애물

을 만나면 일정 시간 후진한 후 회전했다가 다시 전진하면서 자율 주행을

하게 됩니다.

7) 장애물 감지후 로봇 정지시키기

이제 로봇에 장착된 IR 센서를 활용해 장애물을 감지한 후, 여기에 맞추어

로봇을 제어해 보도록 하겠습니다.

가장 먼저 할 일은 장애물을 만나면 로봇을 정지시키는 것입니다.

Page 46: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

다음과 같이 장애물을 체크하는 로직을 먼저 작성해 줍니다. 센서가 2개 이

므로 아무 센서나 먼저 감지되면 로봇이 정지하도록 할 예정입니다.

이제 stop 변수의 값을 활용해서 stop이 false이면 로봇을 전진시키고, true이

면 로봇을 정지시키는 로직을 추가합니다.

Page 47: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

스크립트를 실행한 후, 로봇이 장애물을 만나면 제자리에 멈추는 지를 확인

합니다.

Page 48: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

8) 자율 주행 로봇 프로그래밍

이번에는 장애물을 만나면 뒤로 후진 후 회전 한 다음 장애물을 만난때 까

지 계속 전진하는 형태의 자율 주행 로직을 작성해 보도록 합니다.

Page 49: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

위의 스크립트를 실행하여 로봇이 지속적으로 자율주행을 하는 지를 확인해

봅니다.

9) 스마트폰으로 SPL-Duino 제어하기

SPL-Duino 보드는 블루투스 통신을 통해 스마트폰과 연동될 수 있습니다.

헬로앱스에서는 SPL-Duino 보드와 블루투스로 통신하기 위한 안드로이드 기

반의 앱을 제공하고 있으며, 안드로이드 기반의 스마트폰 사용자 라면,

Google Play에서 SPL-Duino로 검색하여 앱을 설치할 수 있습니다.

Page 50: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

10) 스마트폰의 블루투스를 통해 보드에 연결하기

스마트폰에서 SPL-Duino 앱을 실행시킨 후, 블루투스 승인요청 다이얼로그

가 표시되면, 예 버튼을 눌러서 블루투스를 켜줍니다. 그 다음으로 앱이 실

행되면, 다음 그림과 같이 예제 파일 메뉴가 표시됩니다.

위의 예제에서 우선 가장 위에 있는 SPL Example 1을 클릭하여 예제 파일을

오픈합니다.

SPL Example1 예제는 두 개의 버튼을 표시하고, 각 버튼을 클릭하면, 각각 1

과 2 값을 화면 하단의 콘솔 박스에 출력하라는 예제입니다.

Page 51: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

위의 창에서 화단 하단의 Run 버튼을 클릭하여 스크립트를 실행시킵니다.

Page 52: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

아직 SPL-Duino 보드가 연결되어 있지 않다면, 위의 화면에서와 같이 장치

를 검색하는 창이 표시될 것입니다. SPL-Duino 보드를 컴퓨터에 연결해 놓

은 상태에서 스마트폰의 화면 하단에 있는 "Scan for devices" 버튼을 클릭

해 줍니다.

잠시 후에, Bluetooth Scan 목록에 SPL로 시작되는 장치가 검색된 것을 볼

수 있게 되며, 이 장치를 클릭해 줍니다.

그 다음으로 해당 장치에 연결하기 위한 PIN 번호 입력창이 표시되는데, 입

력창에 0000을 입력합니다.

PIN 번호를 입력한 후, 확인 버튼을 클릭한 다음, 화면에서 다시 Run 버튼을

클릭해 줍니다.

위의 작업은 보드 연결시 최초 한번만 수행해 주면 되며, 그 다음 부터는 해

당 보드가 스마트 폰에 등록되어 있기 때문에 단지 Run 버튼만 클릭하면 자

Page 53: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

동으로 보드에 연결되게 됩니다.

Run 버튼 클릭후, 연결 대기 메시지와 연결 성공 메시지가 차례로 표시되면,

다음 그림과 같이 정상적으로 버튼이 있는 UI 화면이 표시되면 성공적으로

연결된 것입니다.

위의 화면에서 Start(1) 버튼과 Stop(2) 버튼을 각각 클릭하여 화면에 표시되

는 값을 확인합니다.

Page 54: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

11) 스마트폰에서 전송한 값을 보드에서 수신하기

이전 예제에서는 실제적으로 스마트폰에서 보드로 값을 전송한 것이 아니라,

단지 스마트폰에서 버튼이 눌려졌을 때, 버튼의 이벤트 값을 출력하기만 하

였습니다. 이번에는 버튼이 클릭되었을 때, 해당 값이 보드로 전송되도록 해

보겠습니다.

이 예제는 두 번째에 있는 예제로서 아래 그림과 같이 SPL Example 2 항목

을 선택합니다.

위의 두 번째 예제를 선택하면 다음과 같이 스크립트 예제가 표시됩니다.

Page 55: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

위의 스크립트는 버튼이 클릭되면 BT.Write(value) 명령을 통해 블루투스 통

신으로 해당 값을 보드에 전달하도록 되어 있습니다.

그리고 반대로 보드로 부터 값이 수신되면, 콘솔창에 첫 번째 바이트 값을

표시하게 됩니다.

Run 버튼을 클릭하여 위의 스크립트를 실행 합니다.

자, 이제 스마트폰의 앱에서 버튼을 클릭하기 전에, 보드에 통신 값을 수신

하여 출력하는 예제를 작성해 놓도록 하겠습니다. 아래의 스크립트를 작성한

후에 SPL-Duino 편집기에서 실행시킵니다.

자, 이제 다시 스마트폰으로 가서, Start 버튼 또는 Stop 버튼을 클릭합니다.

Start 버튼을 클릭하면 1값이 보드로 전달되며, Stop 버튼을 클릭할 경우에는

2값이 보드로 전달되는 것을 확인할 수 있을 것입니다.

Page 56: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

12) 스마트폰에서 LED 점멸 제어하기

이제 본격적으로 스마트폰에서 보드의 센서나 출력 장치들을 제어해 보도록

하겠습니다. 가장 먼저 시도해 볼 것은 보드에 장착된 LED를 스마트폰을 이

용해 제어하는 것입니다.

스마트폰에서는 이전 단원에서 실행했던 예제를 그대로 다시 실행합니다.

(SPL Example 2)

SPL 편집기에서 다음과 같이 수신된 값에 따라 LED 점멸 제어 로직을 추가

해 줍니다.

Page 57: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

위의 스크립트를 실행한 후, 스마트폰의 UI에서 Start 버튼 또는 Stop 버튼을

클릭하여, 보드에 있는 LED가 해당 버튼을 클릭함에 따라 점멸되는 지 확인

해 보기 바랍니다.

13) 스마트폰에서 로봇 제어하기

이번 예제에서는 스마트폰의 예제 목록 중에서 4번째에 있는

DirectionalDialog 예제를 실행해 줍니다.

Page 58: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

위의 예제를 선택하면 다음과 같은 스크립트 창이 표시됩니다.

Run 버튼을 클릭하여 위의 스크립트를 실행시키면, 총 11 개의 버튼이 배치

되어 있는 UI 창을 보게 될 것입니다.

Page 59: 아두이노 융합 실습 가이드 (그래픽 블럭 편집기용)vulkan.co.kr › doc_arduino_01 › 01 › 아두이노_융합실습_가이드_블럭편집기_v1.2...1. 아두이노

이제 위의 버튼을 클릭하기 전에, PC의 SPL 편집기 창으로 이동하여 보드에

서 실행될 프로그램을 작성합니다.

위의 버튼에 표시되어 있는 바와 같이 1번부터 5번 까지의 값이 로봇의 주

행 제어를 위해 스마트폰에서 보드로 전달됩니다. 각각의 값에 따른 로봇 제

어는 다음과 같습니다.