micro:bit CreateAI로 처음 만드는 멋진 프로젝트 활동 시간 또는 휴식 시간을 알려주는 스마트 운동 타이머를 만들어 보세요.
1단계: 이해하기
어떻게 작동하나요?
이 프로젝트에서는 운동할 때와 운동하지 않을 때를 인식하는 기계학습(ML) 모델을 훈련합니다.
이 모델을 MakeCode 프로그램과 결합하여 운동 타이머를 만든 다음 이 프로젝트를 BBC micro:bit에 넣습니다. micro:bit를 착용하기만 하면 운동한 시간 또는 운동하지 않은 시간을 측정할 수 있습니다.
A 버튼을 누르면 몇 초 동안 운동했는지 알 수 있고, B 버튼을 누르면 활동하지 않은 시간을 확인할 수 있습니다.
기계 학습이란?
기계 학습(ML)은 컴퓨터가 데이터 기반으로 학습하고 결정을 하는 일종의 인공지능(AI)입니다.
예를 들어, ML 모델은 사용자가 micro:bit를 다양한 방식으로 움직일 때 다양한 '행동'을 인식하도록 결정하는 도움을 주기 위해 학습됩니다.
제작 방법
AI 시스템은 사용자가 설계, 구축, 테스트, 사용합니다. 사용자는 데이터를 수집하면서 ML 모델을 훈련, 테스트 및 개선하고 컴퓨터 코드와 결합하여 AI를 사용하는 스마트 기기를 만들 수 있습니다. 이를 위해 사용자는 micro:bit와 micro:bit CreateAI 웹사이트를 사용합니다.
2단계: 만들기
준비물
- micro:bit V2, USB 데이터 케이블, AAA 배터리 2개가 들어있는 배터리 팩
- Chrome 또는 Edge 웹브라우저를 사용하여 micro:bit CreateAI 웹사이트에 접근할 수 있는 컴퓨터(예: 데스크톱, 랩톱, Chromebook)
- 블루투스를 사용할 수 없는 컴퓨터인 경우 micro:bit V2가 하나 더 필요합니다.
- 스트랩과 홀더 또는 micro:bit를 손목에 착용할 수 있는 다른 도구(예: 구부러지는 공예용 막대기 또는 고무줄)
- micro:bit CreateAI 교육 팁도 참조하면 도움이 됩니다.
데이터 샘플 수집
micro:bit CreateAI에서 프로젝트를 열면 '운동' 및 '운동하지 않음' 행동에 대한 몇 가지 데이터 샘플을 확인할 수 있습니다.
exercising
not exercising
micro:bit의 움직임 센서 또는 가속도계를 사용하여 사용자의 움직임 샘플을 추가할 수 있습니다.
micro:bit CreateAI에서 '연결(Connect)' 버튼을 클릭하여 데이터 수집 micro:bit를 연결하고 지시를 따릅니다.
데이터 수집 micro:bit를 손목에 착용합니다. 제자리 달리기, 팔 벌려 뛰기, 걷기 등 자주 실시하는 몇 가지 운동을 정합니다. 먼저 '운동'을 선택한 후 '기록(Record)'를 클릭하여 자신의 데이터 샘플을 기록합니다. 실수한 경우 원하지 않는 샘플은 삭제할 수 있습니다. micro:bit에서 B 버튼을 눌러도 기록할 수 있습니다.
'운동하지 않음' 행동에 대해서도 같은 작업을 수행하여 다양한 샘플을 수집합니다.
데이터 샘플을 검토하세요. 모든 '운동' 샘플이 사용자가 운동하고 있음을 나타내고 있나요? '운동하지 않음' 샘플은 사용자가 움직이지 않고 있음을 나타내나요?
모델 훈련 및 테스트
'모델 훈련(Train model)' 버튼을 클릭하여 모델을 훈련한 후 테스트하세요. 이리저리 움직여 보고 추정 행동으로 '운동'이 표시되는지 확인하세요. 가만히 있어 보고 '운동하지 않음'이 추정 행동으로 표시되는지 확인하세요. micro:bit를 다른 사람이 착용하는 경우에도 잘 작동하는지도 확인하세요.
모델 개선
대부분의 모델은 데이터가 많을 수록 더 개선될 수 있습니다. 모델의 사용자 행동 인식 능력을 개선해야 한다면 ‘← 데이터 샘플 편집(Edit data samples)’을 클릭하세요.
적합하지 않다고 생각되는 데이터 샘플(동일한 행동에 대해 다른 샘플과 완전히 다르게 표시되는 샘플)을 삭제하거나 본인과 다른 사람의 샘플을 추가할 수 있습니다.
모델을 한 번 더 훈련하고 다시 테스트합니다.
모델과 코드를 micro:bit에 넣습니다
micro:bit CreateAI의 ‘MakeCode에서 편집(Edit in MakeCode)’을 클릭하면 MakeCode 편집기에서 프로젝트 코드를 볼 수 있습니다.
다른 micro:bit MakeCode 프로젝트와 마찬가지로 코드를 수정할 수도 있고, 그대로 사용해 볼 수도 있습니다. USB 데이터 케이블로 micro:bit을 연결하고 MakeCode 화면에서 '다운로드(Download)' 버튼을 클릭한 후 안내에 따라 AI 모델과 코드 블록을 micro:bit로 전송하세요. micro:bit를 분리하고 배터리 팩을 끼운 후 착용하여 테스트합니다.
- 몇 초 동안 운동했는지 확인하려면 A 버튼을 누릅니다.
- 몇 초 동안 운동하지 않았는지 확인하려면 B 버튼을 누릅니다.
- 타이머를 초기화하려면 micro:bit 뒷면의 초기화 버튼을 누르거나 배터리 팩을 분리했다가 다시 연결하세요.
코드 블록 작동 방식
코드는 두 개의 변수를 사용하여 운동한 시간과 운동하지 않은 시간을 추적합니다. 프로그램이 처음 실행될 때 타이머 변수는 0으로 설정됩니다.
ML 모델이 사용자가 운동 또는 휴식을 시작했다고 판단한 경우 'ML 시작(on ML... start)' 블록이 트리거됩니다. ML 모델이 추정한 사용자의 행동에 따라 micro:bit의 LED 디스플레이에 다른 아이콘이 표시됩니다.
ML 모델이 사용자가 행동을 종료했다고 판단한 경우 'ML 중지(on ML... stop)' 블록이 트리거됩니다. 각 블록 내의 코드는 화면을 지우고 방금 완료된 행동의 지속 시간을 각 행동의 총 시간을 저장하는 변수에 추가합니다.
'버튼 누름(on button... pressed)' 블록은 총 운동 시간과 총 휴식 시간을 보여주는 변수를 표시하는 코드를 포함합니다. 타이머는 밀리초(천 분의 1초) 단위로 계산되므로 1,000으로 나누어 총 지속 시간을 초 단위로 나타낸 숫자가 표시됩니다.
평가
운동 시간 또는 휴식 시간을 얼마나 정확하게 측정할 수 있나요? 누가 사용해도 잘 작동하나요?
타이머 코드가 모델에서 잘 작동하는지 알아보려면 다음의 간단한 3가지 단계를 통해 테스트하세요.
- 초기화 버튼을 누릅니다.
- 30초 동안 운동합니다.
- A 버튼을 누릅니다. 30에 가까운 숫자가 디스플레이에 스크롤 되는 것을 볼 수 있습니다.
- 모델을 개선하려면 MakeCode 편집기 왼쪽 상단에 있는 < 화살표를 클릭하여 데이터 샘플을 더 추가한 다음 모델을 다시 훈련하세요.
ML(기계 학습)을 사용하지 않는 걸음수 측정 프로젝트와 심플 AI 운동 타이머를 비교해 보세요.
- ML을 사용하면 더 유용한 프로젝트를 만들 수 있는 이유는 무엇인가요?
- 유용한 프로젝트를 만들려면 AI/ML이 항상 필요한가요?
3단계: 확장하기
- 모델이 사용자 행동을 식별할 수 없을 때 '?' 기호 코드 블록을 추가하는 방법을 알아보세요.
- 운동 또는 휴식이 감지될 때 오디오 피드백을 제공하는 사운드 블록을 추가하세요.
- AI 활동 타이머 프로젝트를 사용하여 micro:bit가 특정 운동 또는 활동을 감지하고 지속 시간을 측정할 수 있도록 훈련해 보세요.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.