Calcul de vitesse

Bonjour tout est dans le titre. J'ai un accéléromètre et grâce à l'accélération en m/s2 j'arrive à obtenir une vitesse en m/s mais sa reste une solution peut fiable car je cumule des erreurs (vibration, vitesse des relevé du capteur, variation d’accélération et décélération …) sur la vitesse et au bout 1h d'accélération et décélération a l’arrêt j'ai une vitesse très élever ou très négative. Avez-vous une idée comment mesurer une vitesse fiable d’un objet volant donc sans roue ?

bonjour, gps

EDIT : tu veux mesurer la vitesse sur quoi et en faisant quoi? une ligne droite, un parcours, etc....

Yep, pareil, une puce GPS a une quinzaine d'euros, 2-3 lignes de code et tu aura une vitesse précise et juste

D'accord j'y avait pensé mais j'aurais crus que sa serai encore plus compliquer a obtenir la vitesse merci je vais me renseigner dessus c'est pour un drone et dans tout les cas il aura une puce GPS sa tombe bien.

Pour info qu'elle référence de module GPS vous me conseillez, car il y en beaucoup ?

J'ai acheté exactement cette référence il y a peu. Elle marche au poil, pas de configuration nécessaire https://www.amazon.fr/dp/B011BBMKA4/ref=cm_sw_r_awd_BLYnwb2SFWR26

Et si tu es intéressé, j'avais un petit code pour afficher latitude longitude vitesse et cap sur un LCD 16x02

attention, le gps ne fonctionne qu’en plein air et très très très mal en indoor.
si tu expliquais ton projet, ca serait plus simple.

Ben simplement faire un drone de plein air en haute montagne principalement.

Faremos:
Ben simplement faire un drone de plein air en haute montagne principalement.

donc gps

Oui voila je vais prendre celui que ma conseiller Jambe merci

Voici mon fameux code.

Pour explication, mon setup me permettait de voir si mes futurs affichages se plaçaient correctement sur mon LCD, et aussi le gros delay pas beau de 30 000 ms donnait suffisamment de temps au GPS de choper un fix, vraiment pas nécessaire car le loop fonctionnait sans fix, et surtout affreux, il aurait été plus opportun de tester le fix avant d’engager le loop par exemple.

Je suis passé aussi par une fonction a part histoire de me faire la main. Ce code etait mon premier mini projet d’apprentissage.

#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include <TinyGPS++.h>

SoftwareSerial ss(2, 3); // ouverture voie serie soft
LiquidCrystal lcd(4,5,6,7,8,9); // creation objet lcd
TinyGPSPlus gps; // creation objet GPS


void setup() 
{
    ss.begin(9600); // ouverture de la voie serie
    lcd.begin(16,2); // initialisation de l'écran
    lcd.print("latxxxxxx");
    lcd.setCursor(12, 0);
    lcd.println("XXX");
    lcd.setCursor(0, 1);
    lcd.print("lonxxxxxx");
    lcd.setCursor(13, 1);
    lcd.print("kmh");
    delay(2000);
    lcd.clear();
    delay(100);
    lcd.println("wait 30 sec");
    delay(30000); // methode trop facile d'attente d'un fix gps
    lcd.clear();  

}

void loop() 
{
  while (ss.available())  // tant que le gps fournie des data alors...
    if (gps.encode(ss.read()))  // si gps.encode est "true" alors on lit les data du gps (j'ai galeré 
sur ce point, avant de comprendre que gps.encode() doit renvoyer true, c'est tout.)


      {displayInfo();} // alors on appelle la fonction d'affichage.
}

void displayInfo() //fonction d'affichage 
{
lcd.setCursor(0, 0);
lcd.print(gps.location.lat(), 6);  // affiche la latitude avec 6 décimales
lcd.setCursor(13, 0);
lcd.print(gps.cardinal(gps.course.deg())); // converti et affiche le cap en degré en cap "point cardinaux" cad N NE NNE E etc...
lcd.setCursor(0, 1);
lcd.print(gps.location.lng(), 6); // affiche la longitude avec 6 décimales
lcd.setCursor(12, 1);
lcd.print(gps.speed.kmph()); // affiche la vitesse en km/h


}

Si tu as des questions sur ce code, hésites pas