← Roadmap
FattoDone

Alpha — Reverse Engineering Alpha — Reverse Engineering

Il punto di partenza: studiare come funzionano le pedane ottiche commerciali, astrarne il modello come macchina a stati finiti, e progettare da zero una catena trasmettitore-ricevitore laser capace di operare all'aperto, con luce solare diretta, a costi accessibili.

Where everything began: studying how commercial optical platforms work, abstracting their behaviour as a finite-state machine, and designing a custom laser transmitter-receiver chain capable of operating outdoors in direct sunlight, at accessible cost.

FasePhase Alpha a.0.1 / a.0.2 StatoStatus Completato — modello validato Completed — model validated

Il modello a stati finitiThe finite-state machine model

Le pedane ottiche commerciali misurano fondamentalmente due grandezze: il tempo (di contatto e di volo dell'appoggio) e lo spazio (la lunghezza dell'appoggio). Il punto di partenza del progetto è stato astrarre questo comportamento in un modello formale.

Commercial optical platforms fundamentally measure two quantities: time (foot contact and flight time) and space (foot contact length). The starting point of the project was to abstract this behaviour into a formal model.

Il background in ingegneria del software permette di vedere ogni evento fisico come un interrupt: ogni volta che un raggio laser viene interrotto o ripristinato, il sistema cambia stato. La macchina a stati è semplice:

A software engineering background makes it natural to treat every physical event as an interrupt: each time a laser beam is broken or restored, the system changes state. The state machine is straightforward:

  • Laser passante → piede assente: il tempo in questo stato è il tempo di volo.
  • Laser unbroken → foot absent: time spent in this state is flight time.
  • Laser interrotto → piede presente: il tempo in questo stato è il tempo di contatto.
  • Laser broken → foot present: time spent in this state is contact time.
  • Coppia di sensori attivi contemporaneamente: la distanza tra i due canali è la lunghezza dell'appoggio.
  • Two sensors active simultaneously: the distance between those two channels is the contact length.

Da questa astrazione derivano tutte le metriche atletiche di interesse: altezza del salto, Reactive Strength Index, cadenza, lunghezza del passo.

All the athletic metrics of interest derive from this abstraction: jump height, Reactive Strength Index, cadence, stride length.

Laser visibile vs infrarossoVisible laser vs infrared

Le pedane commerciali usano fasci infrarossi (IR). La scelta sembra ovvia, ma porta con sé tre problemi concreti per un sistema artigianale:

Commercial platforms use infrared (IR) beams. The choice seems obvious, but it brings three practical problems for a handcrafted system:

  • Allineamento cieco: il fascio non è visibile, rendendo la calibrazione difficile e dipendente da strumenti aggiuntivi.
  • Blind alignment: the beam is invisible, making calibration difficult and dependent on additional tools.
  • Angolo di emissione eccessivo: i trasmettitori IR comuni (pensati per telecomandi) hanno un angolo di emissione molto largo — l'opposto di quello che serve in uno strumento di misura a fascio collimato.
  • Excessive emission angle: common IR transmitters (designed for remote controls) have a very wide emission angle — the opposite of what is needed for a collimated-beam measuring instrument.
  • Costo più elevato: i fotodiodi IR di qualità sufficiente costano più dei moduli laser a luce rossa reperibili nei kit di elettronica.
  • Higher cost: IR photodiodes of sufficient quality cost more than visible red laser modules available in electronics starter kits.

La soluzione è stata passare al visibile: moduli laser rossi a 650 nm (KY-008 o equivalenti) come trasmettitori, e fotodiodi PIN come ricevitori. La scelta del fotodiodo PIN invece della fotoresistenza non è casuale: il fotodiodo PIN ha una capacità di giunzione molto bassa, che si traduce in una velocità di risposta sufficiente per rilevare interrupt a frequenze nell'ordine dei kilohertz.

The solution was to move to visible light: 650 nm red laser modules (KY-008 or equivalent) as transmitters, and PIN photodiodes as receivers. The choice of PIN photodiode over a photoresistor is deliberate: the PIN photodiode has very low junction capacitance, which translates into a response speed sufficient to detect interrupts at frequencies in the kilohertz range.

Il problema del rumore ambientaleThe ambient noise problem

Una pedana è uno strumento outdoor. La luce solare è una sorgente multibanda ad alta intensità che satura il fotodiodo, generando falsi positivi: il sensore non riesce a distinguere tra "laser interrotto dal piede" e "fotodiodo saturato dal sole".

A platform is an outdoor instrument. Sunlight is a high-intensity broadband source that saturates the photodiode, generating false positives: the sensor cannot distinguish between "laser broken by a foot" and "photodiode saturated by the sun".

La soluzione viene dall'analisi matematica del segnale: la luce naturale è dominata da componenti a bassa frequenza (DC e 50/60 Hz). Se si modula il laser a una frequenza sufficientemente alta e si filtra il segnale del fotodiodo attorno a quella frequenza, le componenti di disturbo vengono rigettate e il rapporto segnale/rumore migliora drasticamente.

The solution comes from signal analysis: natural light is dominated by low-frequency components (DC and 50/60 Hz). If the laser is modulated at a sufficiently high frequency and the photodiode signal is filtered around that frequency, interference components are rejected and the signal-to-noise ratio improves dramatically.

Frequenza scelta: 25 kHz. Il generatore è un NE555P in configurazione astabile, alimentato a +5 V: il circuito di temporizzazione usa RA = 470 kΩ, RB = 10 kΩ e C = 47 pF, con condensatori di disaccoppiamento da 100 nF e 10 µF sull'alimentazione. Il laser oscilla a 25 kHz — impercettibile all'occhio, ma sufficiente a separare il segnale utile da qualsiasi disturbo ambientale realistico.

Chosen frequency: 25 kHz. The generator is an NE555P in astable configuration, powered at +5 V: the timing network uses RA = 470 kΩ, RB = 10 kΩ and C = 47 pF, with 100 nF and 10 µF decoupling capacitors on the supply rail. The laser oscillates at 25 kHz — imperceptible to the eye, but sufficient to separate the useful signal from any realistic ambient interference.

Il circuito ricevitoreThe receiver circuit

Il ricevitore deve amplificare il debole segnale del fotodiodo, isolarlo dal rumore, e restituire un segnale pulito leggibile da un microcontrollore. La catena è composta da tre stadi:

The receiver must amplify the weak photodiode signal, isolate it from noise, and deliver a clean signal readable by a microcontroller. The chain consists of three stages:

  • Amplificazione: stadio con NE5532 — op-amp a doppio canale e basso rumore, alimentato a singola tensione +5 V. Un resistore da 100 Ω sull'ingresso del fotodiodo converte la fotocorrente in tensione; un resistore di retroazione da 10 kΩ imposta il guadagno. Il NE5532 è scelto per la sua elevata velocità di risposta rispetto a op-amp generici come LM741.
  • Amplification: stage built with NE5532 — dual low-noise op-amp powered from a single +5 V supply. A 100 Ω resistor on the photodiode input converts photocurrent to voltage; a 10 kΩ feedback resistor sets the gain. The NE5532 is chosen for its speed advantage over general-purpose op-amps such as the LM741.
  • Filtraggio attivo: filtro passa-banda Sallen-Key del secondo ordine realizzato con LM358 (dual op-amp, due stadi), centrato sui 25 kHz. I componenti di frequenza sono due condensatori da 1 nF e una coppia di resistori da 221 kΩ e 402 kΩ. Un resistore di guadagno da 100 kΩ chiude la retroazione dell'amplificatore Sallen-Key. Dopo diversi test con topologie diverse, il filtro attivo si è dimostrato superiore ai filtri passivi in termini di ripidità della banda e stabilità del guadagno fuori banda.
  • Active filtering: second-order Sallen-Key bandpass filter built with LM358 (dual op-amp, two stages), centred at 25 kHz. The frequency-setting components are two 1 nF capacitors and a pair of resistors at 221 kΩ and 402 kΩ. A 100 kΩ gain resistor closes the Sallen-Key feedback. After testing several filter topologies, the active filter proved superior to passive filters in terms of roll-off steepness and out-of-band gain stability.
  • Rettificazione: rilevatore d'inviluppo con diodo 1N4148, resistore di scarica da 62 Ω e condensatore di livellamento, che riconverte il segnale modulato in una componente continua proporzionale all'intensità del segnale ricevuto. Questa tensione DC viene poi sogliata via software su Arduino per generare l'interrupt digitale.
  • Rectification: envelope detector with a 1N4148 diode, 62 Ω discharge resistor and smoothing capacitor, converting the modulated signal back to a DC component proportional to the received signal intensity. This DC voltage is then thresholded in software on Arduino to generate the digital interrupt.

Il lato trasmettitore — NE555P a +5 V, R = 470 kΩ + 10 kΩ, C = 47 pF, laser 650 nm — è triviale in termini di componentistica. Il ricevitore ha richiesto diversi cicli di prototipazione e misura per ottimizzare guadagno, risposta in frequenza e robustezza contro le variazioni di luce ambiente. L'intero sistema (trasmettitore e ricevitore) opera a singola alimentazione +5 V.

The transmitter side — NE555P at +5 V, R = 470 kΩ + 10 kΩ, C = 47 pF, 650 nm laser — is trivial in terms of component count. The receiver required several prototyping and measurement cycles to optimise gain, frequency response, and robustness against ambient light variations. The entire system (transmitter and receiver) runs on a single +5 V supply.

Foto e documentazionePhotos and documentation

Schema elettrico a.0.1 Schematic a.0.1
Risorse open source — Alpha Open source resources — Alpha