Dan weer eens een echt tweakers-onderwerp in dit motortopic!
Zoals ik al
eerder heb opgemerkt, heb ik op basis van een Arduino zelf een GPX logger gemaakt.
Kort samengevat de functies/programma-afloop:
- RS232 communicatie met de GPS chip.
- Zodra deze ontvangst heeft wordt er een lege .gpx track aangemaakt op de sd kaart. Als deze bestandsnaam al bestaat, wordt het volgnummer opgehoogd, tot de eerstvolgende vrije bestandsnaam.
- De inhoud wordt alvast opgemaakt volgens de gpx standaard. (is een soort XML inhoud)
- dan wordt de cursor een x aantal posities voor het bestandseinde de cursor neergezet.
- Iedere seconde wordt de coördinaat, richting, snelheid en tijd weggeschreven op een lege regel.
- Bij het uitschakelen wordt de huidige data nog weggeschreven. Maar, om corrupte data te voorkomen wordt de voedingsspanning in de gaten gehouden en als deze wegvalt wordt er geen nieuwe entry meer gemaakt. Het laatste wegschrijven is mogelijk doordat ik de voeding met behulp van een supercondensator nog een x aantal seconden in leven houd.
- Er zit een knop op, die op een digitale ingang wordt ingelezen.
- er zit een HC-05 bluetooth chip in. De theorie is dat ik bij het inschakelen die knop zou moeten inhouden, en de HC-05 chip gaat dan de data naar een gepairde HC-05 in de garage overpompen. Zo zou ik een draadloze data-overdracht moeten hebben. Dat heb ik getest met een seriële monitor en toen werkte dat. De ontvanger moest ik overigens wel nog maken, "maar dat kon nooit meer zo moeilijk zijn na alle voorgaande perikelen". Daarna heeft het nooit meer gewerkt.
Afgelopen jaar heb ik gebruikt als testperiode. Daarnet heb ik de behuizing open gemaakt, en de SD kaart uitgelezen. Er vallen me een aantal dingen op:
- Er liggen geen losse onderdeeltjes in de behuizing. Geen grote schade door trillingen.
Daar ben ik eigenlijk wel heel blij mee. - Door bij iedere start een nieuwe track te starten, maak je 7-8 tracks op een dag, makkelijk. Naar de verzamelplek rijden, even aftanken, op een andere plek zetten, een stint of 4-5 met de groep, richting huis nog langs het tankstation, en dan nog naar huis. Volgens mij geen ongewone dag, maar wel veel bestandjes. Logischer zou zijn om toch een bestandje per dag aan te gaan houden. Dan moet ik de bestandsnaam dus ook echt (weer) door de datum laten genereren en er ook echt zeker van zijn dat dit lukt.
- Als dit nu niet snel genoeg lukt krijgt het bestand gewoon een volgnummer: 3 files hebben een datum, de rest een volgnummer.

- Bestandsnaam = 000000<volgnummer>.gpx --> voor de snelle tellers, dat zijn 6 nullen, vanaf de 100e track 3 cijfers, een punt en 3 letters extensie. Past dus niet in het 8.3 standaard formaat voor simpele bestandssystemen waar ik hiermee te maken heb. De library die ik heb gebruikt zou hier zelfs op vast moeten lopen, dus ik vind het bijzonder dat het lukt.
Wel simpel op te lossen door standaard 5 nullen te gebruiken. - De knop heeft nu geen functie. Het verzenden via Bluetooth geloof ik niet meer zo in. Mijn programma gebruikt al 70% opslagruimte, en ik zou dan nog meer nodig gaan hebben. Mooie nieuwe functie zou zijn als ik bij een knopdruk een POI zou opslaan. Dan maak ik uitsluitend gebruik van al ingesloten libraries.
- De laatste track dateert van 2019-09-15. Deze track heet 000000255.gpx. Die 255 vind ik wel erg verdacht, dus ik zal wel een overflow genereren in de functie die van de oplopende teller een string maakt voor de bestandsnaam. Dat is ook weer een argument voor een bestandsnaam die 100% zeker de datum bevat. Toevoeging: het volgnummer is gedeclareerd als byte, maximaal 255 dus. Die zou ik eventueel kunnen groter maken.
- Een kleine 10% van de tracks was zo klein (<4kB) dat ik ze ongelezen heb weggegooid. Van de overgebleven bestanden waren er 2 corrupt, dus dat is nog niet 1%. Ik heb nog niet gekeken welke 2 dat waren, maar dat zou ik nog kunnen uitzoeken om de reden te achterhalen.
- De nauwkeurigheid is prima.

Oh ja, @
Joopieboy is volgens mij geïnteresseerd in dit projectje, dus even taggen.