APRS-Tracker - Software
English version
Hier finden Sie alles zum Thema Software für
den AVR-Tracker. Das Projekt wurde mit AVR-Studio-Projekt
in Verbindung mit WinAVR
erstellt. Diese Programme können kostenlos heruntergeladen werden. Bitte
beachten Sie, dass Sie zum Programmieren eines AVR mit AVR-Studio auch einen
hiermit kompatiblen AVR-Brenner besitzen müssen. Das einfach Drucker-Port-Kabel
funktioniert nicht. Hierfür ist aber die Freeware PonyProg
kostenlos verfügbar.
Aktuelle Version: APRS_Tracker_Software_230608.zip
vom 23.6.2008
To Do-Liste
- GUI zum komfortablen Erstellen der EEPROM Datei
Ich denke da an ein kleines Programm, dass aus Text-Eingabefelder und Options-Auswahlmöglichkeiten
besteht und die Hex-Datei für das EEPROM aus den Eingaben automatisch
generiert.
- Komprimiertes Format der Daten-Aussendung
Die Daten werden zur Zeit im nicht-komprimierten Format ausgesendet. Das ist
zwar gut lesbar und einfach in der Programmierung, verschenkt aber viel Übertragungskapazität,
weil die Redundanz sehr hoch ist. Laut dem APRS-Protokoll ist dabei für
die Berechnung der Geschwindigkeit das Bilden ein Logarithmen nötig.
Auf einem 8-Bit Prozessor ohne Co-Prozessor ist das natürlich nur begrenzt
praktikabel. Daher werde ich wohl eine Werte-Tabelle benutzen.
Geschichte der Änderungen
- 30.05.09
Ich habe mich als Vorbereitung zum Fichtenfieldday des OV
Lennestadt O28 noch einmal ein wenig mit der Software des Trackers beschäftigt.
Als größte Änderung habe ich das #define zum einstellen des
TX-Delays in die StdDefines.h ausgelagert und nun auf ca. 200 ms eingestellt.
Das sollte die Aussendungen kürzer halten, aber mit den meisten Sendern
gut funktionieren.
- 23.06.08
Auf Hinweis von Harald, DL1HW, habe ich eine kleine Änderung an der Software
vorgenommen. In der letzten Version war das "#define DEBUG" aktiv,
weshalb der Tracker alle 4 Sekunden sendet. Diese Einstellung ist nur für
Testzwecke gedacht. Damit es da zu keinen Verwirrungen kommt, habe ich in
der jetztigen Version das "#define DEBUG" auskommentiert.
- 22.05.08
- Ich habe den Temperatur-Sensor von der Platine entfernt. Die Änderung
in der Software besteht also darin, dass ich die Software-Teile, die mit dem
Temp-Sensor zu tun habe, bei #ifndef-Direktive auskommentiert habe. Das #define
heißt "TEMP". Wenn es nicht definiert ist, wird der Software-Teil
des Temperatursensors nicht übersetzt.
- 17.05.08
Nach langer Zeit und einiger Rückmeldung habe ich mich mal wieder mit
der Software befasst. Es sind in diesem Zip-File keine Änderungen an
der Software des AVR vorgenommen, allerdings habe ich das HEX-File für
das EEPROM so angepasst, dass als Pfad WIDE1-1, WIDE2-1 verwendet wird. Dies
ist auf Grund der gestiegenen Belastung der 144.800 MHz nötig, aber gleich
gut, da inzwischen viele Internet-Gateways installiert sind. Ich empfehle
jedem, diese Änderung auch in seinem Tracker zu machen.
- 16.07.07
In der Version vom 14.7.07 war noch ein dummer Programmier-Fehler (& und
&& vertauscht), der dafür sorgte, dass die neu eingeführten
Konfigurations-Möglichkeiten nicht richtig funktionierten. Dies ist jetzt
aber behoben. Außerdem wurde die Möglichkeit eingebaut, per EEPROM
festzulegen, ob der Tracker beim Einschalten auf ein gültiges GPS-Signal
wartet und erst dann mit dem Senden beginnt oder ob immer gesendet wird.
Die Widerstände für den Spannungs-Teiler zur Betriebsspannngs-Messung
scheinen ein wenig zu streuen. Daher wurde der Proportionalitäts-Faktor
auch ins EEPROM ausgelagert. Der berechnete Wert ist 50 (= 0x32). Wenn die
Spannungs-Anzeige bei jemandem nicht stimmt, würde ich vorschlagen, zuerst
den Spannungs-Teiler zu überprüfen und danach ein wenig am Faktor
zu drehen. Es kann auch möglich sein, dass eine scheinbar zu niedrige
Spannung daher kommt, dass durch den erhöhten Strombedarf im Sendefall
die Betriebsspannung am Tracker tatsächlich absinkt und somit die Messung
korrekt ist. Wo der Faktor im EEPROM nun steht, ist wie immer in der Doku
nachzulesen.
Wo ich gerade dabei war, diese Dinge konfigurierbar zu machen, habe ich gleich
noch 2 Bits des Konfigurationsbytes dafür verwendet, die Aussendung von
Temperatur und Spannung via EEPROM steuerbar zu machen. Die Bits sind in der
Doku beschrieben.
- 15.07.07
In der Version vom 14.7.07 war ein kleiner Syntax-Fehler enthalten, weshalb
sich das Projekt nicht kompilieren ließ. Dank Frank, D02FU, ist das
Problem aber nun erkannt und mit dieser Version behoben.
- 14.07.07
Und noch ein Byte des Status-Textes ist meinen Ablenkungs-Versuchen vom Uni-Lernen
zum Opfer gefallen. An Adresse 0x69 ist nun ein Konfigurations-Byte vorgesehen
mit dessen Bits verschiedene Funktionen ein- oder ausgeschaltet werden können.
Zur Zeit kann man mit den 2 höchstewertigen Bits wählen, ob die
Zeit gesendet werden soll, und ob der Tracker als APRS-Messaging-fähig
sich ausgeben soll. Die restlichen 6 Bits sind noch ohne Funktion, aber mir
wird dafür sicherlich auch noch das ein oder andere einfallen...
- 13.07.07
Es hat sich abermals das Format der EEPROM-Datei geändert. Nun können
für die zwei wählbaren Konfigurationen nicht nur das Icon, sondern
auch die SSID programmiert werden. Die Details können wieder aus der
Tabelle in der Doku entnommen werden. Außerdem hat der bis jetzt unbenutzte
DIP-Schalter B nun eine Funktion zugewiesen bekommen: Die Reduktion der Senderate
bei Stillstand (bzw. Geschwindigkeiten unter 5 km/h) kann mit ihm aktiviert
oder deaktiviert werden.
- 08.07.07
Es wurde festgestellt, dass manche GPS-Mäuse die Geschwindkeit nicht
im Format nnn.n ausgeben, sondern auch n.n (z.B. 0.0) aussenden. Nach NMEA-0183
Version 2 ist das auch erlaubt. Aber damit kam die bisherige Software nicht
klar und sendete im APRS-Paket ebenfalls 0.0 als Geschwindigkeit. Doch im
APRS-Protokoll sind keine Zentel-Angaben für Geschwindigkeit und Richtung
erlaubt. Die neue Software-Version kann nun mit allen erdenklichen Formaten
von ".2" über "34.2" bis "123.2" umgehen
und wandelt diese in eine korrekte 3 stellige APRS-Aussendung mit ggf. führenden
Nullen um.
- 07.07.07
Die APRS-Icons, die ausgesendet werden, lassen sich nun vom Benutzer in der
EEPROM-Datei festlegen. Sie haben 2 Möglichkeiten, die mit DIP-Schalter
A ausgewählt werden können. Es kann sowohl die Symbol-Tabelle als
auch der jeweilige Eintrag festgelegt werden. Zur näheren Information
bitte die Doku lesen.
- 06.07.07
Beantwortung von gerichteten Anfragen sowie Bestätigung von Nachrichten
wurde grundlegend überarbeitet. Software kann nun protokoll-konform auf
APRSS und APRSP-Anfragen antworten.
- 05.07.07
Fieldday-Symbol wurde durch Motorrad-Symbol ersetzt. Auswahl nun über
DIP-Schalter zwischen Auto und Motorrad möglich.
- 04.07.07
Parameter für Abschaltung leicht verändert. Aussenden eines Status-Textes
am APRS-Format eingebaut. Allgemeine Information muss nun nicht mehr in den
Kommentar-Teil einer Positionsmeldung eingebunden werden. Dadurch sind die
Positions-Pakete kürzer und werden mit höherer Wahrscheinlichkeit
richtig empfangen. Die gelbe GPS-LED kommt nun wieder ihrer ürsprünglichen
Bestimmung nach und zeigt an, ob die letzten GPS-Daten gültig waren oder
nicht. Auch der Programm-Ablauf wurde modifiziert. Nach dem Einschalten wird
nun in jedem Fall ein Mal der Status-Text gesendet. Danach wartet das Programm,
bis die GPS-Maus gültige Positions-Daten sendet. Erst danach beginnt
das Programm mit seiner eigentlichen Arbeit.
- 30.06.07
Abschaltungs-Automatik für KF 163 von Bosch eingebaut. Wenn GPS-Maus
für einstellbare Zeit (z.Z. 10 Minuten) keine Geschwindkeit größer
5 km/h liefert, so wird ein angeschlossenes KF 163 abgeschaltet. Jetzt sind
nur noch der Tracker und die GPS-Maus aktiv. Der Strombedarf lässt sich
damit von 400 mA auf 100 mA reduzieren. Wird die Geschwindigkeit wieder erhöht,
so schaltet sich das KF 163 wieder ein.
- 28.06.07
Temperatur-Messung mit TMP275 läuft. Wert wird in Grad Celsius umgewandet
und als Kommentar-Text ausgegeben. Auch negative Temperaturen können
gemessen werden. Zu beachten ist, dass der Spannungregler die Platine auf
ca. 30 °C erwärmt.
- 20.06.07
Spannungs-Messung mit intergiertem AD-Wandler funktioniert. Die Spannung über
den Spannungsteiler wird gemessen und der Wert richtig skaliert in Volt umgewandet.
Die Ausgabe erfolgt im Kommentar-Text.
|
|
letztes Update:
30.05.2009 18:52 |
|