Skip to content
Leowrin edited this page Dec 10, 2021 · 11 revisions

Principe général

Le RaspberryPi est connecté à un capteur barométrique ainsi qu'à un module GPS. Le module GPS est utilisé pour enregistrer la position(N, E) et la vitesse du vélo, et le capteur barométrique est utilisé pour mesurer la variation d'altitude du vélo, au cours du temps. Ces données sont enregistrées puis utilisées pour calculer le travail fournit par le cycliste, ainsi que la puissance délivrée à chaque instant.

Principe de fonctionnement

Un script python (logger.py) se lance au boot du RaspberryPi, il tourne en boucle infinie. Lorsque l'utilisateur met à terre le pin record_switch (default=36), le programme enregistre les données GPS et barométriques toutes les secondes. Lorsque l'utilisateur déconnecte le pin record_switch du GND, le programme enregistre toutes les données sur un fichier logged_data.csv dans la structure suivante : /home/pi/bikecomputer/logs/<DATE>/logged_data.csv.

Une fois les données enregistrées, l’exécutable compute est lancé, il crée un fichier nommé computed_data.csv (structure du .csv) qui contient toutes les données nécessaire à la prochaine étape.

C'est finalement plotter.py qui est lancé, il met sous forme de graphe les données calculées à l'étape précédente.

Acquisition des données

Le RaspberryPi est connecté à un module GPS NEO-6M via protocole UART. La fréquence de transmission de base est de 1Hz, elle est gardée, car utile pour faciliter les calculs. A chaque fois que le RaspberryPi reçoit un message du NEO-6M (avec ou sans position GPS acquise), il sample la pression atmosphérique grâce au capteur barométrique bmp280, avec lequel il communique via protocole I2C. Le module GPS a ainsi également un rôle d'horloge. Si un signal GPS est acquis, les degrés-minutes sont convertit en degrés-décimaux. Ces degrés sont ensuite enregistrés avec la pression.

Clone this wiki locally