메뉴 전체보기

회원메뉴

사례 연구: ESP32로 스마트 농구 드리블 트래커 만들기 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3083
제목 : 사례 연구: ESP32로 스마트 농구 드리블 트래커 만들기
2026-08-25 13:28

소개: 사례 연구: ESP32로 스마트 농구 드리블 트래커 만들기


웨어러블 기술과 스포츠 분석에 관한 요청을 많이 받습니다. 보통은 복잡한 비전 시스템이나 값비싼 센서 어레이가 필요합니다. 하지만 최근에 진지한 데이터를 얻는 데 할리우드급 예산이 필요하지 않다는 것을 입증한 프로젝트를 진행했습니다. ESP32와 IMU를 사용해 스마트 농구 드리블 트래커를 만들었습니다.

목표는 간단했습니다. 선수의 손목에 휴대전화를 묶지 않고 드리블 횟수, 볼 핸들링 시간, 충격력을 추적하는 것이었습니다. 데이터를 기록하고 BLE를 통해 동기화할 수 있는 독립형 장치를 원했습니다. 사용한 부품과 작동 원리를 포함해 어떻게 만들었는지 정확히 설명하겠습니다.




STEP 1. 준비물


준비물


하드웨어:

- ESP32 DevKit V1 (클래식 WROOM-32 모듈을 사용했습니다. WiFi와 BLE가 내장되어 있어 이 프로젝트에 적합합니다.)

- MPU-6050 (대표적인 IMU입니다. 3축 가속도계와 3축 자이로스코프가 포함되어 있습니다. 풀업 저항과 전압 레귤레이터가 함께 제공되는 GY-521 브레이크아웃 보드를 사용했습니다.)

- LiPo 배터리 (3.7V, 1200mAh. 약 6시간 동안 연속 사용할 수 있습니다.)

- TP4056 충전 모듈 (USB-C를 통한 안전한 배터리 충전용)

- 슬라이드 스위치 (SPST, 전원을 완전히 차단하는 용도)

- 브레드보드 및 점퍼 와이어 (프로토타이핑용)

- 3D 프린트 케이스 (Fusion 360에서 간단한 클램셸 케이스를 설계했습니다.)


도구 및 준비물:

- 납땜 인두와 납.

- 열수축 튜브.

- 양면테이프 또는 벨크로 (손목에 부착하기 위한 용도)

- KiCad (맞춤형 PCB 레이아웃용이지만, 먼저 브레드보드에서 작업해도 됩니다.)





STEP 2. 핵심 개념


물리 원리는 간단합니다. 농구공이 바닥이나 손에 닿으면 갑작스러운 감속 스파이크가 발생합니다. 가속도계는 이 스파이크를 감지할 수 있습니다. 문제는 팔을 휘두를 때 발생하는 노이즈와 지속적인 미세 진동을 걸러내는 것입니다.

원시 동작 데이터를 수집하기 위해 6축 IMU(가속도계 + 자이로스코프)를 사용했습니다. 그런 다음 ESP32가 장치에서 이 데이터를 처리합니다. 저역 통과 필터를 적용해 팔의 움직임에서 충격 "G-force"를 분리합니다. 힘이 특정 임계값을 초과하면 드리블로 계산합니다.





STEP 3. 단계별 제작 지침


단계별 제작 지침


제작 과정을 단계별로 안내하겠습니다. 완성도를 높이는 데 약 이틀이 걸렸지만, 오후 한나절이면 작동하는 프로토타입을 만들 수 있습니다.


1단계: 배선(먼저 브레드보드에서 작업)

바로 납땜부터 시작하지 마세요. 먼저 브레드보드에서 로직이 작동하는지 확인하세요.

1. ESP32를 MPU-6050에 연결:

- VCC를 3.3V에 연결 (중요: 5V를 사용하지 마세요. MPU가 손상됩니다.)

- GND를 GND에 연결합니다.

- SCL을 GPIO 22에 연결합니다.

- SDA를 GPIO 21에 연결합니다.

2. TP4056 모듈을 연결합니다:

- OUT+를 ESP32의 VIN 핀에 연결합니다(이렇게 하면 온보드 레귤레이터의 입력을 우회합니다).

- OUT-를 GND에 연결합니다.

3. 배터리를 TP4056의 B+ 및 B- 단자에 연결합니다.

4. TP4056 OUT+와 ESP32 VIN 사이에 스위치를 연결합니다.


2단계: 펌웨어 로직(Zephyr RTOS)

Zephyr RTOS를 사용해 C로 펌웨어를 작성했습니다. 이 작업에는 다소 과하지만, BLE 스택을 훨씬 쉽게 관리할 수 있습니다.

- 초기화: I2C 버스를 설정하고 MPU-6050을 ±8g 범위로 구성합니다. 이는 매우 중요합니다. 일반적인 드리블은 약 3~4g의 힘을 발생시키지만, 강하게 내리치는 동작에서는 6g에 이를 수 있습니다.

- 필터: 가속도계 데이터에 간단한 이동 평균 필터를 사용했습니다. 벡터의 크기(sqrt(x² + y² + z²))를 확인합니다. 이렇게 하면 방향에 따른 편향이 제거되므로 손이 기울어져 있어도 상관없습니다.

- 드리블 감지: 임계값을 2.5g로 설정했습니다. 크기가 이 값을 초과하면 카운터를 증가시킵니다. 또한 150ms의 "lockout" 기간을 구현했습니다. 이를 통해 공이 내려갈 때 한 번, 올라올 때 한 번 세어지는 단일 바운스의 중복 카운트를 방지합니다.


3단계: BLE 서비스

사용자 지정 BLE GATT 서비스를 설정했습니다. 여기에는 두 가지 characteristic이 있습니다:

- `Dribble Count`(Read/Notify).

- `Battery Level`(Read).

10초의 notification 간격을 사용했습니다. 덕분에 코치의 태블릿은 배터리를 소모하지 않으면서 카운트의 실시간 피드를 받을 수 있습니다.


4단계: PCB 설계 및 조립

브레드보드가 작동한 후 KiCad로 작업을 옮겼습니다.

- 30mm x 30mm 크기의 소형 보드를 설계했습니다.

- I2C 라인에 10k 풀업 저항을 추가했습니다(GY-521 보드에 이미 있지만, 자체 풀업 저항을 사용하는 것이 좋은 방법입니다).

- 모터에서 발생하는 전압 스파이크—아니, 공이 충돌할 때 발생하는 전압 스파이크를 완화하기 위해 배터리 입력 양단에 100µF 커패시터를 추가했습니다.

Gerber 파일을 JLCPCB에 보냈습니다. 보드를 기다리는 동안 케이스를 3D 프린팅했습니다. 스트랩 마운트에는 TPU 필라멘트를 사용했습니다. 충격을 어느 정도 흡수할 만큼 유연하면서도 보드를 단단히 고정할 만큼 충분히 견고합니다.


5단계: 조립 및 테스트

SMD 부품 납땜에는 약 30분이 걸렸습니다. 그런 다음 펌웨어를 플래시하고 테스트 엔지니어의 손목에 장착했습니다.

- 테스트 1: 제자리 드리블. 100회 드리블에서 98%의 정확도를 얻었습니다.

- 테스트 2: 이동 중 드리블. 추가된 움직임 노이즈로 인해 정확도가 95%로 떨어졌습니다.

- 테스트 3: "Crossover" 테스트. 자이로스코프 데이터에서 뚜렷한 회전 특성이 나타났으며, 이를 사용해 크로스오버와 일반적인 직선 드리블을 구분할 수 있었습니다.





STEP 4. 이 접근 방식의 장점


스마트폰 앱 대신 이 하드웨어와 아키텍처를 선택한 이유는 무엇일까요?

1. 지연 시간: ESP32는 데이터를 로컬에서 처리합니다. 클라우드 의존성이 전혀 없습니다. 반응 시간은 < 10ms입니다. 가속도계를 사용하는 휴대폰 앱은 OS 수준의 지연이 너무 큽니다.

2. 배터리 수명: ESP32는 딥 슬립 모드에서 10µA만 소비합니다. 활성 상태에서는 약 240mA를 소비합니다. 1200mAh 배터리를 사용하면 충전 없이 한 번의 전체 연습 세션 동안 사용할 수 있습니다.

3. 비용: BOM (자재 명세서) 비용은 25달러 미만입니다. 비슷한 기능을 갖춘 상용 장치는 150달러 이상입니다.

4. 데이터 소유권: 데이터는 장치에 로컬로 저장하거나 BLE를 통해 노트북으로 전송합니다. 클라우드로 스트리밍할 필요가 없으므로 데이터를 비공개로 안전하게 유지할 수 있습니다.





STEP 5. 최종 프로토타입


최종 프로토타입


최종 작동 프로토타입을 고객에게 납품했습니다. G-force 스파이크를 기반으로 단순 드리블과 파워 드리블을 구분할 수 있는 완전히 기능하는 손목 장착형 트래커였습니다.


고객은 매우 만족해 전체 팀용으로 확장해 달라고 요청했습니다. 다섯 명의 선수를 동시에 추적하고 싶어 했습니다. ESP32가 BLE를 지원하므로, 다섯 장치 모두의 신호를 수신하고 데이터를 SD 카드에 기록할 수 있는 중앙 허브(또 다른 ESP32)를 간단히 설정했습니다.


이 프로젝트는 저렴하고 쉽게 구할 수 있는 칩이 실제 문제를 어떻게 해결할 수 있는지를 보여 주는 완벽한 예입니다. 비슷한 아이디어가 있지만 펌웨어 문제나 PCB 라우팅을 직접 처리하고 싶지 않다면, 저희를 어디서 찾을 수 있는지 아실 겁니다. 처음부터 직접 만드는 것은 재미있지만, 생업으로 하는 사람에게 맡기면 더 빠릅니다. 프로토타입을 시장에 출시할 IoT 개발자 인재를 고용하려면 저희 팀이 어려운 작업을 맡을 준비가 되어 있습니다.



원문: https://www.instructables.com/Case-Study-Building-a-Smart-Basketball-Dribble-Tra/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.