Quick

    마이크로비트로 만드는 나만의 동물 자동 급식기 (feat.스마트팜 키트)

 

목록으로

안녕하세요, 나도메이커입니다!

초중고 소프트웨어 교육 현장에서 학생들의 창의적인 문제 해결 능력을 키워주기 위해 많은 코딩 강사님과 코딩 선생님들께서 다양한 피지컬 컴퓨팅 프로젝트를 찾고 계실 텐데요. 오늘은 일상생활의 불편함을 기술로 해결하는 메이커(Maker) 교육의 일환으로 아주 흥미로운 실습을 준비했습니다.

반려동물을 키우시는 분들의 최대 고민, 바로 제때 밥을 챙겨주는 시간 관리죠? 매일 똑같은 시간에 맞춰 정량의 사료를 챙겨주는 것은 생각보다 번거롭고 외출 시에는 더욱 신경 쓰이는 일입니다. 그래서 오늘은 이 고민을 완벽하게 해결해 줄 마이크로비트 기반 동물 자동 급식기를 직접 만들어 보려고 합니다!

오늘의 프로젝트 미리보기

복잡해 보이지만 스마트팜 키트(Smart Farm Kit)를 활용하면 알고리즘 설계와 하드웨어 제어가 아주 간단해집니다. 키트에 내장된 핵심 부품인 RTC(Real Time Clock) 모듈이 정확한 현재 시간을 기억하고 연산하여, 프로그래밍된 정해진 시간마다 한 치의 오차 없이 사료를 줄 수 있도록 모터를 구동하게 됩니다. 본격적인 하드웨어 제어와 블록 코딩 실습, 바로 시작해 볼까요?

■ 1. 프로젝트 필수 준비물 및 장비 확인

본 실습을 진행하기 위해 필요한 필수 하드웨어 구성을 살펴보겠습니다. 단순 코딩을 넘어 직접 회로를 구성하는 물리적 컴퓨팅의 기초를 다지는 과정입니다.

마이크로비트 (Micro:bit V2)
모든 연산과 명령을 처리하는 시스템의 메인 두뇌입니다. 작성한 코드가 업로드되어 각종 센서와 모터를 총괄 제어하게 됩니다.

스마트팜 키트 (Smart Farm Kit)
이름은 스마트팜 키트지만, 환경 제어에 필요한 모든 센서가 집약되어 있어 식물 관리부터 동물 케어 프로젝트까지 활용 범위가 매우 넓습니다. 이번 실습에서 물리적인 문을 열고 닫을 '서보 모터(Servo Motor)'현재 시간과 상태를 시각적으로 보여줄 'I2C OLED 모듈'을 핵심적으로 사용합니다.

■ 2. 하드웨어 회로 설계 및 센서 포트 연결

부품이 모두 준비되었다면, 전기적 신호가 올바르게 전달될 수 있도록 마이크로비트와 센서를 연결해 주는 회로 설계 작업을 진행합니다.

먼저, 확장 보드에 동전 건전지(CR1220, 3V)를 장착해 줍니다.

잠깐! 여기서 코딩 교육의 핵심 질문, 왜 별도의 동전 건전지를 꽂아야 할까요?
우리가 사용하는 RTC(Real Time Clock) 모듈은 확장 보드에 내장되어 시간을 계산합니다. 만약 메인 전원(USB 등)이 차단된다면 컴퓨터의 시계가 초기화되는 것처럼 로봇의 시간도 초기화되어 버립니다. 이를 방지하기 위해 마이크로비트의 주 전원이 꺼지더라도 RTC 모듈의 시간이 멈추지 않고 백그라운드에서 계속 유지되도록 돕는 독립적인 백업 배터리 역할을 하는 것입니다. 이 개념은 실제 컴퓨터 메인보드의 CMOS 배터리 원리와 동일합니다.

배터리 장착이 끝났다면, 확장 보드의 규격에 맞추어 점퍼 케이블을 이용해 센서를 결합해 줍니다. 핀의 위치가 틀리면 코딩이 정상적으로 작동하지 않으므로 주의 깊게 연결해야 합니다.

연결 장치 마이크로비트 확장 보드 포트
서보 모터 (문 개폐용) P1 포트 (PWM 신호 제어)
OLED 디스플레이 I2C 포트 (데이터 통신)
■ 3. MakeCode 확장 프로그램 및 개발 환경 세팅

하드웨어 세팅이 완료되었으니 프로그래밍 단계로 넘어갑니다. 마이크로비트 공식 웹 컴파일러인 MakeCode(메이크코드) 환경에서 코딩을 진행합니다.

1. 확장 프로그램 추가하기
기본 제공되는 블록 외에 스마트팜 키트의 특수 센서들을 정밀하게 제어하기 위한 라이브러리가 필요합니다. MakeCode 좌측 메뉴 하단의 [확장] 탭을 클릭하고, 검색창에 'iot environment kit'를 검색한 뒤 패키지를 설치해 줍니다.


정상적으로 라이브러리를 불러왔다면, 메뉴 탭에 RTC, OLED 등을 제어할 수 있는 새로운 다섯 개의 확장 블록 묶음이 추가된 것을 시각적으로 확인할 수 있습니다.

■ 4. 시간 제어 알고리즘 및 블록 코딩 실습

2. 코드 알아보기 및 알고리즘 설계
이제 우리가 정해둔 특정한 시간에만 사료 급식기의 문(서보 모터)이 열리고 닫히도록 논리적인 구조를 설계해 보겠습니다. 반려동물에게 정확히 12시간 주기(예: 오전 12시, 오후 12시)로 밥을 제공한다고 가정해 보겠습니다.

? 초기 설정 단계 (시작하면 블록)
기기가 켜질 때 단 한 번 실행되는 초기화 세팅입니다.

기능 분류 블록 적용 방법 및 설명
OLED 초기화 OLED 화면의 이전 기록을 지우고 디스플레이 출력을 대기 상태로 초기화합니다.
시간 설정 RTC1307 모듈 카테고리에서 [Set Time] 블록을 가져와 시스템에 현재 실제 시간을 동기화하여 입력해 줍니다.
모터 초기화 P1 포트에 연결된 서보 모터의 각도를 0도로 설정합니다. (사료가 쏟아지지 않는 '문 닫힘' 기본 상태 유지)

? 동작 실행 단계 (무한 반복 블록)
전원이 켜져 있는 동안 시스템이 스스로 끊임없이 생각하고 판단하는 구간입니다.

1) OLED 디스플레이 화면에 RTC가 계산하고 있는 현재 시간을 실시간으로 계속 출력하여 사용자가 언제든 시간을 확인할 수 있게 만듭니다.

2) 수학적 연산(나머지 구하기 연산자)을 활용하여 급식 알고리즘을 제어합니다. 12시간마다 밥을 주어야 하므로, 조건문 블록을 사용하여 (현재 시간 ÷ 12)의 나머지가 0인지 확인합니다.
만약 나누었을 때 나머지가 0이라면? 이는 정확하게 오전 12시 정각 혹은 오후 12시 정각을 의미합니다. 코딩 수학을 논리 제어에 활용하는 대표적인 사례입니다.

3) 조건이 '참(True)'이 되면 급식기의 문을 열어야 합니다. 서보 모터의 제어 각도를 180도로 변경하여 문을 활짝 열고, 사료가 충분히 쏟아질 수 있도록 1분(60,000ms = 60초) 동안 대기(일시 정지) 블록을 사용합니다. 시간이 지나면 다시 모터 각도를 0도로 되돌려 문을 단단히 닫아줍니다.

■ 5. 심화 응용 챌린지 미션

★챌린지 미션! 초음파 센서를 활용한 스마트 급식기 업그레이드

기본적인 자동화 로직을 완성한 학생들을 위한 심화 과제입니다. 거리를 측정하는 초음파 센서(Ultrasonic Sensor)의 반사 원리를 급식기 통 내부에 적용해 보세요. 사료 표면까지의 거리를 측정하면 현재 사료가 얼마나 남아있는지(잔량), 그리고 반려동물이 방금 사료를 얼마나 먹었는지를 수치화하여 OLED 화면에 실시간 데이터로 표시해 주는 놀라운 IoT 프로그램을 만들 수 있습니다!


오늘은 마이크로비트 보드와 스마트팜 키트의 융합을 통해, 우리 실생활에 바로 적용할 수 있는 동물 자동 먹이 급식기를 직접 설계하고 만들어 보았습니다.

이제 코딩을 배운 여러분은 외출 시 집에 없거나 바쁜 일정이 있을 때도 반려동물들이 밥을 굶을 걱정을 덜게 되었습니다. 이처럼 복잡해 보이는 기계도 논리적인 블록 코딩과 여러 센서의 유기적인 조합만으로 우리의 생활을 혁신적으로 편리하게 바꾸어 놓을 수 있습니다. 이것이 바로 우리가 코딩과 피지컬 컴퓨팅을 배우는 본질이자 기술의 진정한 힘이죠!

스마트팜 키트 하나만 있으면 오늘 실습한 타이머 급식기 외에도 온습도 제어 스마트 온실, 미세먼지 알림 조명 등 여러분의 창의력을 뽐낼 수 있는 메이커 프로젝트가 무궁무진하게 기다리고 있습니다. 제공된 기본 코드를 바탕으로 여러분만의 톡톡 튀는 아이디어를 더해 더 멋진 나만의 발명품 설계에 도전해 보세요! 그럼 다음 코딩 프로젝트 시간에 또 만나요~


해당 프로젝트에서 나온 상품은 아래에서 확인가능합니다 ▼

실습준비물

연관 컨텐츠

결제 및 주문

공지사항 목록