Zo bouw je je eigen Golf Radar Tracker met Raspberry Pi
Commerciële golfmonitoren zoals TrackMan of Bushnell kosten tussen de twee- en twintigduizend dollar. Voor amateur trainingssessies in een garage of achtertuin is dat krankzinnig veel geld. Het OpenFlight-project biedt een alternatief: bouw zelf een functionele slaganalyzer met betaalbare Doppler-radar's en een Raspberry Pi. De basisconfiguratie kost rond de $400, en de uitgebreide versie met lanceerhoekcontrole kost minder dan $560.
Het project is voornamelijk geschreven in Python met een React webinterface. Ontwikkelaar jewbetcha heeft de broncode vrijgegeven onder de AGPL-3.0-licentie en ontwikkelt actief de codebase samen met de community.
Hoe het Systeem Werkt
De belangrijkste uitdaging bij het volgen van een balimpact is dat gebeurtenissen plaatsvinden in fracties van een milliseconde. Als je sensorgegevens uitleest op een timer, is het gemakkelijk om het moment te missen waarop de club de bal raakt.
OpenFlight lost dit op met een combinatie van een hardware akoestische trigger en een radar ringbuffer.
De systeemarchitectuur bestaat uit vier hoofdcomponenten:
- De SparkFun SEN-14262 akoestische sensor neemt het geluid van club-bal-impact waar. Hij genereert een hardware-interrupt met een vertraging van ongeveer 10 microseconden.
- De 24 GHz OmniPreSense OPS243-A radar schrijft continu ruwe kwadratuur I/Q-data naar een ringbuffer met een samplingsnelheid van 30 kSPS. Bij een triggersignaal dump het 40.096 samples (ongeveer 136 ms rond het moment van impact).
- Een extra millimeter-golf radar TI IWR6843 met aangepaste firmware meet de verticale lanceerhoek van de bal en het clubhoofdbaantraject.
- Raspberry Pi 5 met Linux berekent fysieke parameters, voert een ballistisch vluchtmodel uit en levert data via WebSockets aan een lokaal React-dashboard.
Wat OpenFlight Kan Meten
De OPS243-A radareenheid detecteert de frequentieverschuiving van het gereflecteerde radiosignaal. Bij de basisfrequentie van 24,125 GHz produceert elke 1 mph aan snelheid een Dopplerverschuiving van ongeveer 71,7 Hz. Het project filtert het spectrum en berekent verschillende parameters:
- Balsnelheid in het bereik van 35 tot 200 mph met een nauwkeurigheid van ongeveer ±0,5%.
- Clubsnelheid, die de software berekent uit het signalspectrum enkele milliseconden vóór de akoestische piek.
- Smash Factor, of energieoverdrachtsratio (balsnelheid gedeeld door clubsnelheid).
- Geschatte carry-afstand op basis van een wiskundig ballistisch model.
De lanceerhoek wordt in de basisconfiguratie bij benadering berekend. Als je het TI IWR6843-bord aansluit, leest het systeem de ware geometrische hoek en experimentele clubbaan.
Trouwens, er is een aparte modus swing-speed voor swingtraining zonder bal. Daarin is de akoestische trigger uitgeschakeld en leest de software pieksnelheden in een continue stream.
Hardware en Assemblage Details
Het apparaat kan op een breadboard worden gemonteerd zonder complex solderen. De repository bevat een gedetailleerde componententabel met links.
Basisuitrustingskit:
- Doppler-radar OPS243-A ($249)
- Raspberry Pi 5 single-board computer ($130)
- SparkFun SEN-14262 geluidssensor ($18)
- Zeven-inch touchscreen display voor standalone werking ($46)
- Voeding en hulpbedrading ($27)
Als je lanceerhoek nodig hebt, moet je de TI IWR6843LEVM-module ($156) toevoegen. Voorheen gebruikte de auteur K-LD7-modules, maar deze zijn nu deprecated vanwege de maximale meetbare snelheidslimiet van 62 mph.
Er is een belangrijke stroomoverweging. De Raspberry Pi kan niet beide radar's tegelijkertijd via USB aan. Dus de OPS243-A wordt aangesloten via GPIO UART-pinnen (/dev/ttyAMA0), en het TI-bord neemt de USB-poort. De kant-en-klare firmware voor TI IWR6843 staat al in map firmware/releases/, dus je hoeft het niet te bouwen in de Texas Instruments-omgeving.
Snelle Start
Installatie op een verse Raspberry Pi OS 64-bit wordt teruggebracht tot een interactief script:
git clone https://github.com/jewbetcha/openflight.git
cd openflight
./scripts/setup/setup.sh
Het script configureert poorttoegangsrechten, werkt afhankelijkheden bij en stelt autostart in. Daarna wordt de tracker gestart in kiosk-modus:
# Базовый запуск со звуковым триггером
scripts/start-kiosk.sh
# Запуск с угловым радаром IWR6843 (значения геометрии замеряются по месту)
scripts/start-kiosk.sh --iwr6843 \
--ops-port /dev/ttyAMA0 \
--iwr6843-tee-m 1.372 --iwr6843-net-m 4.064 \
--iwr6843-tilt-deg 5.5 --iwr6843-radar-height-m 0.229 \
--iwr6843-ball-height-m 0.021
Als de radar nog niet is gearriveerd maar je wilt in de code snuffelen, dan genereert het uitvoeren met de --mock-vlag synthetische slagdata voor UI-debugging.
De webinterface opent lokaal op poort 8080. Als je het deployt op een TV of tablet via http://openflight.local:8080/display, krijg je een handig scherm voor de trainingsruimte.
Er is een eenvoudige Python API voor ontwikkelaars. Metrics ophalen in je eigen scripts kost letterlijk tien regels:
from openflight.rolling_buffer import RollingBufferMonitor
monitor = RollingBufferMonitor()
monitor.connect()
monitor.start()
print("Готов к удару...")
shot = monitor.wait_for_shot(timeout=60)
if shot:
print(f"Скорость мяча: {shot.ball_speed_mph:.1f} mph")
print(f"Дистанция: {shot.estimated_carry_yards:.0f} yd")
monitor.stop()
monitor.disconnect()
Huidige Beperkingen en Zwakke Punten
De auteur documenteert eerlijk de fysieke beperkingen van de gekozen aanpak.
Ten eerste cosinusfout: als de bal niet precies langs de zichtlijn van de radar vliegt, zal de gemeten snelheid iets lager zijn dan de werkelijke snelheid. De radar moet precies 1-1,5 meter achter de bal op de doellijn worden geplaatst.
Ten tweede is ball spin rate meting nog experimenteel. In afgesloten ruimtes creëren de korte vluchtbaan en parasitaire signaalreflecties ruis, dus live multi-tap wordt momenteel niet gebruikt in afstandsberekeningen. Het projectteam werkt momenteel aan een nieuw algoritme voor Doppler sideband dechirping (scripts/analysis/replay_spin_dechirp.py).
Voor Wie Dit Project Nuttig Zal Zijn
OpenFlight is een geweldig voorbeeld van toegepaste digitale signaalverwerking op betaalbare hardware.
Het project zal aanspreken:
- Golfenthousiasten die een simulator willen voor thuistraining zonder te veel te betalen voor merkapparaten met gesloten abonnementen.
- Embedded systems ontwikkelaars en DSP-enthousiastelingen die in echte I/Q-radiodata, FFT en ruisonderdrukkingsalgoritmen willen duiken.
- Makers van hun eigen sportsimulators (het project heeft al connectors naar GSPro en OpenGolfSim).
De codebase is goed gestructureerd, tests draaien via pytest met een virtuele omgeving op uv, en de documentatie over installatiegeometrie en calibratie is tot in detail uitgewerkt. Zeker het proberen waard.
Gerelateerde projecten