Variometro – La rivincita

Clamoroso successo! Un amico, compagno di voli, mi ha chiesto di fargli un microvario e un lettore mi ha chesto il codice per programmare il processore. Sono sempre stupito di queste cose: comunque è facile accontenetare tutti. Il codice completo è qui ed è basato sul codice di esempio del sensore di pressione. Il mio contributo è veramente minimo: in pratica si mettono in un vettore i dati di altezza e i tempi in cui spono stati rilevati, li si interpola linearmente e si usa la pendenza della retta di iterpolazione per comandare il tono del beep.

[code lang=”c”]
void loop()
{

float media;
float temperature = bmp085GetTemperature(bmp085ReadUT());
float pressure = bmp085GetPressure(bmp085ReadUP());
float atm = pressure / 101325; //Uncompensated caculation – in Meters
float tempo=millis();

// Buffero i campioni nei vettori fifo di altezza e tempo
for(int cc=1;cc<=maxcampioni;cc++){ alt[(cc-1)]=alt[cc]; tim[(cc-1)]=tim[cc]; }; alt[maxcampioni]=altitude; tim[maxcampioni]=tempo; // Effettuo l'interpolazione lineare (minimi quadrati) per determinare il // tasso di varazione verticale float stime=tim[maxcampioni-campioni]; float N1=0; float N2=0; float N3=0; float D1=0; float D2=0; for(int cc=(maxcampioni-campioni);cc10000){ //Primi dieci secondi non beeppo
if ((tempo-beep)>periodoBeep){
beep=tempo;
if (vario>.40 && vario<10 ){ periodoBeep=300; tone(buzzPin,900+100*vario ,100); } if (vario<-2.5){ periodoBeep=300; tone(buzzPin,500,200); } } } delay(20); } [/code]

2 pensieri su “Variometro – La rivincita”

  1. ciao vorrei un consiglio
    Sono un pilota di parapendio e sto costruendo un variometro con scheda Arduino Mini Pro 3,3v collegato al sensore BMP180 e modulo hc-05 per collegarlo ad uno smartphone e un app dedicata (xctrack)
    il programma che tu hai inserito(quello integrale) puo’ andare bene ?
    che modifiche devo fare per avere la maggior sensibiità di variazione di altimetria e quindi di pressione (sensibilità 0,1)

    grazie per un eventuale risposta

    Fabrizio

  2. Ciao, scusami per il ritardo ma, come avrai notato, non frequento molto il mio sito 😀

    Non saprei veramente che dirti: il programmino che avevo fatto era veramente spartano (e sono passati anni ormai). Posso dirti che, essendo io un pilota abbastanza scarso, la troppa sensibilità mi crea disturbo. In effetti il mio vario vero (un digifly) è settato per iniziare a pigolare a > +0.3 e < -2.5 e dopo un paio di secondi che la condizione è mantenuta. Il minivario che avevo programmato era fin troppo reattivo: ritengo che ci vorrebbe un software un po' più furbo di quanto ho fatto io

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *