Skip to content

활동

수평 측정기

중급 | MakeCode, Python | LED, 가속도 센서, 사운드 | 불 논리, 선택 실행, 센서, 조건/관계 연산자

1단계: 만들어 보세요.

프로젝트 소개

그림 액자, 물건을 올려두는 벽면 선반 등의 수평을 맞출 수 있는 도구를 만들어보세요. 수평은 물 표면과 같이 평행한 면 상태가 되어서 물건이나 도구가 쉽게 흘러내리지 않는 평평한 상태를 의미합니다. 신형 micro:bit 의 내장 스피커를 함께 사용하면, micro:bit 수평 측정기를 만들고 소리도 쉽게 출력되도록 할 수 있습니다.

소개

프로그래밍 가이드

학습 내용

  • 가속도 센서를 사용해서 기울어진 각도를 측정하는 방법
  • '피치(앞-뒤 방향 기울기)', '롤(좌-우 방향 기울기)' 용어 및 개념
  • 서로 다른 두 축 방향에 대한 센서값을 결합해서 수평 상태를 찾는 방법

설명

피치(앞-뒤 방향 기울기)와 롤(좌-우 방향 기울기)에 대해서 보여주는 그림
  • micro:bit 의 가속도 센서는 2 축 방향으로의 각도를 측정할 수 있습니다.: micro:bit 를 세웠을 때 위-아래 방향(피치)과 왼쪽 오른쪽 방향의 축을 기준으로 각도를 측정할 수 있습니다. 각도 측정 기능은 이 프로젝트에서 micro:bit 가 수평으로 평평하게 놓여졌을 때, LED 화면에 표시를 해주고 소리도 함께 출력하도록 해줍니다. 그림 액자를 벽에 기울어지지 않게 걸거나 물건을 올려놓는 탁자나 선반의 수평을 맞출 때에 편리하게 사용할 수 있습니다.
  • 반복 실행구조에 의해서 micro:bit 가 기울어진 각도를 반복해서 계속 측정합니다.
  • 가속도 센서에 의해서 측정된 각도 값이 +5 보다 작고 -5 보다 큰데, 그 각도 값이 롤(앞-뒤 기울기 각도) 피치(좌-우 기울기 각도)에 대해서 모두 그렇다면, micro:bit 가 적절하게 수평으로 놓여졌다는 것을 의미합니다. 그런 경우 LED 화면에 V 표시를 출력하고, 소리를 출력합니다.
  • 소리를 들으려면 유선 헤드폰을 0 번 핀과 GND 핀에 연결시키면 됩니다. 신형 micro:bit 인 경우에는 내장 스피커로 소리를 들을 수 있습니다.
  • 만약, 피치 롤 방향 각도 중 어느 하나라도 +5 미만 -5 이상의 범위를 벗어나게되면, LED 화면에 X 표시를 출력하고 소리 출력이 중단됩니다.

준비물

  • micro:bit 1대
  • MakeCode 또는 Python 편집기
  • AAA 배터리 팩 (옵션)

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

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

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

  • 기울어진 각도에 따라서 음정이 바뀌도록 어떻게 바꾸면 될까요?
  • 진짜 수평 측정기처럼, LED 화면 위에 공기 방울 모양처럼 나타나서 움직이도록 프로그램을 개선할 수 있을까요?