Arduino • Systèmes embarqués • GPS

Traceur GPS solaire pour la randonnée

Traceur GPS autonome et intégré au matériel, avec conversion UTM en temps réel et circuit de charge solaire pour la randonnée hors réseau.

08 mai 2024

Contexte

Le traceur GPS solaire est né d'un besoin précis en trek haute altitude : un outil de positionnement secondaire et robuste, indépendant des batteries fragiles des smartphones et des écosystèmes cloud propriétaires. Si les smartphones sont puissants, leur autonomie est insuffisante pour les expéditions de plusieurs jours, et les coordonnées GPS classiques (Lat/Lon) sont difficiles à exploiter rapidement avec les cartes papier traditionnelles.

L'objectif était de concevoir un dispositif autonome capable de fournir des coordonnées UTM (Universal Transverse Mercator) de haute précision, formatées spécifiquement pour les cartes IGN de randonnée.


Contraintes techniques et logique embarquée

Le projet repose sur la plateforme Arduino Nano (32 Ko flash, 2 Ko SRAM), qui impose des contraintes de ressources importantes. Gérer des calculs géodésiques complexes sur une puce avec seulement 2 Ko de SRAM a nécessité une approche très optimisée de la gestion mémoire.

Moteur de transformation des coordonnées

Le défi technique central était la conversion en temps réel des phrases GPS brutes en coordonnées UTM. Plutôt que d'utiliser des bibliothèques externes lourdes, j'ai implémenté :

  • Transformations matricielles : Des routines C++ personnalisées effectuent la conversion directement pour minimiser la charge sur l'architecture AVR
  • Optimisation mémoire : Utilisation des macros F() et PROGMEM pour garder les constantes chaînes en mémoire flash, évitant la saturation de la SRAM pendant les calculs intensifs
  • Logique séparée : Le firmware découple le parsing série des phrases NMEA (via TinyGPS++) de la logique de rendu d'affichage pour des mises à jour fluides sans perte de paquets GPS

Affichage OLED de la position UTM


Ingénierie matérielle et autonomie énergétique

Pour un dispositif destiné à la nature, la durabilité et la gestion de l'énergie ont été traitées comme des exigences prioritaires.

Circuit de charge solaire

Pour une autonomie indéfinie, j'ai conçu un sous-système d'alimentation dédié :

  • Intégration TP4056 : Un chargeur de batterie lithium dédié gère l'entrée d'un panneau solaire compact
  • Sortie régulée : Le système assure une alimentation 5 V stable au module GPS et à l'écran OLED, quelles que soient les variations d'ensoleillement

Interface robuste

L'interface utilisateur repose sur un écran OLED I²C (Adafruit SSD1306) à fort contraste, lisible en plein soleil. Il affiche de à travers 3 pages de navigation:

  • Coordonnées UTM en direct (Est/Nord)
  • Coordonnées Lat/Lon en direct
  • Altitude, cap et vitesse actuels
  • Qualité du signal et statut de verrouillage satellite
  • Métriques batterie et charge en temps réel

Le module GPS (Quectel L80RE) se connecte en série et atteint une précision d'environ ±5 m en milieu montagnard, suffisante pour la navigation terrain avec cartes papier.

Vue interne du traceur GPS montrant le circuit solaire, l'Arduino Nano et le module GPS


Contraintes et compromis techniques

Le compromis principal concernait la densité de fonctionnalités et la stabilité du système. Les premières versions souffraient de dépassements de pile dus à la complexité des calculs géodésiques. En affinant les opérations matricielles et en remplaçant la bibliothèque String par des chaînes style C (tableaux de caractères), j'ai réduit l'empreinte mémoire d'environ 40 %, permettant un fonctionnement plus fiable à long terme.


Stack technique

  • Plateforme : Arduino Nano (AVR, usage direct des registres si nécessaire)
  • GPS : Quectel L80RE, TinyGPS++ pour le parsing NMEA
  • Affichage : Adafruit SSD1306 (OLED I²C)
  • Alimentation : Chargeur TP4056, batterie Li-Po, panneau solaire
  • Source : Arduino-GPS-Display — code complet, schémas PCB, schémas de câblage

Bilan

Ce traceur illustre une intersection réussie entre programmation embarquée bas niveau et utilité terrain. Il montre qu'avec du matériel limité comme l'Arduino Nano, il est possible de construire des outils spécialisés à forte utilité en priorisant l'optimisation mathématique et l'efficacité énergétique. Il reste un compagnon de confiance sur les sentiers, servant de pont fiable entre la précision numérique et les cartes papier physiques.