Skip to content

활동

문 열림 경보기

중급 | MakeCode, Python | LED, 버튼, 자기 센서 | 선택 실행, 자기력, 조건/관계 연산자

1단계: 만들어 보세요.

프로젝트 소개

내 방에 누군가 왔다 갔을까요? micro:bit, 배터리 팩, 자석을 이용해서 누군가 몰래 왔다 갔는지 알아낼 수 있습니다...

소개

프로그래밍 가이드

설명

  • 이번 프로젝트에서는, 홈 시큐리티 시스템의 문 열림 센서처럼 작동하는 문 열림 경보기를 만듭니다.
  • micro:bit 안에는 나침반 센서 라고 부르기도 하는 자기 센서가 들어있습니다. 자기 센서를 사용하면, 지구 자기장을 측정해서 나침반처럼 사용할 수 있을 뿐만 아니라, 근처에 얼마나 강한 자기력이 있는지도 감지할 수 있습니다.
  • 동영상과 같이 문의 가장 자리에 자석을 붙이고, 그 바로 옆 위치의 문틀에 프로그램을 업로드한 micro:bit 를 위치시키면 됩니다.
  • 이 프로그램은 micro:bit 의 나침반(자기센서)을입력 센서로 사용하고 무한 반복 실행 구조를 사용해서 자기장의 세기를 계속 측정합니다.
  • 조건/선택 실행구조를 사용하기 때문에, 어떤 수준 (기준값) 미만으로 자기장의 세기가 약해지면, LED 화면에 화남 모양을 출력합니다. 따라서, micro:bit 와 자석이 서로 멀어지게 되면, 방 문이 열린 것 이기 때문에, 누군가가 방안에 들어 왔다고 생각할 수 있습니다!
  • A 버튼을 누르면, 현재 측정되고 있는 자기력 값이 출력됩니다. 그 값을 사용하면, 문이 열렸는지 판단할 기준값(threshold) 을 대략적으로 계산할 수 있습니다. 예시 프로그램에서는 200 을 사용했지만, 문에 붙이는 자석의 세기에 따라서 달라지고, 근처에 강력한 다른 자기장이 있는지에 따라서도 달라지게 됩니다. 위의 프로그래밍 동영상에서는 그 방법에 대해 보여주고 있습니다.
  • A 버튼을 누르면, 화남 얼굴이 초기화되고 경보가 해제됩니다.

준비물

  • micro:bit 1대
  • MakeCode 편집기
  • 배터리 팩
  • 자석
  • 자석을 문에 붙이고, micro:bit 와 배터리 팩을 문 틀에 붙이기 위해 필요한 물건

2단계: 프로그래밍 해보세요.

1# Python uses nanoteslas to measure magnetism.
2# Experiment with different numbers depending on the
3# strength of your magnet, which you can read by 
4# pressing button A.
5
6from microbit import *
7
8while True:
9    if button_a.was_pressed():
10        display.scroll(compass.get_field_strength())
11    if compass.get_field_strength() < 200000:
12        display.show(Image.ANGRY)

3단계: 더 좋게 만들어 보세요.

  • 스피커나 부저 같은 사운드 출력을 추가해 보세요.
  • 변수를 사용해서 문이 열린 횟수를 세어 보세요. - 문이 열리고 다시 닫힌 횟수를 기록할 수 있도록 코드를 추가해야 합니다.
  • 문이 열려 있던 시간을 측정할 수 있도록, 타이머를 만들어 보세요.