co:bit Training Kit 기초강좌 11: IR 센서를 배워보자.

IR 센서란 무엇일까?

IR 센서는 아래 사진과 같이 생긴 장치로, 적외선 센서를 말합니다. 적외선 센서는 주변 장애물을 인식하는데 사용됩니다.

준비물

이번 강좌의 준비물은 다음과 같습니다.

  • co:bit Training Kit 베이스 보드 (micro:bit 장착한 상태)
  • 마이크로 USB 케이블
  • 웹브라우저 연결 가능한 PC (맥북, 리눅스 포함) 혹은 크롬북
  • IR 센서(co:bit Training Kit에 포함되어 있습니다.)

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

우선 co:bit 베이스보드에 micro:bit를 장착합니다. 장착을 할 때는 micro:bit의 LED와 버튼 부분이 위로 가게 합니다.

 

PC와 micro:bit, co:bit 베이스보드를 각각 USB 케이블로 연결합니다. 아래 사진과 같이 연결하면 됩니다. 그리고 PC에서 웹브라우저를 실행합니다. 웹브라우저는 마이크로소프트의 에지 혹은 익스플로러, 구글의 크롬 등 어떤 브라우저라도 상관이 없습니다.

 

이번에는 IR 센서를 co:bit 베이스보드에 연결합니다. 연결할 때 아래 사진의 설명을 그대로 따라야 합니다. 우선 IR 센서를 준비합니다.

 

co:bit 베이스보드를 자세히 보면 왼쪽 상단에 “IR Sensor”라고 적힌 핀단자를 볼 수 있습니다. 이 단자에 IR 센서를 연결합니다.

 

연결할 때, 아래 사진처럼 IR 센서의 VCC 핀에 연결된 전선이 co:bit 베이스보드의 흰색 사각형이 위치한 부분에 연결되도록 합니다.

 

위 사진에서 VCC 핀에 연결된 흰색 전선이 co:bit 베이스보드의 흰색 사각형이 위치한 부분에 연결된 것을 볼 수 있습니다. (단, 굳이 흰색 전선일 필요는 없습니다.) 이와 같이 연결했다면 하드웨어 준비가 완료된 것입니다.

 


코딩과제 1:  IR센서로 물체를 감지해 보자. 

과제 개요

이번 프로젝트에서는 IR 센서를 이용해 주변 물체를 감지해 봅시다.

  1. 코드가 실행되면 “IR Sensor” 라는 문자열이 출력됩니다.
  2. IR 센서 주변에 물체가 없을 경우 경우 X 모양 아이콘이 출력됩니다.
  3. IR 센서에 물체를 가까이 가져가면 O 모양 아이콘이 출력됩니다.

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

 

블럭코딩의 흐름도

 

블럭코딩 하기

이번 프로젝트는 코딩을 하기 위해서 특별한 프로젝트를 사용해야 합니다. 조이스틱을 읽는 확장블럭이 사용되었기 때문입니다. 다음에 링크된 블럭 에디터의 프로젝트를 사용하시기 바랍니다.

https://makecode.microbit.org/_0T3bJDhsEhrC

위 링크로 가면 블럭 에디터에 빈 프로젝트가 화면에 나타날 것입니다. 하지만 다른 비어있는 프로젝트와는 달리 “Cobit-base”라는 확장블럭이 있습니다. 이 “Cobit-base” 확장블럭은 다음과 같습니다.

 

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

“시작하면 실행” 블럭의 코드는 다음과 같습니다. 코드가 실행되면, “IR Sensor” 라는 문자열과 X 모양 아이콘을 출력합니다.

 

“무한반복 실행” 블럭의 코드는 다음과 같습니다.

 

“무한반복 실행” 블럭 내 코드들을 살펴봅시다. 우선 “센서값”이라는 변수를 선언하고, IR 센서의 입력값을 센서값 변수에 저장합니다.

 

센서값 변수에 저장된 숫자가 1이면 X 모양 아이콘을 출력합니다.

 

센서값 변수에 저장된 숫자가 1이 아니면, O 모양 아이콘을 출력합니다.

 

전체 프로젝트


코딩과제 2: 자동문을 만들어 보자.

과제 개요

이번 프로젝트에서는 IR 센서와 서보모터를 이용한 자동문을 만들어 봅시다. IR 센서가 사람의 접근을 감지하면 서보모터를 통해 문을 여는 방식입니다.

  1. 코드가 실행되면 “Autodoor” 이라는 문자열과 함께 웃는 얼굴 모양 아이콘이 출력됩니다.
  2. IR 센서가 사람의 접근을 감지하면 ♥ 모양 아이콘 출력과 함께 서보모터의 180° 회전을 통해 자동문을 엽니다.
  3. 문이 열린 후 2초 동안 기다렸다가 서보모터 5° 회전을 통해 자동문을 닫습니다.
  4. IR 센서가 사람의 접근을 감지하지 못하면 X 모양 아이콘이 출력됩니다.

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

 

하드웨어 준비하기

이번 프로젝트에서는 co:bit 베이스보드에 IR 센서 뿐 아니라 서보모터를 연결해야 합니다. 연결 방식은 앞서 IR 센서 연결을 통해 설명한 방식과 동일합니다. 아래 사진과 같이 연결해 주면 됩니다.

 

 

동영상처럼 종이 공작을 이용해 자동문을 만들면 더욱 실감나는 실습을 할 수 있습니다.

 

블럭코딩의 흐름도

 

블럭코딩 하기

이번 프로젝트 역시 코딩을 하기 위해서 특별한 프로젝트를 사용해야 합니다. 아래 링크의 블럭 에디터 프로젝트를 사용해 주기 바랍니다.

https://makecode.microbit.org/_0T3bJDhsEhrC

 

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

“시작하면 실행” 블럭은 다음과 같습니다. 코드가 실행되면 “Autodoor” 이라는 문자열과 함께 웃는 얼굴 모양 아이콘이 출력됩니다.

 

“무한반복 실행” 블럭의 전체 코드는 다음과 같습니다.

 

“무한반복 실행” 블럭 내의 코드를 살펴봅시다. 만약 IR 센서 입력값이 0이면, 즉 IR 센서가 물체를 감지하면, 서보모터를 90° 회전시켜 자동문을 열며 ♥ 모양 아이콘을 출력합니다.

 

자동문을 연 후 2초 기다렸다가 서보모터를 5° 회전해 자동문을 다시 닫습니다.

 

IR 센서 입력값이 1이면, 즉 IR 센서가 물체를 감지하지 못하면, X 모양 아이콘을 출력합니다.

 

전체 프로젝트

 

 


코딩과제 3: 팬 안전장치 만들기 

과제 개요

이번 프로젝트에서는 IR 센서를 이용하여 사람이 접근하면 선풍기의 팬 회전을 멈추는 안전장치를 만들어 봅시다.

  1. 코드가 실행되면 “fan safety”라는 문자열과 ♥ 모양 아이콘이 출력됩니다.
  2. A 버튼을 누르면 DC모터(팬)이 반시계 방향, 30% 출력으로 회전을 시작합니다.
  3. 회전하는 팬에 가까이 다가가면 IR 센서에 의해 감지되고, 팬이 회전을 중지합니다.
  4. 팬에서 멀리 떨어지면 다시 반시계 방향, 30% 출력으로 회전을 시작합니다.
  5. B 버튼을 누르면 팬이 회전을 중지합니다.

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

 

하드웨어 준비하기

이번 프로젝트에서는 co:bit 베이스보드에 IR 센서 뿐 아니라 DC 모터를 연결해야 합니다. 연결 방식은 앞서 IR 센서 연결을 통해 설명한 방식과 동일합니다. 아래 사진과 같이 연결해 주면 됩니다. DC 모터를 연결할 때는 DC 모터의 GND 핀에 연결된 전선이 co:bit 베이스보드의 흰색 사각형이 위치한 부분에 연결되도록 합니다. 자세한 연결 방식은 DC 모터 강좌에 상세히 설명되어 있습니다.

 

블럭코딩의 흐름도

 

블럭코딩 하기

이번 프로젝트 역시 코딩을 하기 위해서 특별한 프로젝트를 사용해야 합니다. 아래 링크의 블럭 에디터 프로젝트를 사용해 주기 바랍니다.

https://makecode.microbit.org/_0T3bJDhsEhrC

 

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

“시작하면 실행” 블럭은 다음과 같습니다. 코드가 실행되면 “fan safety”라는 문자열과 ♥ 모양 아이콘이 출력됩니다. “감지” 변수를 선언하고 초기화 합니다.

 

“모터” 변수를 선언하고, A 버튼을 누르면 모터 변수에 1을 저장합니다.

 

B 버튼을 누르면 모터 변수에 0을 저장합니다.

 

“무한반복 실행” 블럭의 전체 코드는 다음과 같습니다.

 

“무한반복 실행 블럭 내부 코드를 살펴봅시다. 우선 감지 변수에 IR 센서 입력값을 저장합니다.

 

모터 변수에 저장된 숫자가 1일 때, 감지 변수에 저장된 숫자가 0이면 X 모양 아이콘을 출력하며 DC 모터를 멈춥니다. 감지 변수에 저장된 숫자가 0이 아니면, 즉 1이면 ♥ 모양 아이콘 출력과 함께 DC 모터를 반시계 방향으로 30% 출력으로 회전합니다. 이렇게 하면 A 버튼을 눌렀을 때, IR 센서에 접근하면 회전을 중지하고, 접근하지 않으면 회전을 지속합니다.

 

만약 모터 변수에 저장된 수가 1이 아니면, 즉 0이면 DC 모터를 멈춥니다. 이렇게 하면 B 버튼을 눌렀을 때 팬의 회전이 멈춥니다.

 

전체 프로젝트

One thought on “co:bit Training Kit 기초강좌 11: IR 센서를 배워보자.

Comments are closed.