Skip to content

활동

AI 활동 타이머

중급 | MakeCode | 가속도 센서 | AI 이해하기, 데이터 수집, 데이터 정리, 머신 러닝

micro:bit CreateAI를 사용하여 개인화할 수 있는 간단한 프로젝트. 다양한 활동을 한 시간을 감지하는 스마트 타이머를 만들어 보세요.

프로젝트 단계별 가이드

1단계: 이해하기

어떻게 작동하나요?

이 프로젝트에서 사용자는 BBC micro:bit를 착용한 상태에서 특정 움직임을 수행할 때 기계 학습(ML) 모델이 이를 인식하도록 훈련합니다.

이 모델을 MakeCode 프로그램과 결합하여 활동 타이머를 만들고 모델과 코드를 micro:bit에 전송합니다. micro:bit를 착용하기만 하면 다양한 활동을 한 시간을 측정할 수 있습니다.

A 버튼 또는 B 버튼을 눌러 각 활동을 몇 초 동안 수행했는지 확인할 수 있습니다.

기계 학습이란?

기계 학습(ML)은 컴퓨터가 데이터 기반으로 학습하고 판단하는 일종의 인공지능(AI)입니다.

예를 들어, ML 모델은 사용자가 micro:bit를 다양한 방식으로 움직일 때 다양한 '행동'을 인식하도록 결정하는 도움을 주기 위해 학습됩니다.

제작 방법

AI 시스템은 사용자가 설계, 구축, 테스트, 사용합니다. 사용자는 데이터를 수집하면서 ML 모델을 훈련, 테스트, 개선하고 컴퓨터 코드와 결합하여 AI를 사용하는 스마트 기기를 만들 수 있습니다. 이를 위해 사용자는 micro:bit와 micro:bit CreateAI 웹사이트를 사용합니다.

2단계: 만들기

준비물

데이터 샘플 수집

micro:bit CreateAI에서 프로젝트를 열면 '걷기', '점프'. '가만히 있기' 행동에 대한 몇 가지 데이터 샘플을 확인할 수 있습니다.

micro:bit의 움직임 센서 또는 가속도계를 사용하여 사용자의 움직임 샘플을 추가할 수 있습니다.

micro:bit CreateAI에서 '연결(Connect)' 버튼을 클릭하여 데이터 수집 micro:bit를 연결하고 지시를 따릅니다.

B 버튼을 위로 향하게 하여 데이터 수집 micro:bit를 발목 안쪽에 착용합니다. 한 프로젝트의 모든 샘플은 동일한 신체 부위에 micro:bit를 착용하여 수집하는 것이 중요합니다. 착용 방법을 바꾸고 싶은 경우 모든 데이터 샘플을 교체하세요.

걷기, 점프, 가만히 있기 활동에 대한 사용자 움직임 데이터 샘플을 추가하세요. 각 활동을 차례대로 선택한 다음 '기록(Record)'을 클릭하여 각 활동의 짮은 샘플을 기록합니다. 실수한 경우 원하지 않는 샘플은 삭제할 수 있습니다. micro:bit의 B 버튼을 눌러 기록을 시작할 수도 있습니다.

데이터 샘플을 검토하세요. 모든 '걷기' 샘플이 비슷해 보이나요? Do the ‘jumping’ samples look different to ‘walking’ and ‘being still’?

모델 훈련 및 테스트

'모델 훈련(Train model)' 버튼을 클릭하여 모델을 훈련한 후 테스트하세요. 걸어 보고 '걷기'가 추정 행동으로 표시되는지 확인하세요. 가만히 있어 보고 점프도 해 보세요. micro:bit를 다른 사람이 착용하는 경우에도 잘 작동하는지 확인하세요.

모델 개선

반복적인 수행이 필요한 단계입니다. 대부분의 모델은 데이터가 많을수록 더 개선될 수 있습니다. 모델의 사용자 행동 인식 능력을 개선해야 한다면 ‘← 데이터 샘플 편집(Edit data samples)’을 클릭하세요.

적합하지 않다고 생각되는(동일한 행동에 대한 다른 샘플과 완전히 달라 보이기 때문에) 데이터 샘플을 삭제하여 데이터 세트를 정리할 수 있습니다. 또한 자신과 다른 사람의 샘플을 추가하여 모델을 개선할 수도 있습니다.

모델이 다양한 행동을 구분하는 데 도움이 될 수 있도록 아주 미세한 움직임에 대한 샘플도 '가만히 있기' 데이터 샘플의 일부로 포함해야 합니다. micro:bit로 '가만히 있기'에 대한 샘플을 다양한 방식으로 수집하는 것도 모델에 도움이 됩니다.

모델을 한 번 더 훈련하고 다시 테스트합니다.

모델과 코드를 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 버튼을 누릅니다.
  • 몇 초 동안 움직이지 않았는지 확인하려면 A 버튼과 B 버튼을 동시에 누릅니다.
  • 타이머를 초기화하려면 micro:bit 뒷면의 초기화 버튼을 누르거나 배터리 팩을 분리했다가 다시 연결하세요.

코드 블록 작동 방식

코드는 3개의 변수를 사용하여 활동을 수행한 시간을 추적합니다. 프로그램이 처음 실행되면 타이머 변수는 0으로 설정됩니다.

ML 모델이 인식하는 활동을 사용자가 시작했다고 판단할 때 'ML 시작(on ML... start)' 블록이 트리거됩니다. ML 모델이 추정한 사용자의 행동에 따라 micro:bit의 LED 디스플레이에 다양한 아이콘이 표시됩니다.

ML 모델이 사용자가 행동(예: 걷기, 점프, 가만히 있기)을 종료했다고 판단한 경우 'ML 중지(on ML... stop)' 블록이 트리거됩니다. 각 블록의 코드는 화면을 지우고 방금 완료한 행동의 지속 시간을 걷기, 점프, 가만히 있기를 수행한 총 시간을 저장하는 변수에 추가합니다.

'버튼 누름(on button... pressed)' 블록은 각 행동을 수행한 총 시간을 보여주는 변수를 표시하는 코드를 포함합니다. 타이머는 밀리초(천 분의 1초) 단위로 계산하므로 1,000으로 나눈 총 지속 시간을 초 단위 숫자로 표시합니다.

평가

해당 활동을 수행한 시간을 얼마나 정확하게 측정할 수 있나요? 어떤 사람이 사용해도 똑같이 잘 작동하나요?

타이머 코드가 모델에서 잘 작동하는지 알아보려면 다음의 간단한 3가지 단계를 통해 테스트하세요.

  1. 초기화 버튼을 누릅니다.
  2. 30초 동안 점프합니다.
  3. B 버튼을 누릅니다. 30에 가까운 숫자가 디스플레이에 스크롤 되는 것을 볼 수 있습니다.
  • 모델을 개선하려면 MakeCode 편집기 왼쪽 상단에 있는 < 화살표를 클릭하여 데이터 샘플을 더 추가한 다음 모델을 다시 훈련하세요.

AI 활동 타이머를 걸음 수 카운터 또는 ML(기계 학습)을 사용하지 않는 민감한 걸음 수 카운터 프로젝트와 비교하세요.

  • ML을 사용하면 더 유용한 프로젝트를 만들 수 있나요?
  • 유용한 프로젝트를 만들려면 AI/ML이 항상 필요한가요?

3단계: 확장하기

  • 다른 행동에 대한 데이터를 추가하고 터치 로고 버튼을 사용하여 새 행동에 대한 타이머 변수를 확인합니다.
  • 다른 행동이 감지되면 오디오 피드백을 제공하는 사운드 블록을 추가하세요.
  • 기계 학습에 대한 새로운 지식을 사용하여 '모델을 변형'할 수 있나요? 특정한 방식으로 움직여 사용자 행동에 대해 잘못된 결정을 내리도록 모델을 속일 수 있나요? '헷갈리는' 데이터 샘플을 추가하는 실험을 통해 이러한 데이터가 ML 모델에 미치는 영향을 평가해 볼 수도 있습니다. 어떤 데이터 샘플은 잘 작동하지만 어떤 데이터 샘플은 그렇지 않은 이유를 비교하는 것은 이 기술에 대한 이해도를 높일 수 있는 좋은 방법입니다.