악기 없이 손으로 연주해요

비디오 감지를 활용해 손동작만으로 원하는 곡을 연주해요.

엔트리 인공지능 탭의 비디오 감지 블록을 사용해 보아요.

생활 속에서 영상 감지가 사용될 수 있는 분야에 대해서도 생각해 보아요.

부품을 준비해 주세요.

필요 재료수량
치즈 스틱 본체1개
햄스터 AI 카메라1개
5X5 LED 매트릭스1개
USB 동글1개
컴퓨터1대 (로봇 코딩 소프트웨어 설치 필요)

하드웨어를 준비해요.

1. 치즈 스틱의 HAT 포트에 5X5 LED 매트릭스를 연결합니다. 위 아래 방향에 관계 없이 연결 가능합니다.

2. 컴퓨터 USB 포트에 USB 동글을 꽂은 후 치즈 스틱 본체의 전원을 켜 페어링 하세요.

3. 로봇 코딩 소프트웨어를 실행한 후 프로그래밍 할 프로그램을 선택해 주세요.

4. 자, 이제 프로그램을 시작합니다!

코딩을 해요.

코딩 하기

1. 엔트리 인공지능 탭에서 ‘비디오 감지’ 블록을 불러옵니다.

‘비디오 감지’ 블록들을 사용해 여러분의 움직임을 연주를 위한 입력 값으로 활용할 수 있어요!

2. 코딩에 사용할 오브젝트들을 추가합니다.

시작, 연주, 도, 레, 미, 파, 솔 오브젝트를 추가합니다.

음정(도~솔) 오브젝트들은 실행화면에 오른쪽 그림과 같이 배치합니다.

3. 코딩에 사용할 신호를 추가합니다.

상단의 속성 탭에서 ‘신호 추가하기’를 클릭해 ‘go 신호’를 추가합니다.

4. 시작 오브젝트에 코드를 작성합니다.

‘시작 오브젝트’에 초기값 설정과 연주 신호를 보내는 코드를 작성합니다.

먼저 비디오 투명도를 정하고 시작 시 화면이 보이도록 설정합니다.

음정과 시작 변수의 값을 ‘0’으로 정하고 연주 시작을 의미하는 ‘go 신호 보내기’ 블록을 더해줍니다.

5. 음정 오브젝트 별로 코드를 작성합니다.

각 ‘음정 오브젝트’에 시작 버튼을 클릭했을 때 값을 ‘0’으로 정하는 코드를 작성합니다.

그와 함께 시작 오브젝트로부터  ‘go 신호’를 받은 뒤 수행할 내용을 입력합니다.

‘자신에서 감지한 움직임 값’은 실행 화면 위 음정 오브젝트 주변에서 감지되는 움직임을 의미합니다.

‘만일 ~ 이라면 ‘블록과 ‘>’ 블록을 사용해 실행 화면에 위치한 오브젝트들 주변의 움직임이

여러분이 설정한 값을 초과하면 해당 변수의 값을 ‘1’로 정하는  코드를 작성합니다.

음정 변수들을 구별할 수 있도록 ‘도~솔’에 각각 ‘1~5’의 숫자를 할당합니다.

6. 연주 오브젝트의 코드를 작성합니다.

* 아래의 블록들은 연결해서 작성해야 하지만 설명을 위해 분리해 놓았어요.

완성된 코드는 아래에서 확인할 수 있습니다.

반복문 테두리 작성하기

‘go 신호’를 받고 음정 오브젝트에서 동작이 감지 되었을 때 치즈 스틱이 동작하는 코드를

‘연주 오브젝트’에 작성합니다.

연주와 관련된 코드를 작성하기 전 여러분의 동작을 계속해서 감지할 수 있도록

‘계속 반복하기’ 블록을 사용합니다.

해당하는 음정의 알파벳을 5×5 매트리스로 표현할 것이므로 ‘5×5 매트릭스 시작하기’ 블록을 넣어줍니다.

(5×5 매트릭스와 관련된 블록은 엔트리 하드웨어 탭에서 찾을 수 있습니다.)

내부 코드 작성하기

바로 위에 작성한 ‘계속 반복하기’ 코드 안에 ‘만일 ~이라면 아니면 ~’ 블록을 5개 삽입하여

‘음정’ 변수의 값(0~5)들이 변할 때마다 치즈 스틱이 연주할 음정을 입력합니다.

오브젝트 주변에 움직임이 없는 상황은 ‘0’으로 정합니다.

각 음정 별로 5×5 매트릭스에 나타낼 글자와 색을 지정해 주고 연주할 음정과 박자도 정해줍니다.

음정을 한 번 연주한 뒤에는 값을 ‘0’으로 정해 이어서 재생할 소리와 겹치지 않도록 합니다.

같은 블록 조합을 음정 값이 ‘2~5’인 경우에 대해서도 작성해 줍니다.

7. 완성된 연주 오브젝트의 코드는 아래와 같습니다.

자 이제 인공지능 블록의 비디오 감지로 악기 없이 여러분의 손동작만으로 좋아하는 곡을 연주해 보아요!

응용하기

라, 시 등 음정을 더하기 위해서 어떤 오브젝트와 블록을 추가해야 하는지 친구들과 논의해요.

비디오 감지에 있는 사람 인식 기능을 활용하면 어떤 활동을 할 수 있을지 생각해 보아요.