Hallo,
als nützliche Anwendung für den Calliope mini würde ich mir gerne einen GPS-Tracker bauen. D.h. der Calliope ermittelt über ein NEO-6M-GPS-Modul (Grove A1 seriell) die GPS-Daten Long, Lat und Altitude und mittels eines SparkFun OpenLog-Moduls (Grove A0 I²C) werden dann diese 3er-Datensätze (als Zahlen) alle 15 Sek auf eine SD-Karte geschrieben.
Anschließend kann man diese Datenpakete dann mittels KML-Wrapper am PC in Google-Earth einlesen und in einer 3D-Karte anzeigen.
Vorhanden:
Die beiden Module NEO-6M und SparkFun Openlog (rot)
Calliope 2.0 mini
Die beiden makecode-Erweiterungen für die beiden Module
Was mir noch fehlt ist der makecode-Code zu diesem Projekt.
Hat vielleicht jemand schon mal einen GPS-Tracker und SD-Logger mit dem Calliope gebaut?
Ich bin kein Programmierer, baue aber gerne fertige Tutorials nach und erweiter diese ggf. bei Bedarf.
Super Ulli!
Hatte leider keine Zeit dieses Wochenende. Probiere das mal auf meiner Laufstrecke aus.
Es dauert halt eine Weile bis er genug Satelliten gefunden hat. Ich glaube er benötigt drei.
Hallo Ulli,
hatte gestern noch die Daten für die .KML-datei für Google Earth eingebaut. Der Kopf wird automatisch geschrieben, für den Rest welcher nach den GPS-Daten kommt muss man auf Knopf A drücken. Hoffe es funktioniert so.
Hallo Michael, das wäre eine Alternative.
Ich hatte meinen Weg von einem alten Projekt von mir mit dem Arduino auf den Calliope übertragen.
Das Problem mit dem GPS ist leider immer noch die Ungenauigkeit. So habe ich es oft, dass trotz guter Satelliten-Zahl die Abweichung einige Meter betragen kann und auch der Wert für die Altitude nicht verlässlich ist. Da schwebt man oft über der Strasse.
Deshalb habe ich die Daten früher immer noch auf der SD-Karte bearbeitet und dann erst in Google Earth verwendet. Ich will ja ungern durch Häuser oder auf der falschen Strassenseite mit meinem Fahrrad fahren.
Trotzdem habe ich durch deine Version wieder etwas dazu gelernt. Es muss nur (das war mein Fehler) beim Speichern auf die SD-Karte die Reihenfolge noch getauscht werden.
Reihenfolge ist: Long,Lat,Alt . Sonst landet man im großen Ozean.
VG ULLI
Leider funktioniert es überhaupt nicht. Wie kann ich feststellen, ob das GPS Modul überhaupt richtig angeschlossen ist und funktioniert (ohne Speicherkarte und Display -Erweiterung)? Dazu muss es erst mal noch keine Satelliten empfangen.
RX und CX müssen gekreuzt angeschlossen werden. Auf deinem Foto sieht das nicht so aus. Verdrehe mal gelb und weiss.
Den gesamten Aufbau würde ich zunächst an USB betreiben, optische Sicht der GPS Antenne zu mindestens 4 Satelliten muss gegeben sein. Am besten ans offene Fenster setzen.
Der GPS Sensor ist auch ein Stromsäufer, beim Schreiben der Daten auf die SD Karte gibt es ebenfalls einen kleinen Strom - Peak. Ob das ganze über längere Zeit an AAA Batterien läuft, bezweifle ich.
Für längere Missionen empfehle ich Lithium Batterien in der Größe AA. Und ggf. die Stromversorgung am Calliope vorbei, auch wenn die Module 3V haben. Die Spannungsregelung auf dem Calliope ist nicht unendlich Strom - belastbar. Ist zwar mit Grove Steckern nicht mehr ganz so schick, aber stabiler.
Wenn der GPS Sensor einen Fix hat, blinkt die blaue LED.
Dass RX und TX gekreuzt werden müssen, ist mir technisch bewusst. Bei allen mir bekannten Modulen ist aber die Beschriftung so, dass gelb an beiden Seiten RX und weiß an beiden Seiten TX ist.
Also nach dem Verdrehen und Bauen eines längeren Kabels gibt es jetzt eine Kommunikation. Lange habe ich eine Stelle gesucht, wo ich 3 Satelliten hatte, da zeigt es aber noch keine Daten an. Und nachdem ich nur ein neues Programm übertragen habe, ohne was zu bewegen, sind es jetzt plötzlich 7 oder 8 Satelliten. An der Fensterscheibe.
Das Problem mit der Stromversorgung ist mir bestens bekannt und wurde hier schon ausgiebig diskutiert. Ich nehme eine Powerbank und USB Kabel. Der Stromverbrauch ist hier auch groß genug, dass die Powerbank nicht von alleine aus geht.
Die Satelliten-Uhrzeit habe ich schon gefunden.
Kann mir noch jemand verraten, wo ich genau die Daten hoch laden muss, damit eine Karte angezeigt wird?
Der Fehler kommt nicht,
wenn ich ‚Lese Anzahl der Satelliten‘ raus nehme (‚Lese Satelliten Uhrzeit‘ hat aber keine Wirkung.)
ODER
wenn ich ‚initialisiere Display‘ raus nehme
ODER
wenn ich ‚setze 4digit …‘ raus nehme
ODER
wenn ich über das Zahnrad den Speicher von 32 KB in 16 KB ändere. Dann kommt der Fehler aber auch, wenn das Programm etwas größer wird.
Programmiert mit Windows und Edge, dann auf dem iPad geladen kommt der Fehler auch.
Sehen kannst Du den Fehler in der Browser-Konsole:
Fehler: pxt_modules/Grove/main.ts(1,1): error TS9200: program too big by 804 bytes!
In Firefox ist die Konsole unter „Weitere Werkzeuge / Werkzeuge für Webentwickler“ zu finden.
Wo etwas gleichwertiges in „Edge“ zu finden ist, weiss ich nicht.
Vorschlag: Gehe auf die Makecode V3, die Erweiterungen von mir sollten dort laufen.
Mit der Speichergröße 16 KB und 32 KB hat das wohl nichts zu tun? Wenn ich von 32 KB auf 16 KB verkleinere, kommt der Fehler (vorerst) nicht. Da wird auch weniger ‚Hintergrund‘ mit rein kompiliert.
Sollte nicht eine neue MakeCode Version besser sein als die alte? Wo wirkt denn nun die Speichererweiterung? Ist das hier ein Bug, der zu reparieren ist? Oder ist das ein Feature, dass in der neuen Version mit 32 KB weniger Platz ist als in der alten?