Aide pour la réalisation d'un Tripmaster

Bonjour,
Je recherche une personne souhaitant participer à la réalisation d'un Tripmaster pour Rallye Historique de Régularité.
Le principe du Tripmaster est de comparer en direct la moyenne imposée, par exemple 50 km/h avec la moyenne réelle réalisée par l'auto tout au long de la zone de régularité de plusieurs kilomètres, un système de contrôle par balises installées par l'organisateur vérifie les écarts au cours de l'épreuve.

Mon installation actuelle est composée d'une petite application sous Android que j'ai programmée, qui me donne en fonction du temps écoulé et de la moyenne imposée pour ce parcours le nombre de mètres théoriques parcourus, que mon copilote compare avec le compteur de vélo relié à un capteur magnétique sur la roue de l'auto.

Pour éviter la comparaison visuelle entre la tablette et le compteur de vélo, il faudrait pouvoir connecter ce capteur magnétique directement sur la tablette à l'aide d'un interface à réaliser pour que ce soit la tablette qui signale en direct l'écart de moyenne par un affichage rouge ou vert pour ralentir ou accélérer.

Je pense qu'une carte Arduino pourrai gérer le signal du capteur magnétique et envoyer à la tablette la fréquence de ce signal afin que je calcule la vitesse en fonction du diamètre de la roue, la moyenne et les kilomètres parcourus réellement et faire la comparaison en direct avec la moyenne imposée.

Ce n'est pas un projet commercial, si vous êtes intéressé vous pouvez me contacter.
Merci pour votre aide
Yves D.

bonjour,
pourquoi ne pas utiliser un gps?
tu fais un relevé toutes les X secondes et tu divise par le nombre compté.

Bonjour,
Les essais ont montrés que le GPS n'ai pas assez précis. Le système compteur de vélo + cadenceur sous Android est très précis au mètre prés il manque seulement la liaison entre les 2.
A+
Yves D.

tu peux t'inspirer de ce post
http://forum.arduino.cc/index.php?topic=472809.0

Bonsoir,
Oui j'ai parcouru ce post, mais j'aurai souhaité trouver un partenariat pour la partie Arduino de cette réalisation, sinon je vais devoir le réaliser moi même et j'ai peur de beaucoup galérer.
A+
Yves D.

ayant fais du rallye, je veux bien faire un geste sur le projet.

Salut,
Je te remercie pour ton aide.
On va commencer par le choix de la carte Arduino sachant que je souhaiterai connecter dessus un capteur magnétique de compteur de vélo et me connecter à une tablette ou un portable sous Android par son port mini USB.
Ensuite il faudra voir comment récupérer et traiter les données sous Android.
A+
Yves D.

regardes tes MP

Bonjour,
Je suis très intéressé par votre projet car je suis en train d'essayer de faire sensiblement la même chose.
Je roule actuellement avec un tripmaster terratrip mais il lui manque quelques fonctions. L'idée serait de récupérer le signal de la sonde et de l'envoyer vers une application "custom". Je devrais pouvoir me débrouiller pour la programmation mais avez vous réussi à récupérer le signal de la sonde ?

Salut,
La réalisation du TripMaster est terminé, pour la liaison Arduino / Tablette Android j'ai choisi le BlueTooth plus simple à réaliser avec Windev Mobile du coté tablette.
J'ai donc choisi le matériel suivant :
1 carte Arduino Mega pour l'acquisition de donné.
1 carte HC-05 pour la liaison BlueTooth entre la carte Arduino et la tablette
1 écran LCD (non obligatoire)
1 alimentation 12v/5v pour la carte Arduino
1 tablette sous Android
1 capteur magnétique de compteur de vélo (déjà installé sur la BETA)
Ensuite il fallait d'une part programmer la carte Arduino en langage C, je remercie Loic de Infobarque.fr qui m'a beaucoup aidé dans la réalisation du programme Arduino et d'autre part créer une application Android pour la tablette, ce que j'ai fait avec Windev Mobile.
A ce jour l'ensemble fonctionne correctement en simulation sur un vélo, reste à l'installer dans la Lancia BETA et passer en teste routier.
Si cela vous intéresse je peux donner l'application ou le programme source Windev Mobile qui m'a permis cette réalisation.

Le code source Arduino :
#include <Wire.h>
#include <LiquidCrystal_I2C.h> // Ecran LCD
LiquidCrystal_I2C lcd (0x20,16,2); // adresse 0x20, 16 caractères, 2 lignes
#include <SoftwareSerial.h> // Serie BlueTooth
SoftwareSerial BT_Serial(10, 11); // RX | TX

const byte pin_capteur=19; // broche du capteur magnetique RX1 19
int val_capteur; // valeur du capteur magnetique
unsigned long nb_tours_roue=0; // variable nombre de tours de roue
char nb_tours_roue_char[16]; // CHAR nombre de tours de roue
float perimetre_roue=1.80000; // perimetre roue en metre 99,9999
unsigned long distance=0; // distance parcourue en mètre 99.999
const byte RAZ = 10; // broche bouton remise zero compteur pin 10 et GND
volatile byte top = 0;
int compteur_anti_rebond = 1; // à modifier suivant le capteur

void setup() {
// initialisation LED port 13
pinMode(13, OUTPUT);
// Ouvre la voie serie USB à 9600 bits par seconde
Serial.begin(9600);
// Ouvre la voie avec BlueTooth à 9600 bits par seconde
BT_Serial.begin(9600);

// initialisation ecran LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("RAZ compteur");
delay(5000);
lcd.clear();

pinMode(RAZ,INPUT_PULLUP);

// initialisation broche capteur
pinMode(pin_capteur,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(pin_capteur), TOP, RISING);
}

void loop() {
if (digitalRead(RAZ) == LOW) nb_tours_roue = 0;
affichage();
digitalWrite(13, LOW); // LED on
}

// Fonction d'interruption pour le comptage du nombre de tours de roue
void TOP() {
top++ ;
digitalWrite(13, HIGH); // LED on
}

void affichage(){
if(top >= compteur_anti_rebond ){
nb_tours_roue++;
top = 0;
}

// Serial.println(nb_tours_roue); // envoi au port USB nombre de tours de roue
// BT_Serial.write(nb_tours_roue); // envoi un caractère
// BT_Serial.print(nb_tours_roue); // envoi des chaines de caractères
// BT_Serial.println(nb_tours_roue); // envoi des chaines de caractères
BT_Serial.println(nb_tours_roue); // envoi BlueTooth nombre de tours de roue

lcd.setCursor(0, 0);
lcd.print("Nbr : ");
lcd.print(nb_tours_roue); // affichage nombre tours de roue sur LCD
lcd.setCursor(0, 1);
distance = nb_tours_roue * perimetre_roue;
lcd.print("Dist : ");
lcd.print(distance); // affichage distance sur LCD

}

A+
Yves D.

Salut,
Je reviens vers vous pour améliorer le code ci dessus.

  • je souhaiterai si c'est possible ajouter une deuxième liaison BlueTooth en ajoutant une deuxième carte HC-05 pour la liaison BlueTooth entre la carte Arduino et une deuxième tablette.
  • lors de l'initialisation de nb_tours_roue par l'action de l'interrupteur l'affichage est bien remise à zéro mais pas la valeur en mémoire, je suis donc obligé de tout réinitialiser en coupant l'alimentation de l'Arduino
  • d'autre part il arrive que la liaison BlueTooth ne soit pas opérationnelle malgré une initialisation correct mais cela peux venir peut etre du programme coté tablette.
    Dans l'attente de votre aide
    Yves D.