Ce que j'aime dans le BASEjump c'est qu'il y a de la place pour la création et l'imagination.
J'adore fabriquer des trucs et toute la partie recherche qui va avec.
Je suis un ancien informaticien de l'armée de terre, et après une petite période d'école où j'ai appris les bases j'ai dû constamment rafraîchir mes connaissances car l'informatique évolue constamment.
J'ai appris les bases de la programmation en école, mais j'ai dû quasimment tout réapprendre il y a quelques années quand j'ai voulu fabriquer mon premier enregistreur GPS avec Arduino.

Mon enregistreur GPS

Quest-ce donc que ce machin ?
C'est un programme d'enregistrement de données GPS écrit en Circuitpython. Il lit les données provenant de la puce GPS, les traduit et les écrit dans un fichier '.csv' (fichier texte avec valeurs séparées par une virgule) qui peut être lu via USB.

Qu'est-ce qui est nécessaire
Vous n'avez pas besoin de savoir programmer mais il est préférable de ne pas vouloir juste faire un enregistreur GPS pas cher car vous aurez à faire du debugging, ça marche rarement la première fois...
Vous n'avez pas besoin de parler anglais mais il faut mieux le comprendre quand même.
Vous aurez aussi à faire de la soudure et pour cela il faut:
- un fer à souder
- de l'étain
- du "flux", sorte de pâte qui conduit la chaleur et qui fait que l'on soude bien sans cramer la carte sur laquelle on soude (l'expérience qui parle...)
- un nettoyeur de fer à souder, éponge ou mieux les trucs avec de la ferraille dedans (sorte d'éponge en métal)
- des pinces pour maintenir ce que l'on soude
Vous aurez besoin d'une imprimante 3D pour fabriquer la boite.
Un ordinateur pour télécharger le logiciel sur la carte.

Les composants
- la carte mère est une ItsyBitsy de Adafruit, vous pouvez prendre une M0 Express (celle que j'ai utilisée) ou une M4 Express quiest un peu plus puissante pour la même taille. Plus de puissance = plus rapide pour enregistrer les données du GPS mais aussi plus de consommation électrique. Je ne sais pas combien de temps peut tenir la batterie je n'ai pas encore testé. En passant normalement n'importe quelle carte compatible Circuitpython doit fonctionner.https://www.adafruit.com/product/3727
https://boutique.semageek.com/fr/1253-adafruit-itsybitsy-m0-express-pour-circuitpython-arduino-ide.html
- la puce GPS est une Beitian BN-220 (un copie chinoise de uBlox, voir la photo du schéma de câblage), Vous pouvez prendre n'importe quelle puce uBlox, par exemple la Drotek DP0106 que j'utilise dans mon plus gros enregistreur. Vous aurez alors à redessiner la boite. Aliexpress ou Amazon suivant si vous êtres pressé ou pas.
- une carte d'alimentation pour connecter la batterie, j'ai choisi l'Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy.https://www.adafruit.com/product/2124
https://boutique.semageek.com/fr/725-adafruit-pro-trinket-liionlipoly-backpack-add-on.html
- une batterie, max 150mAh à cause de la taille si vus voulez que cela tienne dans la boite que j'ai dessiné. Peu importe la marque mais attention à avoir un connecteur compatible avec la carte au dessus.https://www.adafruit.com/product/1317
https://boutique.semageek.com/fr/1031-batterie-lithium-ion-polymere-37v-150mah.html
- un bouton pour allumer et éteindre.https://www.adafruit.com/product/805
https://boutique.semageek.com/fr/468-switch-double-spdt.html
- 2 résistances de 100Kohm pour créer un diviseur de tension qui servira au programme à savoir si l'USB est connecté.

Le programme
Il faut en premier faire la mise en marche de la carte, pour cela il faut suivre le tuto d'Adafruit (en anglais):https://learn.adafruit.com/introducing-itsy-bitsy-m0/circuitpython
Pour les récalcitrant il y a celui de MCHobby qu'il faudra un peu adapter car il est fait pour une autre carte (remplacer FeatherM0 par ItsyBitsyM0 en gros) : https://wiki.mchobby.be/index.php?title=FEATHER-M0-MicroPython
Je recommande d'aller au moins faire les 2 pages suivantes (jusqu'au téléchargement d'un programme sur la carte).
Télécharger les fichiers à partir de Github : https://github.com/AntoineLaporte/CircuitPython-GPS-logger-uBlox
Extraire les fichier du dossier compressé et copier tout sur le lecteur CIRCUITPY (remplacer les fichier dans la destination si nécessaire).
Le programme est prêt, il ne fonctionne que si l'USB n'est pas connecté et l'appareil nécessite d'être éteint et rallumé après déconnexion de l'USB.
Si vous voulez voir le code il est dans les 2 fichiers ".py"
Le fichier Debugging.txt contient ce qu'il faut pour débloquer la carte ou formater le lecteur.

Cablage
C'est exactement ce qui est sur le dessin !

D'autres photos sont disponibles en bas de page.

La boite
Vous pouvez la télécharger à partir de Thingiverse, si vous ne connaissez pas Thingiverse surtout n'allez pas y voir tout ce qu'il y a, c'est un coup à y passer de heures.
https://www.thingiverse.com/thing:4077387

Debugging
Si le programme commence à ne pas fonctionner:
- sauvegardez vos données GPS
- rechargez le Firmware comme expliqué dans les tutos
- ouvrez MU
- connectez la carte
- faire un Ctrl+C dans la console/serie MU pour rentrer dans le REPL, un ">>>" devrait apparaître
- ouvrir le fichier Debugging.txt et copier les lignes en dessous de "# to reset all" dans la console
- appuyez sur Entrée
- le lecteur devrait être éjecter et revenir
- copier les fichiers originaux que vous avez téléchargé sur le lecteur
- c'est reparti !

Petits trucs
Si la sarte dit qu'elle n'est pas connectée quand vous essayez d'accéder à la console//série, il fait la reseter et essayer de démarrer la console juste après le bruit de connexion
des fois vous aurez à ouvrir puis fermer et réouvrir la console pour avoir accès à une console qui fonctionne
si un jour vous voulez jouer avec de l'Arduino et que vous avez un 'port busy' lors du téléchargement ce petit truc fonctionne aussi

Comment ça marche ?
Vous l'allumez.
La Led s'allume en vert.
A un moment donnée la led va clignoter rouge et vert (quand le GPS envoie des données correctes), l'enregistrement a commencé.
Le programme va enregistrer le fichier sur la mémoire accessible si vous sautez (plus de 1 m/s de vitesse verticale) et le fera 10 secondes après le posé (10 secondes avec moins de 1 m/s de vitesse verticale), la led va arrêter de clignoter.
Vous pouvez enregistrer sans sauter mais il faut pour cela connecter l'enregistreur à de l'USB avant de l'arrêter, ça marche même si e sais pas vraiment pourquoi.
Le maximum de données sur la mémoir est de 2Mb soit à peu près 1 heure d'enregistrement, n'oubliez pas de vider souvent la mémoire.

License
C'est complètement gratuit et open-source.
Ne pas en faire un usage commercial.
Vous pouvez faire un petit don ici:
paypal.me/AntoineLaporte