Pico W 기초부터 클라우드 연동까지!
콘테스트 프로젝트진행중

스마트 덤벨 - AI 학습 기반 운동 상태 분석 및 기록 시스템

Pico W 기초부터 클라우드 연동까지!
n
2022.08.14에 시작
1
좋아요
1.6K
조회
0
댓글
스마트 덤벨 - AI 학습 기반 운동 상태 분석 및 기록 시스템

사용 기술

Health & Medical DevicesMachine Learning & AISensors
Pico W 기초부터 클라우드 연동까지!완료
콘테스트 프로젝트 진행 상황

각 Quest를 단계적으로 완성하는 프로젝트입니다.

Quest 1
Quest 2
Quest 3
3 / 4 완료
Quest 1: 스마트 덤벨 - AI 학습 기반 운동 상태 분석 및 기록 시스템
2022.08.14
완료

스마트 덤벨 - AI  학습 기반 운동 상태 분석 및 기록 시스템 

□ 아이디어 소개 및 개요 
작심 삼일이 되기 쉬운 운동하기를 좀더 스마트 하게 그리고 좀 더 효율적으로 할 수 없을까?
AI 기술을 이용하여 학습을 통해 운동 자세나 운동량을 관리하면 좋을것 같다는 생각에 스마트 덤벨 모니터를 구상하게 되었다.

덤벨에 쉽게 탈부착 하기 위해 무선 솔루션이 필요 할것 같고 저렴한 하드웨어 구성을 위해 Raspberry Pi W를 사용하면 좋을것 같다.
덤벨의 움직임을 센싱하기 위한 센서는 보쉬사의 BNO055 9축 관성센서를 사용하고 수집된 데이터를 edgeimpulse (https://www.edgeimpulse.com/) 에서 학습할 계획이다.

학습으로 운동 자세 및 운동량을 검출하고 클라우드로 전송해서 관리할수 있도록 하는것이 최종 목표로 한다.

 


□ 전체 구조를 표현하는 블록 다이어그램

 

 

□ 하드웨어 구성 다이어그램

 

 


□ 소프트웨어 구성 다이어그램

Quest 2: Raspberry Pi Pico W 개발 환경 설정 및 클아우드 환경 설정
2022.08.28
완료

Raspberry Pi Pico W 개발 환경 설정


Raspberry Pi Pico W 개발 환경은 다양한 방법이 있지만 다양한 라이브러리를 이용할 수 있고 간단히 세팅할 수 있는 Arduino 환경으로 진행할 예정이다.

Raspberry Pi Pico W 보드는 기존에 제작 했던 Raspberry Pi Pico 확장 테스트 보드를 이용하여 테스트 하였다.

Arduino는 최신 버전을 다운 받는것이 좋다.
Arduino IDE 2.0 RC 를 설치 하였다.
https://www.arduino.cc/en/software

 

Preferences 에서 RP2040 Arduino Board Manager URL을 설정 한다.
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

 


Arduino IDE 의 Board Manager 에서 pico를 검색해서 최신의 Raspberry Pi Pico 보드파일 최신 버전을 설치 한다.

 

사용할 보드(Rapberry Pi Pico W)를 설정한다

.

Raspberry Pi Pico W 의 인식된 시리얼 포트를 설정한다.

 

 

Raspberry Pi Pico W 의 WiFi 기능을 테스트 하기 위해 간단히 할당받은 IP를 출력 하는 코드를 작성해 다운로드 하면 정상 동작 하는것을 확인 할 수 있다.


 

ThingSpeak 연동 테스트


RaspberryPi Pico W 를 이용해서 Cloud에 연동해서 데이터 전송 테스트를 해 보자.
Cloud 는 다양한 서비스 업체가 있지만 간단하게 사용할 수 있는 ThingSpeak를 사용 하였다.

https://thingspeak.com/

 

새로운 개정을 가입하고 새로운 Channel를 생성한다.

 

 

기본 Channel에 필요한 Field를 추가 한다.

 

기본으로 생성된 Chart 외 추가 위젯을 설정하려면 Add Widgets를 클릭해서 필요한 화면을 만들 수 있다.

 

 

기본 설정후 ThingSpeak API를 이용해서 데이터 보내면 변경된 값이 출력 되는것을 확인 할 수 있다.

Quest 3: Pico W - Thingspeak 클라우드 연결 및 BNO055 9축 센서 데이터 업로드
2022.09.11
완료

Pico W - Thingspeak 클라우드 연결 및 BNO055 9축 센서 데이터 업로드

 

지난번 설정한 클라우드 접속

https://thingspeak.com/channels/1843421/private_show

 

 

사용할 센서(BNO055)의 X, Y, Z 축 센서 데이터 필드 생성

Channel ID 확인

 

 

API 키확인

 

 

 

 

ThingsSpeak 관련 라이브러리 설치

 

 

센서(BNO055) 관련 라이브러리 설치

 

코드 작성

초기화 코드

	//ThingSpeak Channel ID설정
	unsigned long myChannelNumber = 1843421;
	
	//ThingSpeak APIKey 설정
	const char * myWriteAPIKey = "53ANQ*****";



	// Initialize ThingSpeak
	ThingSpeak.begin(client);  

 

데이터 전송 코드

	sensors_event_t event;
	bno.getEvent(&event);
  
	Serial.print(F("Orientation: "));
	Serial.print((float)event.orientation.x);
	Serial.print(F(" "));
	Serial.print((float)event.orientation.y);
	Serial.print(F(" "));
	Serial.print((float)event.orientation.z);
	Serial.println(F(""));
  
	if(filed==1)data=event.orientation.x;
	else if(filed==2)data=event.orientation.y;
	else if(filed==3)
	{
		data=event.orientation.z;
		filed=1;
	}
	
	//ThingSpeak로 데이터 전송
	int x = ThingSpeak.writeField(myChannelNumber, filed, data, myWriteAPIKey);
	
	filed++;

 

 

테스트 결과

프로젝트 자료실

프로젝트를 재현하거나 학습하는데 필요한 모든 자료를 제공합니다.

등록된 자료가 없습니다.

프로젝트 소개

사용 기술
Health & Medical DevicesMachine Learning & AISensors

코드 & 회로도

등록된 코드/회로 자료가 없습니다.

댓글 0

아직 댓글이 없습니다. 첫 댓글을 남겨보세요!