Budowa Platformy Tensometrycznej

1. Wstęp

Platforma tensometryczna (force plate) jest urządzeniem pomiarowym wykorzystywanym w biomechanice, fizjoterapii oraz treningu sportowym do pomiaru sił reakcji podłoża. Niniejsze sprawozdanie przedstawia proces budowy prototypowej platformy tensometrycznej opartej na mikrokontrolerze ESP32 i czujnikach tensometrycznych (load cells).

Głównym celem projektu było stworzenie ekonomicznego urządzenia umożliwiającego pomiar wysokości skoku, czasu lotu, mocy oraz prędkości startu. Platforma komunikuje się z aplikacją desktopową poprzez port szeregowy, z planowaną przyszłą integracją Bluetooth.

Gotowa platforma tensometryczna
Rys. 1. Gotowa, zamknięta platforma tensometryczna (prototyp na płycie OSB 1m × 1m)

2. Komponenty Sprzętowe

2.1. Czujniki Tensometryczne (Load Cells)

Tensometr (strain gauge) to czujnik elektryczny służący do pomiaru odkształceń mechanicznych. Zasada działania opiera się na zmianie rezystancji przewodnika przy jego rozciąganiu lub ściskaniu. Zależność tę opisuje wzór:

ΔR/R = GF · ε
gdzie: ΔR – zmiana rezystancji, R – rezystancja nominalna, GF – współczynnik czułości (gauge factor, typowo ~2), ε – odkształcenie względne

W projekcie wykorzystano 8 czujników tensometrycznych typu belkowego (identycznych jak w wagach łazienkowych), każdy o maksymalnym obciążeniu 50 kg. Łączna nośność platformy wynosi więc teoretycznie 400 kg. Czujniki rozmieszczone są w układzie ośmiokąta foremnego, co zapewnia równomierny rozkład obciążenia.

Czujnik tensometryczny
Rys. 2. Czujnik tensometryczny typu belkowego z plastikową obudową montażową
Rozmieszczenie czujników
Rys. 3. Rozmieszczenie 8 czujników w układzie ośmiokąta

2.2. Mostek Wheatstone'a

Czujniki tensometryczne łączone są w konfigurację mostka Wheatstone'a, co pozwala na precyzyjny pomiar niewielkich zmian rezystancji. W projekcie zastosowano układ pełnego mostka składającego się z 4 par czujników:

Czujniki w parach połączone są równolegle. Pary następnie tworzą pętlę mostka poprzez połączenia lutowane przewodami 24AWG (przewody czarne poziomo, żółte pionowo). Sygnały czerwone prowadzą do wejść przetwornika ADC.

Schemat elektryczny
Rys. 4. Schemat elektryczny połączeń mostka Wheatstone'a z przetwornikiem CS1238 i ESP32

2.3. Przetwornik ADC CS1238

CS1238 to precyzyjny 24-bitowy przetwornik analogowo-cyfrowy (ADC) zaprojektowany specjalnie do aplikacji wagowych. Kluczowe parametry:

Parametr Wartość
Rozdzielczość 24 bity
Częstotliwość próbkowania 10 / 40 / 640 / 1280 Hz (programowalna)
Wzmocnienie (PGA) 1 / 2 / 64 / 128 (programowalne)
Napięcie zasilania 2.6V – 5.5V
Interfejs Dwuprzewodowy (CLK + DATA)

W projekcie CS1238 skonfigurowano na częstotliwość 1280 Hz z wzmocnieniem PGA 128, co zapewnia wysoką rozdzielczość czasową niezbędną do precyzyjnego pomiaru dynamiki skoku.

Moduł CS1238
Rys. 5. Moduł przetwornika CS1238
Płytka ESP32
Rys. 6. Mikrokontroler ESP32 LOLIN32 Lite

2.4. Mikrokontroler ESP32

ESP32 to wydajny mikrokontroler dwurdzeniowy z wbudowanym WiFi i Bluetooth. W projekcie odpowiada za:

Wszystkie obliczenia fizyczne (prędkość, moc, wysokość skoku) wykonywane są po stronie aplikacji desktopowej, co umożliwia elastyczne modyfikacje algorytmów bez konieczności przeprogramowania mikrokontrolera. ESP32 posiada wbudowany moduł Bluetooth, który zostanie wykorzystany w przyszłych wersjach do bezprzewodowej transmisji danych.

Zbliżenie elektroniki
Rys. 7. Zbliżenie na podłączenie modułów: ESP32, CS1238, bateria LiPo 1000mAh

3. Algorytm Pomiaru Skoku

3.1. Maszyna Stanów

Oprogramowanie implementuje maszynę stanów obsługującą cały cykl skoku:

  1. IDLE / WEIGHING: Oczekiwanie na stabilne obciążenie i automatyczny pomiar masy ciała
  2. READY: Masa zmierzona, platforma gotowa do skoku
  3. PROPULSION: Wykryto ruch – całkowanie sił w celu obliczenia prędkości
  4. IN_AIR: Siła poniżej progu – faza lotu
  5. LANDING: Lądowanie – zbieranie danych do wykresu mocy

3.2. Obliczenia Fizyczne

Wysokość skoku z czasu lotu:

h = (g · t²) / 8
gdzie: h – wysokość [m], g – przyspieszenie ziemskie (9.81 m/s²), t – czas lotu [s]

Prędkość startu z impulsu siły:

Podczas fazy propulsji (odpychania) system całkuje przyspieszenie wynikające z siły netto:

a = (Fnetto) / m = ((Fmierzona - m·g)) / m
v(t) = ∫ a · dt

Prędkość w momencie oderwania (takeoff velocity) pozwala obliczyć wysokość metodą impulsową:

himpulse = v² / (2g)

Moc chwilowa i uśredniona:

P(t) = F(t) · v(t)
Pavg = (1/n) · Σ P(t)

System rejestruje również moc szczytową (peak power) oraz stosuje wzory empiryczne Haramana i Sayersa do walidacji wyników.

4. Aplikacja Desktopowa

Aplikacja napisana w Python (PyQt5) umożliwia wizualizację danych w czasie rzeczywistym oraz analizę zarejestrowanych skoków. Główne funkcje:

Screenshot aplikacji
Rys. 8. Zrzut ekranu aplikacji – analiza pojedynczego skoku z wykresem siły, prędkości i mocy

5. Komunikacja

Obecnie platforma komunikuje się z komputerem poprzez port szeregowy USB (baud rate 921600). Mikrokontroler przesyła surowe dane pomiarowe w formacie JSON:

{"w":156234,"t":1234567890} – surowa wartość obciążenia z timestampem (mikrosekundy)

Aplikacja desktopowa odbiera te dane i wykonuje wszystkie obliczenia fizyczne (prędkość, moc, wysokość) lokalnie, co pozwala na elastyczność algorytmów i łatwe wprowadzanie poprawek bez konieczności aktualizacji firmware'u mikrokontrolera.

W przyszłości planowana jest komunikacja bezprzewodowa poprzez Bluetooth Low Energy (BLE) wbudowany w ESP32, co umożliwi pełną mobilność urządzenia zasilanego baterią LiPo.

6. Podsumowanie

Zbudowany prototyp platformy tensometrycznej stanowi funkcjonalne urządzenie do analizy skoków. Kluczowe osiągnięcia projektu:

Dalsze plany rozwoju obejmują: konstrukcję metalową zamiast OSB, zastosowanie przemysłowych czujników tensometrycznych o wyższej precyzji oraz pełną integrację komunikacji Bluetooth. Najnowszą wersję kodu źródłowego można znaleźć na GitHubie.