co:bit Training Kit 기초강좌 8. 라디오 기능을 배워보자.

micro:bit 라디오에 대해서 알아보자

micro:bit의 라디오 기능은 두 개 이상의 micro:bit 보드 간의 데이터 송수신 기능을 말합니다. 두 개 이상의 micro:bit 보드들을 그룹으로 묶으면, 서로 간의 통신이 가능합니다.

준비물

  • micro:bit 2개
  • 마이크로 USB 케이블 2개
  • 웹브라우저 연결 가능한 PC (맥북, 리눅스 포함) 혹은 크롬북

하드웨어를 준비해 봅시다.

우선 2개의 micro:bit를 준비합니다.

 

2개의 micro:bit를 마이크로 USB 케이블을 이용해 아래 사진과 같이 컴퓨터에 연결해 줍니다.

 

이번 프로젝트에서는 송신용 코드와 수신용 코드를 따로 코딩 및 다운로드 한 후, 2개의 인벤토리에 각각 복사합니다. 2개의 micro:bit 중 송신용 코드가 복사된 micro:bit는 송신용, 수신용 코드가 복사된 micro:bit는 수신용입니다.

 

블럭 에디터로 코딩하기

라디오 기능을 이용할 때는 micro:bit 보드들을 그룹으로 묶어주어야 합니다. 이를 위해서는 그룹 아이디가 필요한데, 보통 숫자 1을 사용합니다. 아래 사진에 나와있는 코드를 통해 micro:bit 보드들을 그룹으로 묶어줄 수 있습니다.

 


코딩과제 1

과제 개요

이번 프로젝트에서는 라디오 기능을 통해 두 개의 micro:bit간의 숫자 송수신을 해 봅시다. 

  1. 코드가 실행되면 두 개의 micro:bit에서 정해진 문자열이 출력된 후, X 모양 아이콘이 출력됩니다.
  2. 송신용 micro:bit에서 A 버튼을 누르면 숫자 1이 송신됩니다.
  3. 수신용 micro:bit에서 숫자 1을 수신하면, LED 스크린에 숫자 1이 출력됩니다.
  4. 송신용 micro:bit에서 B 버튼을 누르면 숫자 2가 송신됩니다.
  5. 수신용 micro:bit에서 숫자 2를 수신하면, LED 스크린에 숫자 2가 출력됩니다.

정확히 코딩이 되었다면 다음과 같이 동작할 것입니다.

 

블럭코딩의 흐름도 (송신)

 

블럭코딩의 흐름도 (수신)

 

블럭코딩 하기 (송신)

프로젝트에 사용될 블럭 코드들을 살펴봅시다. 완성된 전체 코드는 맨 아래에 있습니다.

 

“시작하면 실행” 블럭의 코드는 다음과 같습니다. 코드가 실행되면 “Radio TX!” 라는 문자열과 X 모양 아이콘이 출력됩니다. 이후 라디오 그룹을 1로 설정해 줍니다.

 

A 버튼을 누르면 숫자 1을 출력함과 동시에 숫자 1을 수신용 micro:bit로 전송합니다. 전송 후 0.5초 간 일시정지 한 뒤, X 모양 아이콘을 출력합니다.

 

B 버튼을 누르면 숫자 2를 출력함과 동시에 숫자 2를 수신용 micro:bit로 전송합니다. 전송 후 0.5초 간 일시정지 한 뒤, X 모양 아이콘을 출력합니다.

 

블럭코딩 하기 (수신)

프로젝트에 사용될 블럭 코드들을 살펴봅시다. 완성된 전체 코드는 맨 아래에 있습니다.

 

“시작하면 실행” 블럭의 코드는 송신용 코드와 거의 동일합니다. 코드가 실행되면 “Radio RX!” 라는 문자열과 X 모양 아이콘이 출력됩니다. 이후 라디오 그룹을 1로 설정해 줍니다.

 

“receivedNumber” 라는 변수를 설정하고, 라디오 통신을 통해 숫자를 수신하면, receivedNumber 변수에 수신한 숫자가 저장됩니다. 수신한 숫자(receivedNumber 변수에 저장된 숫자) 를 출력한 후, 0.5 초 일시정지한 뒤 X 모양 아이콘을 출력합니다.

 

전체 프로젝트 (송신)

전체 프로젝트 (수신)


코딩과제 2

과제 개요

이번 프로젝트에서는 송신용 micro:bit에 연결된 초음파센서를 이용해 측정한 거리를 수신용 micro:bit로 전송, 출력해 봅시다.

  1. 코드가 실행되면 두 개의 micro:bit에서 정해진 문자열이 출력된 후, X 모양 아이콘이 출력됩니다.
  2. 송신용 micro:bit에 연결된 초음파센서를 이용해 물체까지의 거리를 측정합니다.
  3. 측정한 값을 수신용 micro:bit로 전송 및 출력합니다.

정확히 코딩이 되었다면 다음과 같이 동작할 것입니다.

 

 

블럭코딩의 흐름도 (송신)

 

블럭코딩의 흐름도 (수신)

 

블럭코딩 하기 (송신)

프로젝트에 사용될 블럭 코드들을 살펴봅시다. 완성된 전체 코드는 맨 아래에 있습니다.

“시작하면 실행” 블럭의 코드는 다음과 같습니다. 코드가 실행되면 “Radio-ultra-tx!” 라는 문자열과 X 모양 아이콘이 출력됩니다. 이후 라디오 그룹을 1로 설정해 줍니다.

 

“무한반복 실행” 블럭의 전체 코드는 다음과 같습니다. 초음파 센서의 읽기 값을 “거리” 변수에 저장하고, 이를 출력함과 동시에 전송한 후 500ms 간 정지했다가 X모양 아이콘을 출력합니다.

 

블럭코딩 하기 (수신)

“시작하면 실행” 블럭의 코드는 다음과 같습니다. 문자열이 출력된 뒤, 라디오 그룹을 1로 설정하고, X모양 아이콘을 출력합니다.

 

송신용 micro:bit에서 송신한 값을 수신하면, 수신 받은 값, 즉 거리 변수를 출력하고, 500ms동안 기다린 뒤 X모양 아이콘을 출력합니다.

 

전체 프로젝트

블럭코딩의 흐름도 (수신)

전체 프로젝트 (수신)


코딩과제 3

과제 개요

이번 프로젝트에서는 라디오 통신을 이용해 DC모터를 돌려봅시다.

  1. 코드가 실행되면 두 개의 micro:bit에서 정해진 문자열이 출력된 후, X 모양 아이콘이 출력됩니다.
  2. A버튼을 누르면 송신용 micro:bit에서 숫자 1을 전송하며, 왼쪽 방향 화살표 아이콘이 출력됩니다.
  3. B버튼을 누르면 송신용 micro:bit에서 숫자 2를 전송하며, 오른쪽 방향 화살표 아이콘이 출력됩니다.
  4. A버튼과 B버튼을 동시에 누르면 송신용 micro:bit에서 숫자 3을 전송하며, X모양 아이콘이 출력됩니다.
  5. 수신용 micro:bit에서 숫자 1을 수신받으면, DC모터를 반시계 방향으로 50%로 회전합니다.
  6. 수신용 micro:bit에서 숫자 2를 수신받으면, DC모터를 시계 방향으로 50%로 회전합니다.
  7. 수신용 micro:bit에서 숫자 3을 수신받으면, DC모터를 멈춥니다.

정확히 코딩이 되었다면 다음과 같이 동작할 것입니다.

 

 

블럭코딩의 흐름도 (송신)

 

블럭코딩의 흐름도 (수신)

 

블럭코딩 하기 (송신)

프로젝트에 사용될 블럭 코드들을 살펴봅시다. 완성된 전체 코드는 맨 아래에 있습니다.

“시작하면 실행” 블럭의 코드는 다음과 같습니다. 코드가 실행되면 “Radio Motor TX!” 라는 문자열과 X 모양 아이콘이 출력됩니다. 이후 라디오 그룹을 1로 설정해 줍니다.

 

“A 버튼 누르면 실행” 블럭의 코드는 다음과 같습니다. A 버튼을 눌렀을 때, 숫자 1을 전송하고, 왼쪽 방향을 가리키는 화살표 모양 아이콘을 출력합니다.

 

“B 버튼 누르면 실행” 블럭의 코드는 다음과 같습니다. B 버튼을 눌렀을 때, 숫자 2를 전송하고, 왼쪽 방향을 가리키는 화살표 모양 아이콘을 출력합니다.

 

“A+B 버튼 누르면 실행” 블럭의 코드는 다음과 같습니다. 두 버튼을 동시에 눌렀을 때, 숫자 3을 전송하고, X모양 아이콘을 출력합니다.

 

블럭코딩 하기 (수신)

“시작하면 실행” 블럭의 코드는 다음과 같습니다. 코드가 실행되면 “Radio Motor RX!” 라는 문자열과 X 모양 아이콘이 출력됩니다. 이후 라디오 그룹을 1로 설정해 줍니다.

 

“라디오 수신하면 실행” 블럭의 전체 코드는 다음과 같습니다.

 

“라디오 수신하면 실행” 블럭의 코드를 살펴봅시다. 수신받은 숫자가 1이면, 오른쪽 방향을 가리키는 화살표 모양 아이콘을 출력함과 동시에 DC모터를 반시계 방향으로 50%로 출력합니다.

 

수신받은 숫자가 2일 경우, 왼쪽 방향을 가리키는 화살표 모양 아이콘을 출력함과 동시에 DC모터를 시계 방향으로 50%로 출력합니다.

 

수신받은 숫자가 3일 경우, X모양 아이콘을 출력함과 동시에 DC모터의 회전을 멈춥니다.

 

전체 프로젝트 (송신)

전체 프로젝트 (수신)