Architettura Software

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