L'objectif de ce projet est d'enregistrer des trames NMEA à partir d'une carte de réception GPS. J'ai fait le choix d'une interface minimaliste avec une diode rouge et un bouton poussoir.
1 Le matériel
1.2 L’equipements
Ce dont vous aurez besoin :
Knolling
1.2 Le câblage du récepteur GPS au RPI
Il faut être attentif aux connexions RX et TX:
- connectez la broche TX du GPS à la broche RX du RPI
- connectez la broche RX du GPS à la broche TX du RPI
Câblage
1.3 Le détail du schéma électronique
Valeur de la résistance pour le montage de la diode :
Il est couramment admis que les diodes standards fonctionnent bien avec une résistance 100 fois supérieure à la tension fournie. Donc j’utilise dans mon montage une résistance de 330ohm, pour une tension de 3.3v
Montage du bouton poussoir :
La résistance de tirage (pull-up), permet d’avoir une tension haute ou basse bien nette de sorte que le RPI puisse lire la valeur en entrée sans ambiguïté.
Le condensateur :
Lors d’un appui sur le bouton il y une création de signaux parasites induits, donc on ajoute un condensateur pour améliorer la qualité du signal du bouton poussoir.
Quand on appuie sur le bouton, le condensateur se décharge de manière maîtrisée et ainsi le signal est filtré.
Résistances de protection limitation de courant :
La broche GPIO 4 peut être initialisée dans le programme en tant que sortie ou en tant qu’entrée.
Le but de la résistance de protection est de protéger la broche GPIO si elle est définie accidentellement comme une sortie plutôt que comme une entrée.
Schéma
Nomenclature :
Réf schématique | Description | Valeur |
---|---|---|
J1 | raspberry pi | |
J2 | recepteur neo6m | |
SW1 | bouton poussoir | |
D1 | diode 5mm | |
C1 | condensateur | 100 nF |
R1 | resistance | 10 kohm |
R2 | resistance | 1 kohm |
R3 | resistance | 330 ohm |
2 Le logiciel
2.1 Le détail de la conception
- lorsque le programme démarre, la diode clignote rapidement, le programme attend que le bouton poussoir soit enfoncé.
- une pression de courte durée sur le bouton poussoir :
- déclenche l’enregistrement des trames NMEA, la diode reste allumée
- ou met en pause l’enregistrement, la diode clignote lentement
- une pression prolongée sur le bouton poussoir arrête le programme
- pour redémarrer le programme, vous devez redémarrer le logiciel Raspberry pi
Organigramme de programmation
2.2 Les dépendances
- python 2.7
- python-serial
2.3 L’installation
Pour lancer l’application au démarrage :
- copier le fichier
app.py
dans le répertoire/home/pi/
- creer un fichier
raspberry-pi-gps-logger.service
dans le répertoire/lib/systemd/system/
- exécutez les lignes de commande suivantes :
systemctl start raspberry-pi-gps-logger
etsystemctl enable raspberry-pi-gps-logger
Fichier raspberry-pi-gps-logger.service
:
[Unit]
Description=Data recorder
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/pi/app.py
[Install]
WantedBy=multi-user.target
2.4 Post-traitement des données
Pour visualiser les données enregistrées, vous devez convertir le .nmea
en .gpx
Vous pouvez utiliser la commande suivante :
gpsbabel -i nmea -f file-in.nmea -o gpx -F file-out.gpx
Le code source
Le code source est accessible sur Github :
https://github.com/Pinaute/raspberry-pi-gps-logger/blob/master/app.py