-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
Un script python (logger.py
) se lance au boot du RaspberryPi, il tourne en boucle infinie. Lorsque l'utilisateur met à terre le pin GPIO 16 (par défault), le programme enregistre les données GPS et barométriques toutes les secondes. Lorsque l'utilisateur déconnecte le pin 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 gps
est lancé. C'est lui qui calcule toutes les informations nécessaires, tel que les déplacements, la puissance, l'énergie etc.. Il crée un fichier nommé computed_data.csv
qui contient toutes les données nécessaires à 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.
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. Donc à chaque seconde, le RaspberryPi reçoit un message du NEO-6M (avec ou sans position GPS acquise) sous la norme NMEA 0183. Cela lui donne le tempo pour échantillonner la pression atmosphérique grâce au capteur barométrique BMP280, avec lequel il communique via protocole I2C. Le module GPS a donc un rôle d'horloge. Si un signal GPS est acquis, les degrés-minutes reçus sont convertis en degrés-décimaux. Ces degrés sont ensuite enregistrés avec la pression.
variable | latitude | longitude | altitude GPS | pression |
---|---|---|---|---|
numéro de colonne [i] | 0 | 1 | 2 | 3 |
(correspond à la matrice coordinates dans logger.py
)
nom de variable dans le code C | lv95X | deltaX | lv95Y | deltaY | deltaPos | distance | (altitude GPS)* | deltaHGPS | powergGPS | workgGPS | deltaHPres | powergPres | workgPres | power | sumEnergy | altimetry |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
numéro de colonne | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
*n'est pas utilisée dans compute.c