Smart Tennis Racket este un dispozitiv electronic montabil pe racheta de tenis care detectează automat loviturile și oferă feedback obiectiv jucătorului în timp real. Concret, sistemul:
Antrenament obiectiv pentru jucătorii amatori. Autoevaluarea unui jucător amator se bazează pe simțuri (“a sunat bine”, “a fost puternic”), nu pe date măsurate. Dispozitivul transformă o ședință de antrenament într-un set de metrici concrete: număr lovituri, raport forehand/backhand, distribuția intensităților, viteză medie de swing — fără cost ridicat și fără dependență de un antrenor sau de o aplicație telefonică.
Soluțiile comerciale (Babolat Pop, Sony Smart Tennis Sensor, Zepp Tennis) sunt scumpe, închise ca platformă și au fost discontinuate de mai multe ori, lăsând utilizatorii fără suport. Plecând de la observația că un IMU 6-DOF de tipul MPU6050 acoperă cea mai mare parte a senzoricii necesare, ne-am propus să construim un echivalent open, ieftin și deschis pentru extensii.
Sistemul este construit în jurul plăcii de dezvoltare ATmega328P Xplained Mini, care joacă rolul de coordonator central. Microcontrollerul citește continuu date inerțiale de la senzorul MPU6050 prin magistrala I2C, le procesează printr-o pipeline simplă de detecție și clasificare, după care actualizează simultan două canale de output: ecranul TFT (text și statistici) prin SPI și LED-ul RGB (feedback luminos) prin trei canale PWM. Un buton conectat ca GPIO permite reset-ul contorului.
twi_start / twi_write / twi_read_ack / twi_read_nack / twi_stop din driverul de la Lab 6.HITS: 24SHOT: FOREHANDPOWER: HIGHSWING: 320 deg/s| Modul | Sursă | Descriere |
twi.c/.h | Lab 6 (preluat, F_CPU adaptat la 16 MHz) | driver I2C low-level |
mpu6050.c/.h | scris (după pattern-ul mpl3115a2 din Lab 6) | init, citire accel/gyro burst, calibrare offset |
spi.c/.h | Lab 5 (preluat) | driver SPI low-level |
st7735.c/.h | Lab 5 (preluat, adaptat pentru pini noi) | driver TFT 1.8” |
timers.c/.h | Lab 3 (preluat, extins) | configurare PWM 2 canale pe Timer 0 + Timer 2 |
rgb.c/.h | scris | wrapper PWM pentru LED RGB (R+G) cu efecte (solid / blink / fade) |
swing_detect.c/.h | scris | detecție swing și clasificare |
main.c | scris | bucla principală, integrare module, FSM |
^ # ^ Componentă ^ Cantitate ^ Rol în proiect ^
| 1 | ATmega328P Xplained Mini (placă dezvoltare) | 1 | coordonator central, programator on-board |
| 2 | MPU6050 (modul GY-521) — accelerometru + giroscop 3 axe | 1 | senzor inerțial pentru detecția mișcării (I2C, adresa 0x68) |
| 3 | LED RGB 5 mm, 4 pini, anod comun, opac | 5 | feedback vizual (PWM, doar canalele R+G); restul ca rezervă |
| 4 | Display TFT color 1.8”, controller ST7735, interfață SPI | 1 | afișare statistici și tip lovitură |
| 5 | Kit rezistențe 1/4 W, 30 valori, 600 buc, 10 Ω – 1 MΩ | 1 | limitare curent LED (2× 220 Ω pe R și G); pull-up I2C dacă e necesar |
| 6 | Breadboard MB-102, 830 puncte | 1 | suport prototipare |
| 7 | Fire dupont 20 cm, mamă-mamă, set 40 | 1 | conexiuni breadboard ↔ Xplained Mini ↔ module |
| 8 | Fire dupont 20 cm, tată-mamă, set 40 | 1 | conexiuni mixte (pini Xplained ↔ module) |
| 9 | Suport baterie 9V cu jack 5.5×2.1 mm | 1 | alimentare portabilă |
| 10 | Buton tactil PCB mini 6×6×5, 2 pini | 1 | reset contor lovituri |