Bonjour à tous,
La discussion a continué sans moi, je pensais avoir des notifications !
Bon alors voici quelques infos concernant mes travaux sur le sujet.
De mon coté chaque capteur j'utilise la fonction : GPIO.add_event_detect(Pin_radar_1, GPIO.RISING, m1_step_2, bouncetime=cfg_bouncetime)
Ca exécute une fonction uniquement quand l'événement se produit, avec le bouncetime ca évite aussi des mauvaises surprises de rebonds.
Utilisant des capteurs de proximités, mon projet ne fonctionne que pour une voie et est destiné a des tests. Je ne fait pas la différence entre la voie 1et 2.
Mais ca a l'avantage d'être facile a mettre en œuvre. Et fonctionne sur tout les circuits, on pose le système le long de la piste.
J'ai fait un script de gestion de course mais avec la détection fiable que sur une voie, je ne l'utilise pas. (J'ai une nouvelle idée pour la détection on verra cela dans plusieurs semaines).
Donc j'ai une procédure de test :
Quelques infos de la 1ere version ici : https://noscollections.ddns.net/carrerago/?p=908
Objectif, définir des valeurs comme l'accélération, la vitesse max.
Tests des 1m : temps pour faire 1m départ arrêté et vitesse mesuré à 1m
Un relais est mis entre la piste et la manette branché sur le turbo.
2 capteurs infrarouges sont 1m après le départ, les 2 capteurs sont espacé de 6-8 cm.
Sur le raspbérry je déclenche le test avec un bouton sur l'interface graphique de python.
Je note le temps, déclenche le relais, la voiture démarre a fond.
A 1m, je note le temps, au passage des 2 capteurs. et je coupe le relais pour que la voiture s'arrête.
Avec les temps, un petit calcul et j'ai le temps pour faire 1m. Et la vitesse a 1m.
J'enregistre les données dans un fichier CSV, et je fais pleins de tests sur toutes les voitures.
J'ai ainsi les caractéristiques de mes voitures.
Couplé avec un peu de code et un serveur web sous python, j'ai ca sur mon ordinateur :
J'ai un autre test, le départ lancé pour avoir la vitesse max. Je contrôle la voiture a la manette, je passe un virage au plus vite, un capteur en fin de virage déclenche le turbo, en fin de ligne droite (assez longue), j'ai mes 2 capteurs qui mesure la vitesse.
Fort de ces premiers tests il y a quelques mois, cet été j'ai fait une version plus évoluée.
1er tests sur piste First : https://noscollections.ddns.net/carrerago/?p=2755
Sur voitures GO : https://noscollections.ddns.net/carrerago/?p=2770
Le principe est identique sauf que j'ai 8 capteurs répartis sur 1m.
Ainsi j'ai une courbe d'accélération.
J'ai aussi noté la distance d'arrêt après 1m. Les gaz sont coupés à 1m, et la voiture met plus ou moins de temps pour s'arrêter. Je a mesure et la note manuellement. Avec un calcul j'ai la décélération.
--------------------------------
Concernant le multithread
--------------------------------
De base pour le nombre de tours avec add_event_detect pas besoin de multithread
Par contre moi je l'utilise pour le serveur web, chacun son thread. Un pour le serveur, un autre pour la détection.
Le serveur web permet d'avoir les données en live avec une page web. Avantage, ca fonctionne sur PC, téléphone tablette, télé connectée