MOD A OGIVA PARACADUTE MOD B SERVO MOD C ELETTRONICA SCHEDA PORTA MOD D CORPO INF. UGELLO
Seleziona un modulo del razzo per visualizzare la scheda tecnica
← clicca sul diagramma
Modulo A — Ogiva e paracadute
La punta aerodinamica del razzo. È cava e ha un'ampia apertura laterale: dentro c'è il paracadute ripiegato, agganciato all'occhiello sul pavimento interno. All'apogeo il paracadute esce dall'apertura e si apre sopra il razzo.
  • ContenutoParacadute ripiegato
  • InnestoMaschio 12 mm nel modulo B
  • Altezza145 mm
Modulo B — Giunto e sgancio
L'anello che collega l'ogiva al resto del razzo. Sulla sua piattaforma è steso il servo SG90 che libera il paracadute quando il firmware rileva l'apogeo.
  • ServoSG90 · D5
  • TriggerΔAmp > −9 in 500 ms
  • Altezza28 mm
Modulo C — Vano elettronica
Il cuore del razzo. Dietro la porta, sulla piastra centrale, c'è la scheda avionica KiCad con Arduino Nano, nRF24L01+, MPU6050, BMP180, i connettori dei servo e il morsetto di alimentazione; dietro la piastra la batteria LiPo 2S.
  • AccessoPorta laterale
  • MCUArduino Nano
  • RadionRF24L01 · ch.100 · 250 kbps
  • PCBKiCad 8 — v3.0
Modulo D — Corpo inferiore
Il tubo alla base dei moduli stampati: sostiene la sezione avionica e la collega al serbatoio, dove l'acqua in pressione dà la spinta.
  • Diametro90 mm
  • Altezza215 mm
  • InnestoSede per il modulo C
Ugello — Sistema di Propulsione
Converte la pressione acqua+aria in spinta. Camera pressurizzata con pompa da bicicletta prima del lancio.
  • Pressione~4–6 bar (pompa manuale)
  • InnescoMeccanismo di sgancio
  • Conto alla rovescia10 s da base di lancio
Modulo A — Ogiva · Paracadute
Modulo B — Giunto · Servo di sgancio
Modulo C — Vano elettronica · Scheda e LiPo
Modulo D — Corpo inferiore
Ugello — Propulsione acqua

Firmware del razzo

Il firmware v4.0 è scritto in C++ per Arduino. Gestisce acquisizione sensori, stabilizzazione, rilevamento fasi di volo, trasmissione radio e deploy in un loop da ~10 ms.

Struttura Dati Trasmessa

Struct da 20 byte trasmessa ogni 100 ms via nRF24L01:

struct __attribute__((packed)) SensorData {
  int32_t Pitch; // gradi
  int32_t Roll; // gradi
  int32_t altitudine; // cm relativi
  int32_t paracadute; // 0=chiuso 1=aperto
  int32_t Amp; // |acc| × 10
};
Logica di Volo
  • StandbySensori attivi, servo fermi, TX on
  • DecolloAmp > 10 → stabilizzatori on
  • ApogeoΔAmp < −9 in 500 ms → para + gambe
  • Ciclo loop~10 ms (stabilizzatori)
  • Ciclo TX100 ms (telemetria)
Calibrazione MPU6050

Offset calibrati manualmente per il sensore specifico:

ax = (AcX - 2050) / 16384.0;
ay = (AcY - 77) / 16384.0;
az = (AcZ - 1947) / 16384.0;
gx = (GyX + 270) / 131.07;
gy = (GyY - 351) / 131.07;
gz = (GyZ + 136) / 131.07;
Configurazione Radio
  • ModulonRF24L01+
  • Canale100
  • Data rate250 kbps
  • PA LevelRF24_PA_MIN
  • IndirizzoABCDE

Pinout Arduino — Razzo

Mappatura completa dei pin del computer di bordo (Arduino Nano) per la versione v4.0.

PinComponenteFunzioneBus
D5Servo ParacaduteApertura paracadutePWM
D7ServoYStabilizzazione PitchPWM
D8ServoXStabilizzazione RollPWM
D9Servo GambeDeploy gambe atterraggioPWM
D10 (CSN)nRF24L01Chip SelectSPI
D11nRF24L01MOSISPI
D12nRF24L01MISOSPI
D13nRF24L01SCKSPI
A4 (SDA)MPU6050 + BMP085Data I2CI2C
A5 (SCL)MPU6050 + BMP085Clock I2CI2C

Cronologia completa del firmware

12 versioni documentate, dalla v0.0 (primo altimetro) alla v1.3 (altitudine reale in telemetria). Bug, fix e scelte architetturali per ogni release.

Visualizza Changelog →
12v