로보링크 서포터 사이트> 로보링크 쇼핑몰 바로가기>

윈도우 : 루트 디렉토리 바로 아래에 설치를 권장합니다. (예 : D:RBCodrone)
맥os : 패키지 처음 실행 시 Finder>다운로드>우클릭하여 실행을 권장합니다.

포트의 설치 여부는 장치 관리자>포트(COM&LPT) 탭에서 확인할 수 있습니다.
(맥의 경우 아두이노 실행>툴>포트 탭에서 확인 가능)

위의 다운로드에서 문제가 발생한 경우
웹사이트를 통해 USB드라이버를 직접 다운로드 할 수 있습니다.

구분 목차
1. 핀맵 01. 핀맵(pin Map)이란
02. 핀맵(pin Map) 사용하기
2. 출력 : LED 01. 디지털 출력이란
02. 디지털 핀 블록 사용하기
03. 예제
04. 연습문제
3. 입력 : 디지털
(0,1) 센서
01. 디지털 핀 입력이란
02. 디지털 읽기 블록 사용하기
03. 딥 스위치 값 읽어오기
04. 7조 센서 값 읽어오기(디지털 핀 읽기 블록을 사용하기)
05. 2진수와 10진수
06. 7조 센서 값 읽기(7조 센서값 읽기 블록 사용)
07. 예제
08. 연습문제
4. 입력 : 아날로그
(0~1023) 센서
01. 아날로그(analog) 블록 사용하기
02. 예제
03. 연습문제

제어기에는 여러가지 장치들이 있습니다. 이 장치들은 모두 마이크로프로세서에 있는 핀들 중 하나와 연결되어 있어서 마이크로프로세서가 이 핀들을 통해 장치들을 제어할 수 있게 해줍니다.

따라서 제어기에 연결된 어떤 장치들을 제어하고 싶다면 먼저 어떤 장치가 몇 번 핀에 연결되어 있는지 확인할 수 있어야 합니다. 이러한 정보를 담은 것을 핀맵이라고 합니다. 스마트 인벤터 보드의 핀맵은 아래와 같습니다.


핀맵이란 ‘지도’처럼 제어기에 담긴 핀에 대한 정보를 한 눈에 알아볼 수 있도록, 그림이나 문서로 작성한 것들을 의미합니다. 핀맵은 특히 소프트웨어를 코딩할 때에 큰 도움이 됩니다.


예를 들어 아래의 그림처럼 11번부터 18번은 각각 LED에 연결되어 있습니다. 만약 보드 맨 왼쪽의 LED를 켜거나 끄고 싶다면 아래와 같이 11번 핀에 명령을 내리면 됩니다.


디지털 출력이란 한 마디로 On(켜짐), Off(꺼짐) 이렇게 두 가지 신호만으로 표현하는 것을 의미합니다. 스마트 인벤터 보드에서 디지털 출력을 잘 보여주는 장치는 전면 8개의 LED 디스플레이입니다. 아래 그림처럼 11번부터 18번까지의 핀이 LED 디스플레이를 제어하는 데 사용됩니다.


로킷 브릭은 디지털 핀 블록을 사용하여 핀의 상태를 ‘참’의 상태로 설정했을 때 출력이 On 되면서 LED가 켜집니다. 아래 블록을 실행하면 11번 핀에 연결된 LED를 켜 줍니다.

또한 핀의 상태를 ‘거짓’으로 설정했을 때에는 출력이 Off가 되면서 LED가 꺼집니다.

동시에 여러 개의 LED를 켜거나 끌 때에는 연속적으로 블록을 결합시켜 사용하면 됩니다. 아래의 예제는 1초 동안 3개의 LED를 동시에 켠 뒤, 꺼질 때에도 함께 꺼지는 예제입니다.


예제 1. 스마트 인벤터 보드의 LED 장치들 중 11번과 18번에 동시에 불이 들어와서 1초 간격으로 깜빡일 수 있도록 스크립트를 작성해 봅시다.

예제 2. 스마트 인벤터 보드의 앞부분에 있는 가운데 센서를 감지했을 때 8개의 LED가 모두 켜지게 해 봅시다. 감지되지 않은 경우에는 8개의 LED가 전부 꺼지게 합니다.

예제 3. 스마트 인벤터 보드의 8개 LED를 왼쪽부터 0.1초 간격을 주어 차례대로 불을 켭니다. 8개의 LED가 전부 켜지면, 그 즉시 모두 꺼지고 다시 처음과 같은 동작을 반복하게 하여 봅시다.


1 : 스마트 인벤터 보드의 앞부분에 있는 세 개의 센서를 사용합니다. 왼쪽 센서를 감지하면 가장 왼쪽에 있는 LED가 켜지고 가운데 센서를 감지하면 가운데 있는 두 개의 LED가 켜지며 오른쪽 센서를 감지하면 가장 오른쪽에 있는 LED가 켜질 수 있게 해봅시다.

2. LED 에니메이션 : 스마트 인벤터 보드의 LED 불빛이 왼쪽부터 오른쪽으로 순서대로 켜진 후, 다시 오른쪽부터 왼쪽으로 켜지는 동작을 계속 반복할 수 있게 스크립트를 작성해 보세요.

3. 스테이지 버튼으로 LED 제어: 스테이지에 아래와 같은 세 개의 사각형이 있습니다. 사각형들을 마우스로 클릭하면 사각형의 색이 파랗게 변하는 동시에 스마트 인벤터 보드의 LED가 켜졌다가 마우스 버튼을 떼면 LED가 다시 꺼지게 해 봅시다. 맨 왼쪽 사각형을 클릭하면 맨 왼쪽 LED가 켜지고 가운데 사각형을 클릭하면 가운데 두 개의 LED가 꺼지고 오른쪽 사각형을 클릭하면 맨 오른쪽 LED가 켜지게 해 봅시다.

4. LED로 레벨 표시 : 그림과 같이 스테이지에 슬라이더를 구성합니다.
                            슬라이더의 구성은 아래와 같습니다.

1) 가운데 레버는 마우스를 따라 움직입니다. 그러나 레버가 양끝에 위치하면 마우스를 따라 움직이지 않고 멈추어 있어야 합니다.

2) 옆 그림처럼 그림처럼 레버가 오른쪽으로 움직이면 움직인 만큼 LED 불빛이 늘어납니다. 다시 레버가 왼쪽으로 움직이면 움직인 만큼 LED 불빛이 줄어들게 됩니다.

3) 레벨 미터에 눈금이 7개가 표시되어 있습니다. 각 눈금과 레버가 만났을 때 LED 불빛의 변화가 있습니다. 마우스의 움직임에 따라 레버와 LED가 변화할 수 있게 스크립트를 작성해봅시다.


디지털 입력이란 제어기에 연결된 어떤 장치나 센서의 상태를 오직 On(켜짐), Off(꺼짐) 두 가지 값으로만 표현하여 입력되는 것을 의미합니다. 어떤 장치나 센서의 상태가 0에서부터 1023까지의 숫자의 값으로 표현되는 아날로그 입력값과는 달리 오직 켜짐과 꺼짐, 0과 1, 혹은 참과 거짓으로만 표현됩니다.
스마트 인벤터 보드에서 디지털 핀 입력을 가장 잘 보여줄 수 있는 장치는 보드 뒷면의 7조 센서와 보드 전면에 부착된 3개의 딥스위치(dip switch)입니다.

로킷 브릭에서 접근할 수 있는 디지털 핀은 딥스위치와 연결된 8번 ~ 10번 핀, 그리고 7조 센서와 연결된 11번 ~ 18번 핀 등입니다. 이 핀들은 모두 각각 핀에 연결된 장치들의 상태를 ‘참’ 혹은 ‘거짓’으로 알려줍니다.


디지털 핀의 상태를 알기 위해서는 로킷 카테고리에서 아래와 같은 블록을 사용합니다. 블록에서 알고 싶은 핀 번호를 선택한 후 블록을 클릭만 하더라도 말풍선으로 핀의 상태를 알려줍니다.

아래와 같이 스크립트 하면 계속해서 지정한 핀 값의 상태를 스프라이트의 말풍선으로 알려줍니다.


딥스위치의 1번은 8번 핀, 2번은 9번 핀, 3번은 10번 핀과 연결되어 있습니다. 만약 3번 스위치를 내리면 10번 핀의 상태는 ‘On’이 되고 이 때 디지털 값 읽기 블록을 사용하면 ‘참’으로 핀의 값이 표현됩니다. 반대로 스위치를 올리면 핀의 상태는 ‘Off’가 되고 핀의 값은 ‘거짓’으로 표현됩니다.

또한 아래와 같이 스크립트를 작성하면 3개 딥스위치의 변경되는 값을 스테이지에서 계속 확인할 수 있습니다.


7조 센서값을 읽는 방법은 두 가지가 있습니다. 첫 번째 방법은 딥스위치처럼 ‘디지털 값 읽기’블록을 사용하여 7조 센서를 이루는 각 센서의 상태를 읽어오는 것이며, 두 번째 방법은 7조 센서 값 읽기 블록을 사용하여 7개의 센서값을 한 번에 읽어오는 방식입니다. 아래 그림처럼 12번 핀 센서를 감지한 상태에서 디지털 값 읽기 블록을 실행하면 ‘참’으로 핀의 상태를 알려줍니다. 감지되지 않은 상태에서는 디지털 값 읽기 블록은 핀의 상태를 ‘거짓’으로 알려줍니다.


7조 센서값 전체를 한 번에 읽어야 할 때 편리하게 사용할 수 있습니다. 다만 이 블록은 7조 센서값을 8자리 2진수로 계산한 후에 다시 10진수로 변환된 값을 알려주기 때문에 2진수에 대한 지식이 필요합니다.
2진수는 0과 1로만 나타낸 수입니다. 어떤 숫자의 값이 1보다 큰 경우에는 자리 올림을 합니다. 예를 들어 2를 2진수로 표현하면 10이 되며 3을 2진수로 표현하면 11이 됩니다. 만약 1100111과 같은 큰 자릿수의 2진수인 경우에는 아래와 같이 계산하면 편리합니다.

7조 센서값 역시 이처럼 2진수의 형태로 계산됩니다. 예를 들어 7개 중 18번 센서와 16번 센서가 감지된 경우 아래와 같이 2진수로 나타내면 10100000이며 이것을 10진수로 나타내면 160이 됩니다.

7조 센서 중 가운데 센서만 감지된 경우는 14번과 15번 핀이 동시에 1(참)로 상태가 변화합니다. 14번과 15번 두 개의 핀이 가운데에 위치한 하나의 센서에 연결되어 있기 때문입니다. 따라서 가운데 센서가 감지되었을 때의 값은 아래와 같습니다.

7조 센서 중 가운데 센서와 13번, 12번, 11번 센서가 감지된 경우를 이진수로 나타내면 11111이며 아래와 같이 십진수로 계산하면 31이 됩니다.


7조 센서에 물체나 손을 감지시킨 후 7조 센서값 읽기 블록을 클릭하여 값을 알아봅시다.


예제 1. 딥스위치 3번을 올리면 스프라이트의 말풍선에 ‘Switch On!’이라는 메시지가 나오고 딥스위치를 내리면 ‘Switch Off’ 라는 메시지가 나오게 스크립트를 작성해 봅시다.

도움말 : 딥스위치 3번에 해당하는 핀 번호는 10번 입니다. 10번 값이 ’거짓’ 이면 스위치가 아래로 내려간 상태이고 반대로 ‘참’이면 스위치가 위로 올라간 상태입니다.

예제 2. 딥스위치 1번을 올리면 아래 그림과 같이 맨 왼쪽(11번) LED가 켜지고 스위치를 내리면 LED가 꺼지게 해 봅시다. 마찬가지로 딥스위치 2번을 올리거나 내리면 가운데 LED(14, 15번) 2개가 켜지거나 꺼지고 딥스위치 3번을 올리거나 내리면 맨 오른쪽(18번) LED가 켜지거나 꺼지도록 스크립트를 작성해 봅시다.

도움말 : 스위치의 상태는 계속 고정되므로 스위치를 위로 올릴 경우 디지털 값은 ‘거짓’이 되고 조건 블록의 ‘만약’ 아래의 스크립트 부분이 실행 됩니다.
딥스위치를 아래로 내리면 디지털 값 읽기 블록의 값은 ‘참’이 됩니다. 따라서 ‘만약 ~ 라면’ 블록에서 ‘하단의 아니면’ 아래에 연결된 블록들이 실행됩니다.

예제 3. 7조 센서값을 이용하여 18번 핀에 연결된 센서가 감지되면 ‘도’ 음이 연주되고, 17번 핀에 연결된 센서가 감지되면 ‘레’ 음이 연주되게 해봅시다. 이렇게 각 센서가 감지될 때 마다 각각의 음이 연주될 수 있는 스크립트를 작성해 보세요.

도움말 : 아무것도 감지되지 않은 상태에서 7조 센서의 값은 0 입니다. 스마트 인벤터 보드를 뒤집은 상태에서 가장 왼쪽만을 감지했을 때는 7조 센서의 값이 2^7 = 128이 됩니다. 왼쪽에서 두 번째 센서의 값을 감지했을 때는 2^6 = 64가 되는 것입니다.
여기서 가운데 센서는 하나만을 감지하더라도 마치 두 개의 센서가 감지된 것처럼 2^4(16) + 2^3(8) = 24의 값이 출력된다는 점을 유의하기 바랍니다.
이것은 8개의 핀을 7개의 센서에 연결해서 사용하도록 설계되어 있어 가운데 센서가 2개의 핀을 차지하기 때문입니다.

: 2^7 = 128
: 2^6 = 64
: 2^5 = 32
: 2^4 + 2^3 = 24
: 2^2 = 4
: 2^1 = 2
: 2^0 = 1

예제 4. 그림과 같은 레이싱 카 모양의 스프라이트가 있습니다(racingcar.png를 가져오기). 7조 센서의 왼쪽 센서(11번)를 감지시키면 왼쪽으로 회전하고 오른쪽 센서(18번)를 감지시키면 오른쪽으로 회전합니다. 또한 11번과 18번을 동시에 감지시키면 스프라이트가 전진할 수 있도록 스크립트를 작성해 봅시다.

도움말 : 이 예제에서는 센서를 동시에 두 개 이상 감지시키는 경우, 어떻게 처리할 것인지 잘 보여줍니다. 맨 왼쪽 센서의 7조 센서값은 128이고 맨 오른쪽 센서의 7조 센서값은 1이므로 두 개를 동시에 감지시키면 128+1 즉, 129가 7조 센서값이 됩니다. 이러한 원리로 7조 센서 중 동시에 여러 개의 센서를 감지시키는 경우를 구별할 수 있습니다.


1. 그림과 같이 스테이지에 1번부터 3번까지 숫자가 적혀 있습니다. 각 숫자는 별개의 스프라이트로 이루어져 있습니다. 여기에서 특정 숫자의 딥스위치를 올리면 스테이지 위에서 해당하는 숫자의 색상이 바뀌도록 해 봅시다. 그리고 스위치를 내리면 원래의 색상으로 돌아올 수 있도록 합니다.

2. 아래 그림처럼 스마트 인벤터 보드의 7조 센서를 폭이 약 2cm 정도인 검은 선에 감지시키며 좌우로 움직입니다. 이 때 스테이지에 나타난 검은 선 역시 7조 센서가 선을 감지하는 상태에 따라 좌우로 움직일 수 있도록 하여 봅시다. 예를 들어 12번 센서가 선을 감지하였다면 스테이지에 있는 선도 가운데를 기준으로 해서 12번 센서의 위치만큼 왼쪽으로 이동할 수 있도록 합니다.

3. 스마트 인벤터 보드의 7조 센서 중 11번과 12번 그리고 17번과 18번을 사용하여 타이밍게임을 만들어 봅시다. 스테이지의 스프라이트가 특정 번호를 부르면 7조 센서 중 그 번호에 맞는 센서를 빨리 감지시키는 게임입니다. 만약 1초 내에 감지시키지 못하면 실패했다는 메시지가 뜨도록 합시다.


스마트 인벤터 보드의 앞면 3개의 센서에 물체나 손을 감지하면 제어기는 감지 상태에 따라 0에서 부터 1023 사이의 값으로 표현합니다. 물체가 센서에 가까이 있으면 0에 가까운 값을 출력하고, 물체가 멀리 있으면 1023에 가까운 값을 출력합니다. 이처럼 센서의 감지 상태에 따라 제어기가 연속적인 값을 출력하는 것을 아날로그 값 출력이라 합니다.
아날로그 출력이 가능한 핀은 19번부터 26번까지이며, 보드 전방의 세 개 센서는 아래 그림처럼 19번부터 21번 핀에 연결되어 있습니다.

아래와 같이 아날로그 값 블록의 핀 값을 20번으로 한 후 단순히 블록을 클릭해 주면 말풍선으로 센서값이 출력됩니다. (제어기와 로킷 브릭이 먼저 연결되어 있어야 합니다)

또한 아래와 같이 스크립팅하는 방법도 있습니다. 변수를 만든 후 아날로그 값을 저장한 다음 말하기 블록을 사용하여 변숫값을 나타내 줍니다. 이렇게 하면 계속해서 센서의 값이 스프라이트 말풍선으로 출력됩니다.


예제 1. 스마트 인벤터 보드 앞부분에 있는 가운데 센서(20번) 값을 계속해서 스프라이트의 말풍선으로 나타날 수 있도록 스크립트를 작성합니다. 작성한 스크립트를 실행한 후 이 센서에 손이나 물체를 감지시켜 봅시다.

도움말 : ‘아날로그 값 읽기’ 블록을 말하기 블록과 결합하여 사용하였습니다. 무한 반복을 해야 계속 현재 값이 보여질 수 있습니다. 이 예제에서는 변수 블록을 사용하지 않았다는 것에 유의하세요.

예제 2. 스마트 인벤터 보드 앞부분에 있는 센서 3개 값을 스테이지에 표시하고 3개의 센서들에 손이나 물체를 감지시켜 봅시다.

도움말 : 먼저 3개의 센서값을 저장할 수 있는 변수 3개를 만들어 줍니다. 이 3개의 변수에 무한 반복 블록을 사용하여 계속 센서값들을 읽어들입니다.

예제 3. 스마트 인벤터 보드의 앞부분 가운데 센서를 손으로 감지할 때 마다 스테이지에 있는 캐릭터가 튀어오르게 해보세요. 손을 떼면 다시 원래 자리로 돌아와야 합니다.

도움말 : 먼저 3개의 센서값을 저장할 수 있는 변수 3개를 만들어 줍니다. 이 3개의 변수에 무한 반복 블록을 사용하여 계속 센서값들을 읽어들입니다.


1. 스마트 인벤터 보드의 앞부분 가운데 센서를 감지하면 미사일이 발사되듯이 스프라이트가 스테이지의 아래쪽에서 위로 빠르게 올라갈 수 있도록 스크립트를 작성해 봅시다.

2. 스테이지에 캐릭터 스프라이트를 불러옵니다. 스마트 인벤터 보드의 앞면 왼쪽 센서를 감지하면 스프라이트가 왼쪽으로 이동하고 오른쪽 센서를 감지하면 오른쪽으로 이동하며, 가운데 센서를 감지하면 점프하는 효과를 만들 수 있도록 스크립트를 작성해봅시다.

3. 스마트 인벤터 보드의 앞쪽에 있는 세 개의 센서 중 가운데 센서값을 감지하면 스테이지에 센서값을 막대 그래프의 길이로 나타내어주는 스크립트를 작성해 보세요.

4. 스테이지에 아래 그림처럼 인벤터 보드의 앞부분에 있는 3개의 센서마다 말풍선으로 계속 센서값이 출력되도록 합시다. (smartInventor.png 사용). 만약 변수를 사용할 경우 사용자의 혼동이 없도록 스테이지의 변수 컨트롤은 보이지 않게 해주세요.