View on GitHub

inchworm

MakeCode 프로젝트

코드

알고리즘 설명

이 프로젝트는 이렇게 작동해요:

  1. A 버튼을 누르면:
    • 서보모터가 0도 위치로 이동해요
    • 0.5초(500밀리초) 기다려요
    • 서보모터가 180도 위치로 이동해요
    • 다시 0.5초(500밀리초) 기다려요
  2. 이 과정이 반복되고 자벌레가 움직이는 효과를 만들어요

  3. B 버튼을 누르면:
    • 서모모터가 멈춰요.

      블록코딩

이 그림처럼 블록을 연결하면 돼요:

코드 블록

블록 코드 설명

이 블록 코드는 다음과 같이 동작해요:

  1. go라는 변수룰 만들어요.

  2. A 버튼을 누를 때 블록:
    • 마이크로비트의 A 버튼을 누르면 go라는 변수에 1이 저장되요.
  3. B 버튼을 누를 때 블록:
    • 마이크로비트의 B 버튼을 누르면 go라는 변수에 0이 저장되요.
  4. 무한반복 블록:
    • 마이크로비트가 무한으로 동작하는 블록이에요
  5. 만약 go = 1 이면 블록:
    • 만약 go라는 변수가 1이라면 동작하는 조건 블록이에요.
  6. P0에 서보 쓰기 0도 블록:
    • P0 핀에 연결된 서보모터를 0도 위치로 움직여요.
    • 이 때 자벌레의 몸통이 움직여요
  7. 500ms 기다리기 블록:
    • 0.5초(500밀리초) 동안 기다려요.
    • 이렇게 기다리면 서보모터가 천천히 움직이는 것처럼 보여요.
  8. P0에 서보 쓰기 180도 블록:
    • P0 핀에 연결된 서보모터를 180도 위치로 움직여요.
    • 이 때 자벌레의 몸통이 움직여요.
  9. 다시 500ms 기다리기 블록:
    • 다시 0.5초(500밀리초) 동안 기다려요.
    • 이렇게 하면 한 번의 동작이 완료돼요.

텍스트코딩 (Python)

go = 0

def on_button_pressed_a():
    global go
    go = 1
input.on_button_pressed(Button.A, on_button_pressed_a)

def on_button_pressed_b():
    global go
    go = 0
input.on_button_pressed(Button.B, on_button_pressed_b)

def on_forever():
    if go == 1:
        servos.P0.set_angle(0)
        basic.pause(500)
        servos.P0.set_angle(180)
        basic.pause(500)
basic.forever(on_forever)

코드 업로드하는 방법

  1. 컴퓨터에서 MakeCode 편집기를 열어요.
  2. “새 프로젝트” 버튼을 눌러요.
  3. 블록을 그림처럼 연결하거나, python 탭을 누르고 위의 코드를 복사해 붙여넣어요.
  4. 프로젝트 이름을 “자벌레”로 넣고 저장해요.
  5. “다운로드” 버튼을 눌러서 파일을 컴퓨터에 저장해요.
  6. USB 케이블로 마이크로비트를 컴퓨터에 연결해요.
  7. 다운로드한 파일을 마이크로비트 드라이브에 복사해요.
  8. 코드가 마이크로비트에 올라가면 자동으로 실행돼요.

코드 바꿔보기

  1. 움직임 속도 바꾸기:
    • 기다리기 블록의 시간을 바꿔서 움직임 속도를 조절해보세요.
    • 숫자가 작을수록 더 빠르게, 클수록 더 천천히 움직여요.
    • 예: 500ms 대신 200ms(빠름) 또는 1000ms(느림)로 바꿔보세요.
  2. 다른 각도 시도하기:
    • 서보 쓰기 블록의 각도 값을 바꿔서 다른 각도로 움직이게 해보세요.
    • 0에서 180 사이의 숫자를 사용할 수 있어요.
    • 예: 0도와 180도 대신 45도와 135도로 바꿔보세요.
  3. LED 추가하기:
    • 자벌레가 움직이면서 표정이 나오도록 만들어보세요
    • 예를 들어, 다리를 움직인 다음에 LED 메트릭스에 화면이 나와요.

문제 해결하기