www.planeur.net | www.netcoupe.net | www.volavoile.net
Aller au contenu

rimaroc

Membres
  • Compteur de contenus

    1 017
  • Inscription

  • Dernière visite

Messages posté(e)s par rimaroc

  1. Sinon si tu peux utiliser un cable USB plus long (dans la limite de 5m normalement), ce sera (un poil) mieux.

    Mais du coax de bonne qualité (et les connecteurs de bonne qualité aussi) fera bien l'affaire.

    Mieux vaut une antenne avec un meilleur dégagement et 3m de coax que l'inverse.

     

    Pour Orléans une meilleur visu ici: http://flarmrange.onglide.com/#LFOZ,max,d60,47.898_2.162,9,#00990000:#009900ff,circles;

  2.  

    sinon une solution recente c'est un kobo (liseuse à encre électronique) sur lequel tu envois les données gps de ton tel ou de ton flarm (via bluetooth) + LK8000 , top pour la lisibilité mais en noir et blanc.

    J'imagine que XCsoar doit pouvoir aussi y être installé mais je n'en suis pas sûr.

    Tu peux nous faire un tuto pour les nuls tankés au fortran IV :-)

    D'autres l'ont déjà fait :-) et ça semble accessible aux fortranistes.

    http://www.postfrontal.com/forum/topic.asp?TOPIC_ID=8142

  3. quelques news:

    la combinaison kobo HD (6 pouces) + tel android premier prix pour fournir les infos GPS via Wifi est fonctionnelle :http://www.postfrontal.com/forum/topic.asp?TOPIC_ID=8142

    donc pour 150€ environs on a une solution avec écran e-ink bien lisible au soleil + un tel dédié (sur lequel on peut mettre xcsoar en back-up si on veut :-P )

     

    les moins: ecran N&B

    les plus: pas cher et lisibilité au soleil

  4. Pour les amateurs j'ai retrouvé ça.

    C'était pas la version définitive il me semble et c'est pas forcement très propre mais ça marche :-)

     

    #include <Wire.h>
    #include <Adafruit_BMP085.h>
    /* deuxième sketch pour IAS pour LK8000 dans une forme plus rigoureuse*/
    //int ptot=1013; //à supprimer quand BMP085 dispo;
    Adafruit_BMP085 bmp;
    void setup(){
    Serial.begin (57600);
    bmp.begin();
    }

    void loop(){
    Serial.println("loop");

    while (Serial.peek()!='$'){
    if (Serial.available()<1){
    continue;
    }
    Serial.print(char(Serial.read())); //penser à enlever le LN!
    }
    char nmea[83]={'$'};
    get_nmea(nmea); //entre toute la trame dans la chaine nmea
    if (get_entete(nmea)==true){ //si l'entete est celle qui donne la p_stat
    Serial.println("if_loop true");
    Serial.print("ptot "); Serial.print(bmp.readPressure()/100);Serial.println("hpa");
    int ias=10*sqrt((2*((bmp.readPressure()/100) - get_pstat(nmea)))/1.225);
    //calcul de l'IAS
    Serial.print("IAS caculé est de: "); Serial.print(ias);Serial.println("dm/s");//penser à enlever le LN!
    envoie_trame_ias(ias);

    }else {
    Serial.print("if loop false");
    // Serial.print(nmea);
    }
    }

    void get_nmea(char nmea[]){
    // Serial.println("get_nmea");
    for (int i=0; i<83; i++){
    while (Serial.available()<1); // attente de 1 caractères dispo dans le buffer
    nmea=Serial.read(); //replissage de la chaine nmea avec les caratcères dispo
    if (nmea==10){ //si le caractère est <LF> on arrête de remplir
    // Serial.print("caractere LF trouvé");
    break; // et on quitte la boucle
    }
    }
    Serial.println(nmea); // on renvoie la trame sur la sortie serie //penser à enlever le LN!
    return;

    }
    boolean get_entete(char nmea[]){
    // Serial.print(nmea);
    char entete_alti[8]="$PGRMZ,";
    for (int i=0;i<6;i++){
    if(entete_alti!=nmea){
    // Serial.print("condition fausse");
    return false;
    }
    }
    return true;
    }


    int get_pstat(char nmea[]){
    char char_pstat[7]={'\0'};
    int pstat;
    for (int i=7 ; nmea!=',' ; i++){
    char_pstat[i-7]=nmea;
    }
    // Serial.print(char_pstat);Serial.println("pieds");
    pstat= atoi(char_pstat);
    // Serial.print(pstat);Serial.println("pieds");
    pstat=1013.25 * pow((288-(0.0065*pstat*0.3028))/288,5.255); //formule de conversion pieds en hpa
    // Serial.print("pstat "); Serial.print(pstat); Serial.println("hPa");
    return pstat;
    }

    void envoie_trame_ias(int ias){
    // Serial.println("envoie trame ias");
    char char_ias[4]={'\0'};

    char char_nmea_ias[15]="$PLKAS,";
    int n;
    itoa (ias,char_ias,10);
    // Serial.print("char_ias: "); Serial.println(char_ias);

    for (int i=7; char_ias[i-7]!='\0';i++){
    char_nmea_ias=char_ias[i-7];
    n=i;
    // Serial.print("i= "); Serial.println(i);
    }
    char_nmea_ias[n+1]=',';
    /* char XOR=0;
    for (int i=0; char_nmea_ias!='\0';i++){
    XOR^=char_nmea_ias;
    }*/
    char_nmea_ias[n+2]=get_XOR(char_nmea_ias);
    char_nmea_ias[n+3]=13;
    char_nmea_ias[n+4]=10;
    Serial.print (char_nmea_ias);
    return;
    }

    char get_XOR(char trame[]){
    // Serial.println("get_XOR");
    char XOR='\0';

    for (int i=0; trame!='\0';i++){
    XOR^=trame;
    }
    return XOR;
    }

  5. je ne connais pas le format pour alimenter xcsoar en info mais en séparant mieux la partie calcul de la partie envois sur le port serie, on pourrais facilement adapter le truc à d'autres format, le pense à lk8000. Voir même mettre les deux formats et sélectionner via un cavalier (il reste un bon paquet de pin dispo).

     

    J'avais fait un truc dans le style mais qui s’interfaçait entre le flarm et le pda. Il récupérai le pression baro du flarm, récupérait la Ptot via un BMP085 (de mêmoire) et renvoyait vers le pda toutes les info du flarm + la vitesse air affichée et/ou réelle. on pouvait facilement rajouter toutes sortes de capteur comme toi.

     

    ça marchait bien sur mon établi mais je n'ai jamais eu l'occasion de le tester en réel.

     

    Javais fait tout ça sur mon ancien pc qui a rendu l’âme et je n'ai pas encore eu le courage le sortir le DD. je peux retrouver tout ça si besoin.

     

    Romaric

×
×
  • Créer...