Pendel, Antrieb und Anzeige (Nebenuhrwerk) funktionieren.
Nun wird es Zeit, dass ich mich um einen Datenlogger kümmere.
Leider sind käufliche Exemplare recht teuer und für meine Ansprüche
zu komplex.
Also selbermachen (Ich habe noch keine Ahnung von der Materie).
Mal die KI gefragt: Die Grundausstattung ist recht einfach.
Datenlogger Arduino, Stündlich (GPS basiert) Temperatur, Luftdruck und Luft-
feuchte mit Zeitstempel erfassen und später als Exelliste/Grafik ausgeben.
Etwas schwieriger wird dieser Teil: Das Lichtschrankensignal bei Pendel-
durchgang einbinden. Optimal sind 3600,0 Durchgänge/Stunde.
Zählen, Abweichung zum Zeitnormal feststellen, speichern, fortlaufend addieren.
Nullstellung bei Neustart.
Da ich hier kein mechanisches Uhrwerk verwende, brauche ich keine feinere
Auflösung. Die käufliche Versionen können jeden ungenauen Zahn im Räderwerk
feststellen.
Kriegt der Opa das hin?
Wozu das Ganze? Um das Pendel zu optimieren, müssen Anpassungen am mechanischen
Teil vorgenommen werden, um Temperatur und Luftdruch zu kompensieren.
Entweder nehme ich mir dazu viel Zeit, oder ich messe.
Warum eigentlich nicht? Mangelts an Lötkünsten? Vermutlich nicht. Mangelts an Softwarekenntnis? Svhon eher, aber es gibt mittlerweile soviele Softwarefetzen im Netz, das es nicht so schwierig sein sollte, die 4-5 Messwerte zu erfassen und die GPS Zeit dazu.
Interessanter ist da schon die Frage, wohin mit den Daten?
Wenn das in irgendeinem Kirchturm läuft, wirst du wohl auf SD Karte oder so speichern müssen. Wenns in deiner Werkstatt läuft, könntest du auch mit USB/Seriell einen PC laufen lassen und da mitschreiben.
So'n doofer Arduino-Logger mit SD-Sockel "kost nix".
Hat aber einen großen Nachteil: der braucht einen Puffer, denn entweder schreibt er ständig neu und die Karte ist bald kaputt, oder er schreibt genau dann wenn du die Karte gerade leer machen willst und in der Hand hast.
Wenn du die Werte eh wirklich nur Stündlich erfassen willst, würde ich einen EEPROM/MRAM/FRAM-Chip vorschlagen, der locker einige Tage speichern können sollte, und das wird dann auf Anforderung auf eine SD-Card kopiert.
Temperatur = 2 Byte, Luftdruck = 2 Byte, Luftfeuchte = 1 Byte, Zeit = 6 Byte, macht in Summe 11 Byte pro Stempel, 264 Byte/Tag.
Das lässt sich aber noch mit ein wenig Optimierung runterbringen auf locker 7, vielleicht sogar 6 Byte/Stempel, und damit 144 Byte/Tag.
Ein 8KByte FRAM kostet keine 3€ und kann dann 56 Tage speichern.
Mit ein wenig mehr Überlegung ließe sich da sicherlich noch mehr rausholen...
Und: Wenn man das auf einen ESP packt, kann man das Log als Diagramm auf einer Webseite sehen, sofern am Standort WLAN verfügbar ist.
Das Lichtschrankensignal bei Pendel-
durchgang einbinden.
3600/h sind ja nur 1/s, das ist mit GPS etwas grob, da kommt ja auch nur 1/s.
Aber eine exakte Frequenz aus einer vernünftigen Zeitbasis (GPSDO?) runtergeteilt auf z.B. 100Hz oder gar 1000Hz kann locker tausend Stunden in eine 32bit-Variable zählen, das macht der Arduino mit links und du kannst die 3600 Pendel pro Stunde auf die millisekunde genau mitstoppen.
Oder sogar jede Minute schon bestimmen ob die Uhr falsch läuft.
Im einfachsten Fall zählst du mit dem GPS PPS doch einfach immer eins hoch und mit der Lichtschranke immer eins runter.
Wenn dein Zähler dann stehen bleibt driftet nichts im Bezug zu deiner Referenz (GPS).
Zählt er hoch ist dein Pendel zu langsam. Zählt er runter ist das Pendel zu schnell.
Dann brauchst du nur einen Wert der dir den Fehler so lange auf integriert wie du möchtest.
Diesen Zähler tastest du dann zusammen mit den Temperatur/Luftfeuchte Werten ab.
Das sind dann wenn man aast 16 Byte pro Messintervall.
Einmal pro Stunde gemessen wären das nur 384 Byte pro Tag.
Ich würde da einfach ein ESP32 nehmen. Der hat genug RAM um auch jede Minute die Werte im RAM zu speichern. Dann wären es 23kB pro Tag. Auch noch lange kein Problem. Da kannst du sogar mehrere Tage im Speicher halten.
Dann ins WLAN rein mit dem Teil. Webserver mit plotly der die Daten visualisiert. Dann kannst du live mit dem Browser zuschauen in was für eine Richtung der Zähler geht ohne ständig Daten abziehen zu müssen.
Ich vermute stark dass wenn du das einer KI zuwirfst macht der dir ein fertiges Programm draus. Gibt ziemlich viele Beispiele für ähnliche Dinge.
Der Standort wäre 3 Meter neben dem PC.
Kabel oder WLAN wäre also problemlos möglich.
GPS-Zeit ist zwingend nötig. Es geht um die Sekunde nach hundert Tagen.
Der Vorschlag von Mani (Rauf-Runterzählen) klingt gut.
Die zu messende Differenz könnte auf max. 2 Stellen (99 Sekunden) begrenzt
sein. Mehr als 10 Sekunden wären ohnehin eine Katastrophe.
GPS-Zeit ist zwingend nötig. Es geht um die Sekunde nach hundert Tagen.
Da hast du dann nach einhundert Tagen 8.64 Millionen Einträge in der Log Datei. Mit stetig wechselndem Luftdruck und stetig wechselnder Temperatur. Und die Uhr geht 0.8 Sekunden vor. Was nun?
Bei sekündlichem Log.
Wenn man da die Differenz zwischen PPS und Pendel als Relativwert hätte könnte man was sehen, als Diagramm.
Wäre gar nicht so schlimm: eine Kurve mit der Abweichung, parallel dazu Temp/LF/LD und man sieht ob es eher die Kälte oder die Dichte ist die stört.
Der Vorschlag von Mani (Rauf-Runterzählen) klingt gut.
Vorsicht: wenn Pendel 0,001s vorgeht, hast du 999ms 0 und 1ms 1 (oder -1). Und das wird dann jede Sekunde 1ms mehr.
Das "sieht" man nicht, das kann man nur auf einer Kurve im Zeitraffer erkennen.
Bei 1s/100d werden seeeehr lange Folgen von 0,1,2 erscheinen.
Aber das Intervall ist auch zweitrangig. Aus einer wilden Mischung unterschiedlichster Faktoren über eine lange Zeit gesammelt, dann eine Regel abzuleiten ist, gelinde gesagt, utopisch.
Allein die Luftdruckmessung ist schon ein Spaß für sich. Vor allem an leicht windigen Tagen. Dagegen ist ein YoYo ein geradezu statisches Objekt.
Allein die Luftdruckmessung ist schon ein Spaß für sich.
Ich nehme an das die Uhr in einem geschlossenen Gehäuse sitzt, abgeschirmt von Zug und Wind.
Da drin könnte man schon den LD und die Temp. messen und halt lange mitteln.
Eine "Zeitwaage" ist ein elektronisches Hilfsmittel, um eine Uhr zu regulieren.
(Schneller/ langsamer einstellen). Ist zwar auch wichtig, aber nicht der
primärere Sinn des Datenloggers.
Hier geht es darum, den Einfluss von Umweltbedingungen auf das mechanische
Schwingsystem festzustellen. Dazu sind Messungen über Tage/Wochen/Monate
mit wechselnden Bedingungen (Temperatur/ Luftdichte evtl. seismische Schwingungen)
nötig.
Temperatur und Luftdichte ändern sich im geschlossenen Kasten nicht schnell.
Eine stündliche Messung erscheint mir ausreichend.
Joa.
Wie gesagt, Pendeldauer für einen beliebigen laufenden Zeitraum über eine (zwangsläufig höher aufgelöste) Referenz ist kein Problem.
Sofern man einen "guten" Takt hat, kann jeder popelige Controller mit wenig Code die Pendelzeit (und damit die Abweichung und die Änderung der Abweichung) samt Zusatzdaten leicht erfassen, das ist bei dir ja langsam und wenig.
Eieieiei, jetzt geht's los.
Da ist ja schon alleine die Erfassung ein Teufelswerk. Erst recht das langfristige.
Deine Uhr muss schwer und stabil sein, dann ist das kein Problem, und wenn es bei dir tatsächlich bebt ist das höhere Gewalt.
1s auf 100 Tage ist eh schon ambitioniert genug...
Sehr.
Extrem "sehr".
Vakuumbasierte thermoisolierte Pendel schaffen m.W. untere zweistellige Millisekunden pro Tag an Genauigkeit, d.h. so gerade eben noch unter deiner "10 Sekunden wäre eine Katastrophe" in 100 Tagen.
Nuja. hier hat er "stündlich" genannt...
Was ich etwas grob finde.
Stimmt, war wohl von den zwischenzeitlichen Millisekunden-Betrachtungen abgelenkt.
Und stimmt, Stunde ist sicherlich zu grob.
Dennoch, was macht man mit den Messewerten? Versteht mich nicht falsch, ich mag das auch, zu messen und zu sammeln. Aber ich sehe trotzdem nicht, wie man aus den Messungen eine klare Regel ableiten könnte. Und selbst wenn … wozu? Die Pendellänge wird einmal eingestellt und das war's dann.
Da aber das Pendel – wenn ich das in dem anderen Artikel richtig gelesen habe – sowieso elektromagnetisch angetrieben wird, muss man doch nur die Intensität (eingetragene Energie) geringstmöglich anpassen. Weitere Ausschläge, langsamer laufende Uhr. Und wir reden hier wohl eher von einem Delta Bogenminuten als von vollen Graden. Das kann ein GPS-stabilisierter µC en-passant erledigen.
Anders herum, wenn die Auslenkung nicht stets präzise gleich bleibt, muss man sich um den Rest kaum kümmern.
Warum willst Du loggen? Brauchst Du die Daten über Temperatur oder Luftdruck?
Wie wird reguliert oder justiert?
Ein einfacher Abgleich des Stundenzeigers mit Normalzeit und eine entsprechender + oder - Impuls zum Regulieren sollten das Problem lösen.
Alles Andere ist Wissenschaft und Ingenieurwesen.
Das erste wird sein, meine Temperaturkompensation (Alurohr) soweit
anzupassen, dass hier keine Änderungen des Systems mehr stattfinden.
Dazu eine Erklärung: Die Ausdehnungswerte von Stahl, Messing, Invar und
Glaskeramik sind in den Datenblättern immer mit einem +/- versehen.
Da kannst du viel rechnen, aber....
Das genauste Messmittel, um auf ein möglichst perfektes Ergebnis zu kommen,
ist das Pendel selbst.
Andererseits ist eine perfekte Temperaturkompensation gar nicht erstrebens
wert. Steigt die Luftdichte ist es meistens wärmer (Hochdruckgebiet),
dieser Effekt lässt sich ausnutzen, um die Bremsung durch gestiegene Luft-
dichte zu kompensieren.
So'n doofer Arduino-Logger mit SD-Sockel "kost nix".
Hat aber einen großen Nachteil: der braucht einen Puffer, denn entweder
schreibt er ständig neu und die Karte ist bald kaputt, oder er schreibt
genau dann wenn du die Karte gerade leer machen willst und in der Hand
hast.
Ich habe Aufbauten mit ArduinoNano und SD-Karte unter Verwendung der "SD.h" aus der ArduinoIDE 1.74 und 1.89. Die Häufigkeit ist überschaubar, ich schreibe alle 10..15 Sekunden, erfolgreich geschrieben oder Karte fehlt kann man erkennen.
Ich hatte heftig Ärger, dass das Schreiben nach einer Weile fehlschlägt, wenn die SD-Karte groß ist, mit 1 oder 2 GB läuft das stabil. Ich konnte über das Forum einige µSD mit 2 GB kaufen, und zwar robuste Modelle von xMore und ATP. Ich habe damit keine Not, das weiter zu beforschen oder zu hoffen, dass neuere SD.h das bereinigt haben.
Um jetzt loszulegen, bräuchte ich sowas wie eine Einkaufsliste.
Vielleicht erst einmal ein Konzept, was und wie Du es machen möchtest?
Ein Mikrokontroller, der mit der Datenmenge klarkommt.
Auslesen der Werte am PC. (Drahtgebunden oder über WLAN).
Stündlich Temperatur, Luftdruck und Feuchte aufnehmen.
Gleichzeitig Pendelschwingungen Zählen (Vergleichen).
Als Referenzzeit ein GPS-Zeitnormal verwenden, um auch nach 100
Tagen eine Sekunde Vor-Nachgang zu bestimmen.
Da steht doch genau was ich gesagt habe?!?!
Er hat es erfunden, aber er konnte es nicht bauen. Das Prinzip funktioniert aber, nur so knappe 250 Jahre später.
Da steht doch genau was ich gesagt habe?!?!
Er hat es erfunden, aber er konnte es nicht bauen. Das Prinzip
funktioniert aber, nur so knappe 250 Jahre später.
Nein, seine Uhren waren damals schon so genau.
(Es hat ihm halt kaum jemand geglaubt).
Harrison war nicht nur ein "Uhrmacher".
Er war Physiker, Mathematiker und Astronom.
Seine Konstruktionen waren dem Üblichen um Jahrhunderte vorraus,
deswegen für seine Zeitgenossen nicht verständlich.
da kam nichts raus (für mich).
Deswegen werde ich das selbstbauen. Möglichst reduziert, auf meine
Bedürfnisse zugeschnitten. (Siehe Anfangsbeitrag).
So wie ich den Laden hier kenne, wird auch diesmal nichts herauskommen, weil 'zig Leute über Kleinigkeiten diskutieren, die völlig irrelevant sind, das hatten wir 2025 ja auch schon. Das geht ja jetzt schon los, sieh Diskussion um Harrison.
da kam nichts raus (für mich).
Deswegen werde ich das selbstbauen. Möglichst reduziert, auf meine
Bedürfnisse zugeschnitten. (Siehe Anfangsbeitrag).
So wie ich den Laden hier kenne, wird auch diesmal nichts herauskommen,
weil 'zig Leute über Kleinigkeiten diskutieren, die völlig irrelevant
sind, das hatten wir 2025 ja auch schon. Das geht ja jetzt schon los,
sieh Diskussion um Harrison.
Wenn ich sage, ich baue mir so ein Teil, dann mache ich das auch.
Ich fände es auch eher zielführend, eine Einkaufsliste zu haben.
Ein Mikrokontroller, der mit der Datenmenge klarkommt.
Die Datenmenge ist nicht das riesen Problem. Da kannst du von 8 Bit uC bis 64 Bit Raspi alles nehmen. Teils dann mit externen Speicher. Teils intern.
Selbst ein 4€ Raspi Pico ohne alles geht da ohne Probleme wenn man den internen Flash teilt in Programm und Daten hat man mindestens 1MB für Logging. Das ist üppig.
Der Punkt ist das Konzept/Design.
Es gibt viele Möglichkeiten. Hier ein paar:
Ein kleiner uC ohne ausreichenden internen Speicher erfasst die Daten und speichert sie auf einen externen Speicher (z.B. SD, Flash, FRAM,...). Um an die Daten zu kommen muss die SD entfernt werden oder über seriell auslesen. Hier wurde ein Arduino reichen. Würde ich nicht machen.
Ein kleiner uC erfasst die Daten und sendet die Daten live z.B an einen PC oder SBC der es dann wiederum speichert. Kabel erforderlich. PC/SBC muss parallel laufen. Hier würde auch ein Arduino reichen. Würde ich auch nicht machen.
Ein etwas größerer uC (z.B. ESP) hält die Daten komplett im RAM/internen Flash. Auslesen über eine Schnittstelle z.B. (W)LAN. Alternative Darstellung in einem Frontend und Download über dieses.
Hier reicht ein ESP oder Raspi Pico (W).
ähnlich wie 3). Der Controller sendet aber die Daten z.B. über MQTT an deine Hausautomation oder anderes fertiges Logging System. Visualisierung dann über fertige Tools wie z.B. Grafana o.ä.
Ein SBC macht alles. Daten erfassen. Speichern z.B. als File auf SD o.ä. auslesen z.B. Über Webfrontend oder SSH.
Hier wäre es ein richtiger Raspberry Pi.
Alles machbar. Jedes mit Vor- und Nachteilen.
Sensoren ist dann nochmal ein anderes Thema. Luftfeuchtigkeit vllt ein BME oder SHT.
Temperatur vermutlich was genaueres.
Luftdruck kenne ich mich nicht aus, aber andere hier bestimmt.
Um jetzt loszulegen, bräuchte ich sowas wie eine Einkaufsliste.
Ein Mikrokontroller, der mit der Datenmenge klarkommt.
Auslesen der Werte am PC. (Drahtgebunden oder über WLAN).
Stündlich Temperatur, Luftdruck und Feuchte aufnehmen.
Gleichzeitig Pendelschwingungen Zählen (Vergleichen).
Als Referenzzeit ein GPS-Zeitnormal verwenden, um auch nach 100
Tagen eine Sekunde Vor-Nachgang zu bestimmen.
Die aufgenommen Werte in Exeldatei schreiben.
Nein, seine Uhren waren damals schon so genau.
(Es hat ihm halt kaum jemand geglaubt).
Soweit ich das Internet bedienen kann, wurde die "Clock B" (die, die eben <1s Abweichung in 100 Tage schafft) erst in den 1970ern gebaut, nach Plänen die Harrison "damals" gemacht hat.
Die Hx waren gut, für damalige Zeiten sehr gut sogar, aber eben nicht "<1s/100d".
Der Punkt ist das Konzept/Design.
Es gibt viele Möglichkeiten.
Schön wäre, wenn du erklärt hättest, warum...
Ich würde es mit Arduino Nano, FRAM und SD-Adapter machen.
Das wäre bei dir Option 1 gewesen.
Der kann ausreichend genug, und ist einfach und zuverlässig genug das er unbeaufsichtigt nebenher laufen kann.
Wenn die SD-Karte steckt kann er den Puffer ja täglich auf die Karte dumpen, und wenn man sie mal ein paar Tage entnommen hat ist ja immer noch der lokale Puffer da.
Auswertung in aller Ruhe via csv-Datei und Excel, wie immer man das machen möchte.
Option 2 ist halt doof, weil man dazu einen zweiten Rechner braucht, der immer nebenher läuft. Da kann schnell mal was schiefgehen und dann gibt's Lücken im Log.
Option 3 wäre mir zu heikel. Viel Zeug im RAM geht schnell verloren.
Option 4 erfordert bereits vorhandene Broker, Logger, Smarthome-Zentrale. Geil wenn man die schon hat, aber ansonsten zu viel Nebenher.
Option 5 ist die goldene Luxus-Plus/Ultra Magnum Excellence-Version, aber auch sehr anfällig und fast gar nicht komplex. Er scheint eher so der Metaller zu sein ;) ich glaub das ist hinter dem Horizont.
Eine einfache Gabel- oder Reflex-Lichtschranke gibt's im Arduinobedarf als Modul, SD-Karten-Sockel und FRAM auch.
Für fast alle Wettersensoren gibt's ebenfalls Libraries und Module.
Ein SHT35 kümmert sich um °C und %rF, der BMP280 kann mmHg, beide passen zusammen an einen I²C-Port.
Ein FRAM mit MB85RC256 passt ebenfalls noch mit an den I²C und hat 32kByte Platz.
Achtung: je nach Arduino brauchts einen Pegelwandler von 5 auf 3,3V!
Damit bleibt SPI für die SD-Karte über.
Den Code dazu kann eine KI sicherlich schon zumindest in Grundzügen zusammenfrickeln.
Und die Lichtschranke kannst du über einen Widerstandsteiler direkt
abnehmen. Aber Achtung: bei 200MHz kann der PICO nicht genauer als 5ns
Auflösen.
Wenn man sich anschaut wie stark die mit einer "normale" Lichtschranke an einem Pendel gemessenen Werte streuen wird man feststellen dass man um Größenordnungen von "ns" entfernt ist.
Wenn man sich anschaut wie stark die mit einer "normale" Lichtschranke
an einem Pendel gemessenen Werte streuen wird man feststellen dass man
um Größenordnungen von "ns" entfernt ist.
Das war auch mehr als (leider unmarkierter) Gag gedacht. Ich hatte irrtümlich angenommen, dass ein ›Aber Achtung:‹ als Hinweis reicht.
Aber so ein µC kann hervorragend, um nicht zu sagen heraus baumelnd, einen gleitenden Mittelwert über ein nahezu beliebig großes Fenster bilden. Der PICO hat RAM im Überfluss, da kann man auch mehrere (20,50,100s/2,5,10min) gleichzeitig führen.
GPS funktioniert in Innenräumen nur in unmittelbarer Nähe eines
Fensters, ggf. GPS-Modul also mit abgesetzter Antenne
Stimmt, hatte ich verpennt, danke.
Ich würde aber eher das ganze Modul auslagern und nur die 3 Strippen UB, GND und PPS verlängern. Evtl. auch Rx/Tx.
Geht jetzt nicht über 100m, aber bis zum nächsten Fenster sollte es gehen.
Da würde ich doch eher auf "zeitgemäße" Werte gehen: 10/30/60 Sekunden, 5/15/60 Minuten.
Wobei bei den "Sekunden" ja kaum sinnvolle Daten ankommen, denn PPS ist 1/s, Pendel aber auch. Wie misst man da sinnvoll Millisekunden Abweichung?
Der Quarz des Controllers ist kein Maßstab, denn der geht ja auch nicht "genau" genug, sonst bräuchte man keinen GPS-PPS.
1ppm Abweichung am Quarz sind auch schon 8,64s auf 100d....
Der Quarz des Controllers ist kein Maßstab, denn der geht ja auch nicht
"genau" genug, sonst bräuchte man keinen GPS-PPS.
Das ist richtig. Aber so ein 200MHz PICO kann in einer sich selbst korrigierenden StateMaschine in einer Sekunde nicht nur von exakt 2e8 herunter zählen, sondern auch einen Unterlauf beliebig viele Taktzyklen früher oder später erzeugen. Intern schaut man dann natürlich nicht auf den Quarztakt, sondern auf die PIO. Und das daraus resultierende System ist dann derart brutal genau, dass man's kaum glauben mag.
Das ist richtig. Aber so ein 200MHz PICO kann in einer sich selbst
korrigierenden StateMaschine in einer Sekunde nicht nur von exakt 2e8
herunter zählen, sondern auch einen Unterlauf beliebig viele Taktzyklen
früher oder später erzeugen. Intern schaut man dann natürlich nicht auf
den Quarztakt, sondern auf die PIO. Und das daraus resultierende System
ist dann derart brutal genau, dass man's kaum glauben mag.
Vergiss es. Der TE kriegt programmiermässig sowas nicht hin.
Typisches Beispiel, dass der Thread wieder zerredet wird.
Stimmt, hatte ich verpennt, danke.
Ich würde aber eher das ganze Modul auslagern und nur die 3 Strippen UB,
GND und PPS verlängern. Evtl. auch Rx/Tx.
Geht jetzt nicht über 100m, aber bis zum nächsten Fenster sollte es
gehen.
Das wird nicht gut werden. Während Du bei einem Modul mit externer Antenne, diese auf 30m verlängern kannst, ist bei den 3V3 Signalen nach 3..5m Schluss mit Zuverlässigkeit. Auch das 1PPS Signal wird da problematisch.
Ich stelle auch mal in den Raum, dass die bei den uC Modulen verwendeten Quarze sehr kostenoptimiert sind. Wenn man damit ein langsames Pendel messen möchte, dürfte alleine schon durch Drift und Temperaturinstabilitäten sehr viel Störnebel in die Messwerte eingehen. Besser ist es da, eine echte Referenz zu haben, deren Takt den Messanforderungen entspricht und die in sich stabil ist.
Möchte man ein 1pps Signal nutzen, dann müsste man zuerst eine Software schreiben, die den CPU Takt synchronisiert oder wenigstens die Software-Teile vermisst, die für die Pendelauswertung zuständig ist. Das kann man machen, aber es ist nicht nötig:
Es gibt GPS-Module, die neben dem 1pps auch ein programmierbares Signal ausgeben. z.B. 10MHz. Damit könnte man einen Timer im Controller steuern, der dann als Zähl-Referenz arbeitet. Für die Time-Nuts noch der Hinweis, dass bei den GPS Modulen durch den TCXO eine Drift auftritt, wenn das Modul sich selbst nachreguliert. Es ist nun mal kein Doppel-Ofen OXCO.
Der programmierbare Ausgang hätte den Vorteil, dass man sich eben einen Timer in eine Auflösung konfigurieren kann, die einem passt und damit eine Messwertauflösung zwischen Sinn und Verstand hin bekommen kann.
Ich habe jetzt keine Info dazu gesehen, wie das Pendel gemessen wird und wie lang es ist. Ich würde eine Lichtschranke nutzen, die eine sehr gute Kollimation hat und die Breite des Pendel-Arms als Zeitmessung einsetzt?
Lässt man die Lichtschranke einen Zähler starten, so lange sie unterbrochen ist, und versorgt diesen Zähler aus dem gewünschten Takt des programmierbaren Ausgang vom GPS, dann hat man alles, was man braucht.
Natürlich könnte man auch zwei Zähler nutzen, die von Lichtschranken an beiden Enden der Auslenkung montiert sind. So könnte man Gleichlaufschwankungen messen. Die Software würde dann zwischen den Zählern hin und her schalten.
Letztendlich kann man so die Zeitkritische Arbeit in die Hardware verlagern, die der Hersteller im Chip extra dafür vorgesehen hat.
Das wird nicht gut werden. Während Du bei einem Modul mit externer
Antenne, diese auf 30m verlängern kannst, ist bei den 3V3 Signalen nach
3..5m Schluss mit Zuverlässigkeit. Auch das 1PPS Signal wird da
problematisch.
Ja.
Ich stelle auch mal in den Raum, dass die bei den uC Modulen verwendeten
Quarze sehr kostenoptimiert sind. Wenn man damit ein langsames Pendel
messen möchte, dürfte alleine schon durch Drift und
Temperaturinstabilitäten sehr viel Störnebel in die Messwerte eingehen.
So ist es.
Besser ist es da, eine echte Referenz zu haben, deren Takt den
Messanforderungen entspricht und die in sich stabil ist.
Möchte man ein 1pps Signal nutzen, dann müsste man zuerst eine Software
schreiben, die den CPU Takt synchronisiert oder wenigstens die
Software-Teile vermisst, die für die Pendelauswertung zuständig ist. Das
kann man machen, aber es ist nicht nötig:
Nötig ist erst einmal das die störenden inneren Kräfte der Uhr beseitigt werden.
Natürlich könnte man auch zwei Zähler nutzen, die von Lichtschranken an
beiden Enden der Auslenkung montiert sind. So könnte man
Gleichlaufschwankungen messen. Die Software würde dann zwischen den
Zählern hin und her schalten.
Letztendlich kann man so die Zeitkritische Arbeit in die Hardware
verlagern, die der Hersteller im Chip extra dafür vorgesehen hat.
So weit ist man noch nicht, siehe oben.
solange die Ihr im Kämmerchen steht und der TO die Türe zufallen läßt kann er alles knicken. Ich kann ja verstehen daß er sein Ührchen vermessen möchte. Aber ich sehe da keine Lösungsmöglichkeiten unter dem Sofa.
Während Du bei einem Modul mit externer Antenne, diese auf 30m
verlängern kannst, ist bei den 3V3 Signalen nach 3..5m Schluss mit
Zuverlässigkeit.
Aha?
Hätte ich andersrum vermutet, aber ok.
Ich hab seit 35 Jahren eine Conrad-DCF-Moduluhr, deren Empfänger an 15m Kopfhörerstrippe weg von allen Geräten hängt, das läuft 2-3 Jahre mit einer billigen AA, und das völlig problemfrei.
Ich hätte daher angenommen, das 3,3V-Logik das auch kann, bei 1 Puls pro Sekunde...
Auch da: ich würde sagen das man genau das messen müsste um genau das herauszufinden.
Stichwort "wie viel macht das wirklich aus?" ggü. "was passiert sonst noch?" und "was kostet es das zu kompensieren/verhindern?".
Das Pendel aus Glaskeramik. Pendellinse Edelstahl, bleigefüllt.(1,6 kg).
Pendellänge ca. 1 Meter.
In der Mitte unten die 3 Lichtschranken. Rechts unten die Schalttransistoren.
An der Aufhängung oben erkennt man das Kompensationselement (Aluminium).
Das Zählwerk (links neben dem Pendel) zählt jeden Pendeldurchgang.
Eine Einhausung (Uhrenkasten) fehlt noch.
Das ist alles noch recht provisorisch.
Der PC steht gegenüber (Fotostandpunkt). Die Hälfte des Raumes besteht aus
Glasscheiben (wg. GPS-Empfang).
Du meinst die Uhr, die da hängt?
Bernd F. schrieb:
Die Hälfte des Raumes besteht aus
Glasscheiben (wg. GPS-Empfang).
GPS braucht (HF-)Sicht nach oben, nicht zum Horizont. Sagt man im
Allgemeinen.
Was ist das für ein Dingsbums etwas oberhalb der Mitte?
Das ist keine Uhr, sondern ein reines Zählwerk.
Bei jedem, vom Pendel erzeugten Impuls, wird da eine "Sekunde" weiter-
geschaltet.
Im oberen Drittel des Pendel sind die 2 Tauchspulen, die das Pendel
antreiben. Die haften mit Topfmagneten auf einer Stahlplatte.
Dies erlaubt Einstellen aber auch Veränderung an der Eintauchtiefe.
Je nach Einstellung lassen sich Schwingungsweiten von 0,5 bis 3° realisieren.
GPS braucht (HF-)Sicht nach oben, nicht zum Horizont.
Naja, es gibt auch viele GPS-Satelliten die man knapp über dem Horizont noch reinkriegt. Hier im 4. Stock sieht mein ublox NEO-6M am Fenster noch GPS-Satelliten (US-GPS), die 5° über dem Horizont stehen, nach oben sind es dann knapp 70°, und hat eine TTFF von 70 Sekunden.
Nuja, "es" hat ein Zifferblatt mit 1-12 ;)
Du hast eine Uhr zerlegt und zum Impulszähler gemacht. Das kann man ja nicht ahnen. Obwohl, bei dir schon. :D
Was glaubst Du denn um wieviel der Luftdruck so schwankt? Wo siehst Du
da ein Problem?
Der mittlere Luftdruck an und für sich nur wenig.
Aber der im Haus gemessene Luftdruck mit böigem Wind gegen Hauswand.
Lade dir mal phyphox und lass es an einem ruhigen und an einem windigen Tag loggen.
Bereite dich auf's Staunen vor.
PS. Wenn man eine (Indoor) Thermokanne nur mit Federverschluss besitzt, kann man's am variablem Zischen sogar hören.
PPS. Und der Mittelwert bringt einen auch nicht weiter. Das ist wie im Flieger mit Static-Port und Pitot-Rohr. Da kann man die Höhe bzw. Relativgeschwindigkeit messen.
Das ist Quatsch. Ich messe seit ca 10 Jahren hier alle Stunden u.a. auch den Luftdruck mit BME280, 1x im Wohnzimmer und 1x draussen, die Werte unterscheiden sich höchstens um 1-2 hPa und das ist innerhalb der Messgenauigkeit.
Während Du bei einem Modul mit externer Antenne, diese auf 30m
verlängern kannst, ist bei den 3V3 Signalen nach 3..5m Schluss mit
Zuverlässigkeit.
Aha?
Hätte ich andersrum vermutet, aber ok.
Ich hab seit 35 Jahren eine Conrad-DCF-Moduluhr, deren Empfänger an 15m
Kopfhörerstrippe weg von allen Geräten hängt, das läuft 2-3 Jahre mit
einer billigen AA, und das völlig problemfrei.
Ich hätte daher angenommen, das 3,3V-Logik das auch kann, bei 1 Puls pro
Sekunde...
Beim GPS bekommst du über die Serielle mit 9600 Baud die NEMA Daten mit den Informationen, ob Dein GPS Modul überhaupt Satelliten empfängt und wenn ja, ob genug und lange genug. Digitale Impulse verschleifen über lange Kabel und daher wird aus deinem knackigen 1PPS Pulse ein Ding, bei dem der Controller dann irgendeinen Pegel als Flanke erkennt. Bei Funk ist das anders, da ist das Signal ja schon ein paar 1000km unterwegs, da machen 30m Kabel nix. Außerdem haben auch günstige GPS Antennen schon einen Filter + Verstärker drin.
Ulrich schrieb:
Es gibt GPS-Module, die neben dem 1pps auch ein programmierbares Signal
ausgeben. z.B. 10MHz.
Zeichma.
Du erwähnst deine Glaswände und ein uBlox Neo 6M. Dieses hat einen 1pps Ausgang, den man in der Frequenz konfigurieren kann, bis zu mehrere MHz hoch.
Eieieiei, jetzt geht's los.
Da ist ja schon alleine die Erfassung ein Teufelswerk. Erst recht das
langfristige.
Naja Teufelswerk ist das nun auch nicht. Ein Lehmanseismometer läßt sich mit relativ wenig Aufwand aufbauen und ist sogar für den einfachen Aufbau recht empfindlich. Das Material für die Mechanik bekommt man im Baumarkt, der Rest induktiver Aufnehmer, Verstärker und Auswertung dürfte für einen Hobbyelelektroniker kein Problem sein. Hier http://www.vaxman.de/publications/seismo/seismo.html z.B. ist beschrieben wie man so etwas bauen kann. Das Teil funktioniert natürlich auch langfristig.
Zudem kann man seismische Daten auch online abfragen und dazu eine Messstation in Wohnortnähe auswählen.
Ich glaube aber nicht das seismische Aktivitäten auf seine Uhr nennenswerten Einfluß haben.
Was glaubst Du denn um wieviel der Luftdruck so schwankt? Wo siehst Du
da ein Problem?
Der mittlere Luftdruck an und für sich nur wenig.
Aber der im Haus gemessene Luftdruck mit böigem Wind gegen Hauswand.
Lade dir mal phyphox und lass es an einem ruhigen und an einem windigen
Tag loggen.
Bereite dich auf's Staunen vor.
Och, da staune ich gar nicht. Ich habe 2 Wetterstationen (eine Davis Vantage Pro und eine betagte TFA Meteotime Duo) und die messen den Luftdruck im Innenraum. Ich habe mir gerade mal die Aufzeichnungen angeschaut und Schwankungen sind geringer als erwartet. In den letzten 4 Monaten war die Gesamtluftdruckschwankung, also die Differenz zwischen Minimum und Maximum, 79mBar. An einem Tag schwankt der Luftdruck um ca. 5mBar. Zudem erfolgen die Schwankungen nicht schlagartig, sondern es braucht schon seine Zeit.
Ob nun eine Böe gegen die Hauswand drückt ist für die Messung unerheblich. Im übrigen ist der Wind nicht ursächlich für den Luftdruck verantwortlich. Es ist umgekehrt die Luftdruckunterschiede lassen den Wind entstehen, weil die Natur die Druckunterschiede ausgleichen will, wodurch die Luft vom Hochdruckgebiet zum Tiefdruckgebiet strömt, was wir als Wind wahrnehmen.
Wie stark derartige Luftdruckschwankungen das Pendel der Uhr beeinflussen kann ich natürlich nicht einschätzen, das weis der Bernd vermutlich besser. Den größten Einfluß auf das Pendel werden wohl die Temperaturschwankungen haben.
Die Pendellänge wird einmal eingestellt und das war's dann.
Bei Präzisionspendeluhren kann die Pendellänge durch eine temperaturabhängige Positionsänderung des Pendelgewichts vorgenommen werden oder man fertigt das Pendel aus Invar, was praktisch einen Ausdehnungskoeffizienten von Null hat.
Gerade gelesen, auch die Luftdruckschwankungen können mit Barometereinheiten korrigiert werden (https://uhrenbausatz.de/m3-2/).
Allein die Luftdruckmessung ist schon ein Spaß für sich. Vor allem an
leicht windigen Tagen. Dagegen ist ein YoYo ein geradezu statisches
Objekt.
Wenns in der Pendeluhr so windig ist dass die Luftdruckmessung den Wind anzeigt hat man eh keine Genauigkeitsprobleme mehr. Quadcopter verwenden den Luftdruck auch erfolgreich um die Höhe zu stabilisieren, und dort blästs genug.
Leute, die Diskussion geht wieder völlig ins Blaue.
Es ist unstreitig DASS der TE den Luftdruck messen und untersuchen will, also brauchen wir nicht zu diskutieren OB der Luftdruck gemessen werden soll und was das für einen Einfluss haben könnte.
Bitte also mehr Disziplin, sonst endet das wieder wie schon der Thread von 2025
Es ist unstreitig DASS der TE den Luftdruck messen und untersuchen will,
also brauchen wir nicht zu diskutieren OB der Luftdruck gemessen werden
soll und was das für einen Einfluss haben könnte.
Wichtig ist nur, in welchem Umfang Luftdruck und Temperatur Einfluss auf die Steuerung nehmen sollen. Dabei ist auch noch nicht geklärt, wie die Regulierung mechanisch (physikalisch) ungesetzt werden soll.
Wenn die Steuerung Elektrisch an den beiden Tauchspulen passieren soll wäre nur ein Abgleich mit dem GPS-Signal nötig.
Soll das Pendel durch Längenveränderung oder Gewichtsveränderung beeinflußt werden, fehlen dafür noch die Voraussetzungen.
Das ist ein sehr schöner Aufbau, nett anzuschauen. Interessant für mich, der vor über 50 J Uhrmacher gelernt hat.
Nachdem Dir viele von einem Arduino abgeraten haben, weil er nicht genug Speicher besitzt, kaufst Du jetzt doch einen? Außerdem müsstest Du bei einem Arduino Nano für meine Idee mit dem GPS Takt noch prüfen, ob der einen Timer hat, der per externem Takt versorgt werden kann und der zusätzlich einen oder mehrere Gate-Eingänge hat, damit Deine Lichtschranken wirken können.
Bitte schreib doch noch mal Deine Konfiguration auf, die Du Dir jetzt vorstellst.
Sensoren -> Arduino -> SD-Karte ist doof, weil unzuverlässig.
Sensoren -> Arduino -> PC ist per USB/Serielle gut, der PC muss dann 24/7 laufen. Bei mir tun die PCs das, aber bei Dir auch?
Sensoren -> ESP32 -> Log im Flash ist schon besser
Sensoren -> ESP32 -> Cloud ist super.
Sensoren -> Raspi -> Log im Raspi ist super, weil stand-alone.
Wenn Du eine BluePill nimmst, dann hast Du darauf einen STM32, der kann auch mit Arduino programmiert werden, hat aber sicher komplexe Timer.
Wenn Du einen Raspi nimmst, hast Du eine große Community und die Option Python zu nutzen, für das die meisten KIs halbwegs direkt brauchbaren Code erzeugen.
Mit 9V machst Du die meisten Arduinos und ESP32 kaputt. Manchmal können sie 9V aber oft auch nur 5V. Setzt Du auf ein PC-Logging, brauchst du kein Netzteil, weil der PC den Logger per USB mit versorgt.
Es ist unstreitig DASS der TE den Luftdruck messen und untersuchen will,
also brauchen wir nicht zu diskutieren OB der Luftdruck gemessen werden
soll und was das für einen Einfluss haben könnte.
Wichtig ist nur, in welchem Umfang Luftdruck und Temperatur Einfluss auf
die Steuerung nehmen sollen. Dabei ist auch noch nicht geklärt, wie die
Regulierung mechanisch (physikalisch) ungesetzt werden soll.
Da ist nichts gewünscht. Das soll eine elektromechanische Uhr bleiben.
Der Datenlogger soll nur dazu dienen, das Pendel zu optimieren.
Kollege hat einen µC Board (STM32) mit GPS für Absolutzeitstempelung +-40 ns gebaut.
Nebenbei kann der µC auch noch Baro-Hygro-Thermometer per I2C oder SPI auslesen (auch mit Zeitstempel). Dazu braucht es die Lichtschranke mit Pullup Widerstand an einem Pin und er schickt den (plus die andren Daten als JSON) mit Zeitstempel über Ethernet zum PC, der sich dann um Speicherung und Auswertung kümmern kann.
Vorteil wäre, das Driften recht schnell erkannt werden können.
Ich frag ihn mal wo er das Repo hat (ich mein ich wollte/hatte den Link im alten Faden gepostet)
Ich würd sogar überlegen sowas in der Art https://wiki.lilygo.cc/products/t-echo-series/t-echo-lite/ zu verwenden, micro-sd-Karte ist relativ einfach mit einem micro-sd adapter angeflanscht, ditto ein BME280 per i²c als luftdruck/temperatursensor.
Gibts mit e-paper und GPS-Modul, ist mit der Arduino SW Landschaft kompatibel, kann man mit LIPOs versorgen und sogar solar aufladen, manche von den Boards haben auch eine IMU eingebaut, damit könnte man Erschütterungen auch mitloggen.
Datenübertragung ginge per Bluetooth auch aufs iPad, da müsste man sich halt spielen.
Kollege hat einen µC Board (STM32) mit GPS für Absolutzeitstempelung
+-40 ns gebaut.
Nebenbei kann der µC auch noch Baro-Hygro-Thermometer per I2C oder SPI
auslesen (auch mit Zeitstempel). Dazu braucht es die Lichtschranke mit
Pullup Widerstand an einem Pin und er schickt den (plus die andren Daten
als JSON) mit Zeitstempel über Ethernet zum PC, der sich dann um
Speicherung und Auswertung kümmern kann.
Ich würd sogar überlegen sowas in der Art
https://wiki.lilygo.cc/products/t-echo-series/t-echo-lite/ zu verwenden,
micro-sd-Karte ist relativ einfach mit einem micro-sd adapter
angeflanscht, ditto ein BME280 per i²c als luftdruck/temperatursensor.
Gibts mit e-paper und GPS-Modul, ist mit der Arduino SW Landschaft
kompatibel, kann man mit LIPOs versorgen und sogar solar aufladen,
manche von den Boards haben auch eine IMU eingebaut, damit könnte man
Erschütterungen auch mitloggen.
Jetzt kommen wieder 1001 Vorschläge welcher µC am besten ist.
Der TE ist ANFÄNGER, also muss das einfach zu programmieren sein.!
Warum, es geht doch auch um einen halbwegs frickelfreien Aufbau, und Arduino-artige Boards mit WLAN, SD, IMU, GPS und auch BME280 gibts fertig. Was das genau für ein µC ist ist doch gerade in der Arduino-Welt zweitrangig.
Das ist Quatsch. Ich messe seit ca 10 Jahren hier alle Stunden
u.a. auch den Luftdruck mit BME280, 1x im Wohnzimmer und 1x draussen,
die Werte unterscheiden sich höchstens um 1-2 hPa und das ist innerhalb
der Messgenauigkeit.
Ich messe seit ca 10 Jahren hier alle Stunden u.a. auch den Luftdruck
mit BME280, 1x im Wohnzimmer und 1x draussen, die Werte unterscheiden
sich höchstens um 1-2 hPa und das ist innerhalb der Messgenauigkeit.
Ich besorge mir mal die Komponenten.
Arduino Nano usw.
Wozu?
Mache erst einmal einen konkreten Plan, besorge Dir die Software, die für das Zusammenklicken der ganzen 'Halbfertigkeiten' notwendig ist, und versuche, alles fehlerfrei übersetzt zu bekommen. Klar, die Hardware mußt Du irgendwie simulieren, aber auf diesem Weg sparst Du Dir womöglich unnötige Ausgaben und Hoffnungen.
Die vielen Lösungsvorschläge hier stammen von Leuten die teilweise jahrzenhtelange Programmiererfahrung haben: liest sich alles leicht, hat aber viele, viele Tücken und Frustpotential.
Wegen Deines Pendels gab es hier vor einigen Monaten schon einmal eine Diskussion, wie dessen Schwingung genau erfasst werden könnte. Da hätte ich Dir fast bei der Umsetzung geholfen und sie ist wie schon öfter im Sande verlaufen.
Praktisch helfen kann man Dir eigentlich nur, wenn man die Hardware selber auf dem Tisch zu stehen hat.
Meine Meinung.
Ich würde einen Induktionssensor anstelle der Lichtschranke vorschlagen.
Weiters ein ocxo Modul für 10mhz, bekommt man für 15-20 Euro welches man optional mittels ntp auf Genauigkeit trimmen kann. Code für den Timestamp inkl Lichtschranke kann ich liefern für Arduino uno, sowie auch logging Framework. Daten werden auf i2c EEPROM gespeichert und dann bei Gelegenheit auf eine SD Karte Übertragen.
Mittels xmodem werden die Daten zurück übertragen, optional über Bluetooth.
Der Timestamp Framework hat 16bit Intervalltimer, welche ein flag setzen.
Der Tick Intervall ist 6.5536 ms
Der Tick-tock interval ist maximal 7.1 Minuten (16 bit).
Der Tock Intervall ist maximal 256 x Tick-tock
Derzeit maximal 14 reload Timer mit 15bit Wertebereich.
Die Mittlere steuert die Magnetspulen usw.
Schlitzbreite ist 0,5 mm. Die Schaltfahne ist 3 mm breit.
Eine Led, parallel zur Spule, blitzt nur kurz auf, wenn das Pendel
durchschwingt.
Die 3mm Schaltfahne ergibt eine Amplitude von 2°. Wenn ich die
Fahne auf 4mm Breite mache, kann ich 3,5° erreichen.
Die Geschwindigkeit im Nulldurchgang steigt mit der Amplitude.
Die Dauer des Magnetimpulses ist von der Breite der Schaltfahne
und der Amplitude abhängig.
Ich werde den Datenlogger stufenweise aufbauen. Erst mal Temperatur,
Luftdruck und Feuchte stündlich speichern.
Dann die GPS-Zeit nutzen.
Wenn das funktioniert, gäbe es noch die Pendelschwingungen.
Nimm keinen der kleinen Arduino. Klar würde der vllt reichen. Macht es aber meiner Meinung nach unnötig kompliziert für einen Anfänger.
Ich würde mindestens einen ESP32 nehmen. Die Pulse kann der komplett in Hardware zählen. Ich meine sogar die hoch/runter Variante.
Er hat nicht nur genug Speicher um alles in RAM halten zu können falls man es wollte, sondern auch mehr als genug internen/externen Flash. Du brauchst also kein SD Karte, kannst auf den Flash (mit der richtigen Lib) aber trotzdem wie auf ein File zugreifen. Du hast mehr als genug Reserven um noch alles mögliche andere zu tun. Beispiel Webserver um live die Daten anzusehen. Mit PlatformIO und den richtigen Libs bekommt man das relativ leicht hin. Jemand wo sowas schonmal gemacht hat vermutlich an einem Tag.
Von der Sprache bist du auch nicht nur auf C/CPP festgelegt sondern könntest auch noch Python verwenden falls dir das mehr liegt.
Und wahrscheinlich ist er sogar noch günstiger.
Ich verwende gerne den ESP32-S3-WROOM N16R8, der hat 8 MByte PSRAM, da bringst Du Daten unter ohne Ende. Micropython kannst Du mit esptool drauf flashen, das bekommst Du unter https://micropython.org/download/ESP32_GENERIC_S3/ Du musst aber die Variante "Support for Octal-SPIRAM" nehmen, esptool möchte die .bin-Datei von der Auswahl.
Nimm keinen der kleinen Arduino. Klar würde der vllt reichen. Macht es
aber meiner Meinung nach unnötig kompliziert für einen Anfänger.
Ich würde mindestens einen ESP32 nehmen.
Träumer neben der Realität. Der Bernd ist ein exzellenter Mechaniker, dem hier im Thread niemand das Wasser reichen kann. Seine Elektronikkenntnisse sind weitaus geringer und ich glaube nicht, dass es sich schon mit µC-Programmierung befasst hat.
Die ESP sind ganz nett, für den Anfang wird er mit einem Arduino-UNO vielleicht an Grenzen stoßen, aber hat überhaupt erstmal einen Einstieg mit überschauberem Frustpotentional.
Und schon Locken, Bernd? Oder immer noch beim ueberlegen?
Vielleicht mal an deine eigene Idee ("mechanisches Uhrwerk") denken, falls es schleppend vorangeht.
RS232 reicht. Das ist für alte Pferde immer gut. Und stabil. Und was man hat, hat man.
Sag nur: Einfach mal anfangen mit der Temperatur messen. Wird bald Herbst:P GPS Schnickschnack (Praktisch dreidimensionale Temperaturen ... ooh) ... fuer das gibbes auch irgend so ein scheiss verdammtes Modul unter 5 Mark(!).
Falls dir jemand LoRaWAN aufschwatzen will, dann sind das meine Freunde. Die nehmen aber alle Drogen!
Ganz konkret von mir. Und sicherlich auch von Mi N. Und einigen anderen.
Aber ganz ehrlich, wie schon des Öfteren, bei einem bestimmten Anteil der Antworten anderer vergeht einem wirklich jegliche Lust. Nicht zu helfen an und für sich, sondern die Hilfe hier zu posten.
Deshalb nimmt man sich dann selbst etwas heraus und lässt die lautesten Schreihälse einfach mal machen.
Miss doch einmal die Periodendauer, und achte auf den "Jitter" der gemessenen Werte.
Wenn du keinen Frequenzzähler hast, geht das zur Not auch mit einem entsprechen programmiertem Controller. Das wäre auch eine gute
"Einstiegsübung" in die Programmierung von Controllern.
In deiner "Anwendung" fällt dieser Jitter nur deswegen nicht besonders auf,
weil das Pendel als Filter wirkt.
Hinweise, wie man Lichtschranken für eine genaue Messung aufbauen muss,
gab es schon in (vor?)letzten Thread zu deinem Thema.
oder man fertigt das Pendel aus Invar, was praktisch einen
Ausdehnungskoeffizienten von Null hat.
Dann braucht man aber auch keine Temperaturaufzeichnung.
Prinzipiell ist das schon korrekt, allerdings wenn man wissen möchte wie gut die Kompensation erfolgt, dann ist die Aufzeichnung der Temperatur schon sinnvoll. Selbst wenn der Fehler bei so einem kompensierten Pendel sehr gering ist, so ist er doch nicht Null. Die Frage dabei ist natürlich, ob man so kleine Fehler amateurmäßig ausreichend genau erfassen und eine Korrelation zwischen Fehler und Temperatur-/Luftdruckverlauf plausibel darstellen kann.
Außerdem müsstest Du bei einem Arduino Nano für meine Idee mit dem GPS
Takt noch prüfen, ob der einen Timer hat, der per externem Takt versorgt
werden kann und der zusätzlich einen oder mehrere Gate-Eingänge hat,
damit Deine Lichtschranken wirken können.
Hast Du Dir schon mal das Dabla des Nano angeschaut? Ganz offensichtlich nicht. Alles das was Du da aufführst kann der natürlich. Der hat 18 frei verfügbare Ports, wenn Du keine Funktionen wie z.B. SPI oder I2C nutzen möchtest. Für die externe Taktung des Timers würde noch mal ein Port verloren gehen, somit hätte man immer noch 17 Ports frei - für die vorgesehene Anwendung bei weitem ausreichend.
Die ESP sind ganz nett, für den Anfang wird er mit einem Arduino-UNO
vielleicht an Grenzen stoßen, aber hat überhaupt erstmal einen Einstieg
mit überschauberem Frustpotentional.
Bei so kleinen Controllern ist halt der externe Speicher, sei es SD oder ein Flash/FRAM, gesetzt. Da gibt es auch genügend Frustpotential bis das läuft.
Beim internen Speicher hätte er nicht noch weitere Komponenten kaufen müssen. Probleme mit falscher Verdrahtung, EMV kann er mit dem internen Speicher auch keine bekommen. Und eine externe Lib (Elm Chan Petit? Arduino SD.h?) muss er so oder so anbinden.
Intern kann er einfach direkt darauf schreiben (RAM) oder über fertige Libs (LittleFS / FatFS) als Datei darauf zugreifen.
Egal was er macht ist das kein Anfänger Projekt und kann er nur mit viel Zeit (selbst lernen), Hilfe/Zuarbeit von hier oder vielleicht auch mit KI schaffen.
Was mit KI geht haben hier ja schon ein paar gezeigt, hier nochmal ein interessantes Video vom bekannten Schweizer:
https://youtu.be/nmGEedloQ6E
Mit 9V machst Du die meisten Arduinos und ESP32 kaputt. Manchmal können
sie 9V aber oft auch nur 5V. Setzt Du auf ein PC-Logging, brauchst du
kein Netzteil, weil der PC den Logger per USB mit versorgt.
Festspannungsregler bzw. Stepdownwandler sind schon lange erfunden.
Wozu? Ein Arduino Nano hätte auch gereicht. Ich habe seinerzeit mat so ein Sechserpack Nanos für 21€ (https://www.amazon.de/dp/B0FPG26C1V?ref=ppx_yo2ov_dt_b_fed_asin_title) zugelegt. Ein Arduinobrettel kostet da 3,50€. Da wäre auch noch Ersatz für den Fall da, daß man einen mal in die ewigen Jagdgründe schickt und für die restilichen finden sich ganz bestimmt auch noch Anwendungen.
Das ist Quatsch. Ich messe seit ca 10 Jahren hier alle Stunden
u.a. auch den Luftdruck mit BME280, 1x im Wohnzimmer und 1x draussen,
die Werte unterscheiden sich höchstens um 1-2 hPa und das ist innerhalb
der Messgenauigkeit.
Dein Beitrag zeigt nur deine Ahnungslosigkeit.
Dein Antwortpost zeigt, daß Du noch Ahnungsloser bist - Knalltüte halt.
Nimm keinen der kleinen Arduino. Klar würde der vllt reichen. Macht es
aber meiner Meinung nach unnötig kompliziert für einen Anfänger.
Was macht der Arduino - Nano - komplizierter als Brettel? Erzähl mal.
ESP32 wäre natürlich auch gut und ist nicht schwieriger als ein Nano zu programmieren. Vorteil des ESP ist zweifellos die integrierte Bluetoth und WLAN Funktionalität, was für die Weiterverarbeitung der Daten durchaus vorteilhaft ist. Dieser Vorteil macht natürlich auch die Programmierung komplexer, wenn man ihn nutzen möchte. Es ist kein Teufelswerk, aber man muß sich schon damit befassen. Ich weis nicht ob das der TO möchte.
Was macht der Arduino - Nano - komplizierter als Brettel? Erzähl mal.
Seine Ressourcen Knappheit, hauptsächlich was internen Speicher angeht. Das beschränkt den TO auf 2 weisen. Er muss externen Speicher nehmen für sein Logging. Und er muss deutlich mehr darauf achten was für (fertigen) Code er verwendet. Elm Chans SD Karten Zeug braucht auch 8-12kB. OK, die Petit Version ist deutlich kleiner. Keine Ahnung was die Arduino Implementierung braucht.
Vom reinen programmieren geben sich beide nichts. Außer die Möglichkeit anderer Programmiersprachen beim ESP.
Was wäre die Welt ohne Träumer ;-)
Manfred P. schrieb:
Die ESP sind ganz nett, für den Anfang wird er mit einem Arduino-UNO
vielleicht an Grenzen stoßen, aber hat überhaupt erstmal einen Einstieg
mit überschauberem Frustpotentional.
Bei so kleinen Controllern ist halt der externe Speicher, sei es SD oder
ein Flash/FRAM, gesetzt. Da gibt es auch genügend Frustpotential bis das
läuft.
Beim internen Speicher hätte er nicht noch weitere Komponenten kaufen
müssen. Probleme mit falscher Verdrahtung, EMV kann er mit dem internen
Speicher auch keine bekommen. Und eine externe Lib (Elm Chan Petit?
Arduino SD.h?) muss er so oder so anbinden.
Intern kann er einfach direkt darauf schreiben (RAM) oder über fertige
Libs (LittleFS / FatFS) als Datei darauf zugreifen.
Egal was er macht ist das kein Anfänger Projekt und kann er nur mit viel
Zeit (selbst lernen), Hilfe/Zuarbeit von hier oder vielleicht auch mit
KI schaffen.
Was mit KI geht haben hier ja schon ein paar gezeigt, hier nochmal ein
interessantes Video vom bekannten Schweizer:
https://youtu.be/nmGEedloQ6E
Ich bin zwar alt, aber ich habe Engelsgeduld und eine sehr hohe
Frustationsgrenze. (Sonst könnte ich keine Taschenuhren reparieren).
Für einen Datenlogger (Temperatur/Druck/Feuchte) habe ich einiges im
Netz gefunden. Das wird der erste Schritt.
Schaun wir mal.
Falls das mit den Pendelschwingungen gar nicht klappt, wird manuell
abgelesen und verwertet.
hauptsächlich was internen Speicher angeht. Das beschränkt den TO auf 2
weisen. Er muss externen Speicher nehmen für sein Logging.
Erzähl hier mal keinen vom Pferd. Natürlich sind die Ressourcen des Nano nicht üppig, aber sie sind für den vorgesehenen Zweck durchaus ausreichend, wenn man sich mal über die Datenspeicherung Gedanken macht.
Dauerhafte Speicherung der Daten im RAM funktioniert da natürlich nicht, weil der ist wirklich dafür zu klein. Aber man kann ja die Daten nach der Messung sofort raus schreiben. Das geht zum einen mit RS232 oder eben SPI. Die 4 Ports die man für SPI braucht hat man definitiv übrig und SPI-Speichermodule (auch mit SD Card) hierfür gibt es wie Sand am Meer. Die dafür erforderliche Bibliothek, damit man die Karte nutzen kann, ist in der Arduino IDE bereits enthalten. Für das Schreiben der Daten auf die Karte sind dank der Bibliothek nur wenige Zeilen Code erforderlich. Passende Codesnippets findet man in den einschlägigen Foren oder bei KI.
Und er muss deutlich mehr darauf achten was für (fertigen) Code er
verwendet.
Käse, der Code bzw. das Programm landet im Flash und der ist deutlich größer als der RAM. Der Nano hat 32kB Flash und da bekommt man schon eine Menge Programm unter. Der RAM mit 2kB ist knapp, aber der wird ja nur für dynamische Daten gebraucht und die sind bei der vorgesehenen Anwendung überschaubar.
Ich bin zwar alt, aber ich habe Engelsgeduld und eine sehr hohe
Frustationsgrenze. (Sonst könnte ich keine Taschenuhren reparieren).
Für einen Datenlogger (Temperatur/Druck/Feuchte) habe ich einiges im
Netz gefunden. Das wird der erste Schritt.
Sehr gut.
Schaun wir mal.
Falls das mit den Pendelschwingungen gar nicht klappt, wird manuell
abgelesen und verwertet.
Warum sollte das nicht klappen? Das ist doch so einfach.
Einfach mal machen, es könnte ja gut werden.
Grüße Bernd
Aber! Ich könnte hier ein Temperatur logging zeigen, da sind dann alle Schlaumeier stumm hier.
Man muß es auch auswerten können... Und das ist das schwierigste...
Das ist Quatsch. Ich messe seit ca 10 Jahren hier alle Stunden
u.a. auch den Luftdruck mit BME280, 1x im Wohnzimmer und 1x draussen,
die Werte unterscheiden sich höchstens um 1-2 hPa und das ist innerhalb
der Messgenauigkeit.
Dein Beitrag zeigt nur deine Ahnungslosigkeit.
Dein Antwortpost zeigt, daß Du noch Ahnungsloser bist - Knalltüte halt.
Für die Erfassung der Pendelschwingungen würde es doch reichen, ein
Ereigniss (Auslösung der Lichtschranke) mit genauem Zeitstempel (GPS),
zu erfassen.
Start der Messung: Z.B. 0,76 Sekunden vor Sekundensprung.
Ab dann wird jeder Durchgang nach 3600 Impulsen ebenfalls gespeichert.
Mehr bräuchte ich nicht. Das ergäbe schon die Kurve in der Grafik.
Oder denke ich da falsch?
Grundsätzlich ja.
Aber:
das GPS liefert auch nur 1/s, du müsstest da also eine sinnvolle höhere Frequenz (z.B. 100 oder 1000Hz) nutzen und dann den Durchgang von der Controllerhardware exakt mit Timerwert erfassen lassen.
Und: "alle 10 Minuten" wie in dem Diagramm sind nicht "3600 Impulse". Aber vom Prinzip her ja.
YMDhms vom GPS, ms davon abgeleitet und das dann in einem sinnvollen Intervall abgelegt, plus Wetterdaten.
Ich persönlich halte "alle 10 Minuten" schon für gut. Jede Stunde wäre mir zu selten.
Die Kiste ist alleine mit dem SD.init() vermutlich schon zur Hälfte voll.
Klar passts vermutlich, hab ich oben ja auch schon geschrieben, aber ich würde so nicht starten wenn es keinen Grund dafür gibt.
Vermutlich ist der ESP sogar noch günstiger da er nicht noch extra Komponenten benötigt (SD-Karten Slot, SD-Karte oder SPI Flash/FRAM) und er hat deutlich mehr Möglichkeiten.
Ich hätte z.B. keinen Lust ständig das Ding auszuschalten, die SD-Karte zu entnehmen und die Daten auszulesen.
Aber man kann ja die Daten nach der Messung sofort raus schreiben. Das
geht zum einen mit RS232
RS232, das ist ja fast so modern wie Fax. Vielleicht könnte er es auch morsen oder per Brieftaube schicken!? :-D
Und wo schickt er das dann hin?
Dann muss er ja doch wieder die ganze Zeit den PC laufen lassen.
Dann kann er auch gleich wieder ein Rapsi nehmen und hat nur den am laufen.
Start der Messung: Z.B. 0,76 Sekunden vor Sekundensprung.
Ab dann wird jeder Durchgang nach 3600 Impulsen ebenfalls gespeichert.
Mehr bräuchte ich nicht. Das ergäbe schon die Kurve in der Grafik.
Oder denke ich da falsch?
Wenn du Tage oder Wochen für eine Auswertung warten möchtest, dann könntest du es so machen.
Aber dann könntest du auch zum Gong der Tagesschau deine momentane Uhrzeit notieren und sechs Monate später noch einmal. Differenz berechnen, fertig.
Besser wäre es wenn du kontinuierlich die jeweils vergangenen Mikrosekunden (oder besser) zwischen zwei Pendeldurchgängen loggst. Dann kannst du wesentlich früher einen Trend erkennen und dein Pendel zumindest grob anpassen.
Und die Datenmenge ist auch überschaubar. Wesentlich mehr als 86400 Messungen pro Tag muss man nicht erwarten. ;-)
Und als letztes: Mehr Daten ergeben schönere Kurven und erlauben auch bei wackeligen Messungen einen angenehmen Mittelwert zu ermitteln.
Hast Du Dir schon mal das Dabla des Nano angeschaut? Ganz offensichtlich
nicht. Alles das was Du da aufführst kann der natürlich. Der hat 18 frei
verfügbare Ports, wenn Du keine Funktionen wie z.B. SPI oder I2C nutzen
möchtest. Für die externe Taktung des Timers würde noch mal ein Port
verloren gehen, somit hätte man immer noch 17 Ports frei - für die
vorgesehene Anwendung bei weitem ausreichend.
Nein, die sind für alles was ich mache eh viel zu klein und basieren auf AVR, was in sich selbst nicht gut geeignet ist für mich, da ich STM32 bevorzuge. Das hat aber persönliche Gründe.
Aber da du fragst, der Arduino NANO basiert auf einem ATmega328, der hat genau einen 16 Bit Timer mit dem eine der beiden Lichtschranken abfragen könnte. Dieser Timer kann über OC1A und OC1B gestartet und gestoppt werden, oder man benutzt die vom OP genannten Fähnchen und misst ihre Breite für die Durchgangsgeschwindigkeit. Und mit dem Eingang T1 kann man auch eine genehme Zählfrequenz aus einer stabilen Referenz anlegen. Das Limit ist da ca 4MHz.
Das Problem, das ich da sehe ist, dass der ATmega328 nur einen solche Zähler hat und damit einiges an Logik davor geschaltet werden muss, um die Lichtschranken nacheinander zu messen. Zusätzliche Messungen zwischen den Lichtschranken muss man dann in Software oder eben mit einem besser geeigneten Chip machen.
Man kann die drei Lichtschranken nacheinander mit dem Zähler abfrühstücken und man kann den Zähler per Interrupt auf viel mehr Bits erweitern, muss dann aber mit dem Jitter des IRQ leben.
Letztendlich bleibt das Projekt aufwändig, egal wie man es dreht. Entweder näht man bei Timern und Software-Loops auf Kante oder man hat einen unübersehbaren Controller, bei dem man kein Referenz-Signal einspeisen kann. Entweder hat man eine kleine SD-Karte, deren Inhalt man nicht garantieren kann oder man muss ein Webinterface programmieren um an seine Daten zu kommen.
Fragt man die KI und umreißt das Projekt mit den bislang bekannten Vor- und Nachteilen, dann empfiehlt sie einen ESP32 mit 32MB Speicher. Sagt, dass man die 3 Lichtschranken mit dem Timer abfragen kann und dieser auch von einer externen Referenz getaktet werden kann. Da die Daten lange erfasst werden sollen, geht sie von 26MB Daten pro Jahr aus, und schlägt für eine Ausfallsicherheit eine Backup-Versorgung mit LiFePo4 Batterien vor als Online-USV. Sowas gibt es ja fertig zu kaufen und kann das ganze locker ein paar Stunden überbrücken.
Der KI fällt sogar auf, dass da ordentlich Präzision drin stecken soll:
"Eine Ganggenauigkeit von 1 Sekunde Abweichung in 100 Tagen entspricht einer Präzision von rund 0,11 ppm (parts per million). Das ist ein extrem hoher Anspruch! Eine normale Echtzeituhr (RTC) schafft selbst in der besten Ausführung (DS3231) nur etwa 2 ppm (ca. 17 Sekunden Abweichung in 100 Tagen)."
Ich weiß, KI ist böse, aber wir drehen uns hier im Kreis oder weichen vom Thema ab. Der OP hat gute Chancen mit KI sein Projekt funktionsfähig zu nutzen, bevor wir hier einen sinnvollen Aufbau skizziert haben.
Wenn du Tage oder Wochen für eine Auswertung warten möchtest, dann
könntest du es so machen.
Aber dann könntest du auch zum Gong der Tagesschau deine momentane
Uhrzeit notieren und sechs Monate später noch einmal. Differenz
berechnen, fertig.
Genau diese Langzeitbeobachtung ist doch das Ziel der Aktion.
Luftdruck und Temperatur ändern sich halt langsam.
Zum Tagesschau-Gong: Der war vor 30 Jahren mal als Referenz nutzbar.
Seit da alles Digital läuft, kannst du das vergessen.
Genau diese Langzeitbeobachtung ist doch das Ziel der Aktion.
Dann mach einen Schnappschuss im Frühling und einen im Herbst. Delta. Fertig.
Zum Tagesschau-Gong: Der war vor 30 Jahren mal als Referenz nutzbar.
Seit da alles Digital läuft, kannst du das vergessen.
Die absolute Zeit ist doch egal. Wenn der Gong beim ersten Mal um drei Sekunden zu spät kommt und beim zweiten Mal ebenfalls, dann hast du eine absolut valide Differenzmessung.
Bei Zeitangst darf man aber auch jeweils auf die PC Uhr schauen. Die sollte praktisch immer per NTP synchronisiert, im schlimmsten Fall im zweistelligen Millisekunden Bereich abweichen.
Man braucht 2 Eingänge, einen für den GPS-Impuls 1 Hz und einen für den Impuls von der Lichtschranke. Die Impulse lösen jeweils einen Interrupt aus der einen Zeitstempel speichert. Wenn die Differenz zwischen den Zeitstempeln gleich bleibt hat das Pendel genau 1 Hz. Wird die Differenz grösser oder kleiner geht die Uhr nach oder vor. Wohl alle µC haben einen auslesbaren Timer, das Problem ist dabei einen Timerüberlauf zu erkennen und dann entsprecehd umzurechnen. In Micropython gibt es sowas fertig: der Timer heist time.ticks_ms() oder time.ticks_us() und es gibt auch eine Funktion time.ticks_diff() die den Überlauf berücksichtigt.
In Micropython gibt es sowas fertig: der Timer heist time.ticks_ms()
oder time.ticks_us() und es gibt auch eine Funktion time.ticks_diff()
die den Überlauf berücksichtigt.
Nur dass der Micropython Programmierer das Ganze an PIOs/StateMachines delegieren und sich nicht auf Latenz-behaftete variable Interrupts verlassen würde. So kommt man vom µs-Bereich hinunter in den ns-Bereich.
Grundsätzlich ja.
Aber:
das GPS liefert auch nur 1/s, du müsstest da also eine sinnvolle höhere
Frequenz (z.B. 100 oder 1000Hz) nutzen und dann den Durchgang von der
Controllerhardware exakt mit Timerwert erfassen lassen.
Die Zeit zwischen dem Puls vom 1PPS-Ausgang eines GPS und dem Pendeldurchgang kann direkt mit der Capture-Funktion des Timers im µC gemessen werden. Zeitbasis ist dann die Taktfrequenz des µC, die ebenfalls per Capture als Abstand zwischen zwei 1PPS-Pulsen bestimmt werden kann.
Was meinst du mit "sinnvolle höhere Frequenz (z.B. 100 oder 1000Hz)" und zu welchem Zweck?
Nur dass der Micropython Programmierer das Ganze an PIOs/StateMachines
delegieren und sich nicht auf Latenz-behaftete variable Interrupts
verlassen würde.
Beim Arduino delegierst du die Zeitmessung an den Timer mit seiner Capture Funktion, bekommst per Interrupt Bescheid, wenn die Zeitmessung beendet ist, und kannst dann in aller Ruhe das Ergebnis der Messung aus den Timer-Registern abholen.
Augen auf, wie man die vorhandene Hardware nutzen kann.
Wenn es allerdings unbedingt Micropython sein muss, muss der Prozessor das können, da gebe ich dir Recht.
Wenn die Präzisionsuhr in 100 Tagen sagen wir 1 Sekunde falsch gehen soll, dann darf sie an einem Tag nur 10ms falsch gehen. In einer Stunde nur 417ns. Und in einer Minute ca. 7ns. Deshalb mein Einwand bezüglich der zeitlich wackeligen Interrupts.
Wenn es allerdings unbedingt Micropython sein muss,
Muss es nicht. Aber der TO ist nach eigenen Aussagen mit der Programmierung überhaupt nicht vertraut. Und als Jahrzehntelanger C-Programmierer sehe ich die Einstiegshürde bei Micropython sehr deutlich niedriger, da ›lesbarer‹.
Aber viel wichtiger ist, dass der µC mit adäquater Hardware das geplante Ansinnen unterstützt und nicht von vorn herein allzu eng um die Schultern herum ist. ;-)
Nicht ohne Grund war früher BASIC sehr verbreitet.
Ich unterstelle mal, dass du nicht böswillig BASIC und Python in einem gemeinsamen Kontext verwendest. ;-)
Aber selbst damals in den End-Siebzigern, Anfang Achtzigern war BASIC eher das "Friss oder Stirb" Angebot. Oftmals, wie im Falle Microsoft Basic für die Commodores auch noch ganz besonders schlecht gemacht und noch schlechter implementiert. Es rettete sich wer konnte.
Wenn die Präzisionsuhr in 100 Tagen sagen wir 1 Sekunde falsch gehen
soll, dann darf sie an einem Tag nur 10ms falsch gehen. In einer Stunde
nur 417ns. Und in einer Minute ca. 7ns. Deshalb mein Einwand bezüglich
der zeitlich wackeligen Interrupts.
Meinst Du nicht, dass das 417 Mikrosekunden / Stunde sind statt Nanosekunden und 7 Mikrosekunden / Minute statt Nanosekunden?
Nicht ohne Grund war früher BASIC sehr verbreitet.
Ich unterstelle mal, dass du nicht böswillig BASIC und Python in einem
gemeinsamen Kontext verwendest. ;-)
Hab ich Jehova gesagt?
Aber selbst damals in den End-Siebzigern, Anfang Achtzigern war BASIC
eher das "Friss oder Stirb" Angebot. Oftmals, wie im Falle Microsoft
Basic für die Commodores auch noch ganz besonders schlecht gemacht und
noch schlechter implementiert. Es rettete sich wer konnte.
BASIC war nicht für professionelle Programmierer gedacht, MicroPython wohl auch nicht.
Aber die bloße Erwähnung von BASIC (beziehungsweise dessen Benennung als Programmiersprache) ist seit über vierzig Jahren aus gutem Grund ein rotes Tuch! ;-)
Aber die bloße Erwähnung von BASIC (beziehungsweise dessen Benennung als
Programmiersprache) ist seit über vierzig Jahren aus gutem Grund ein
rotes Tuch! ;-)
Meinst du wirklich, das die Hardware auf Nanosekunden genau eben nicht
jittert?
Die jittert in den Grenzen der internen PLL. Nicht mehr, nicht weniger. Da bin ich mir sogar sehr sicher, da selbst gemessen. Zumindest so gut es mit meinen Geräten ging. Die PIOs sind deterministisch. Und 200MHz (5ns) sind für die Ein- und Ausgänge keine große Sache. Recht niederohmig muss es dann aber schon sein.
Wenn es um die Uhrenhardware geht; keine Ahnung. Müsste man sich ansehen. Für die Lichtschranken: Die µC Pins haben Schmitt-Trigger Eingänge die ebenfalls recht stabil sind. Kann man einfach mit nem externen RC Glied und geschickter PIO-Programmierung messen. Ein µC Hardware-gesteuerter Multivibrator mit einer 200mV Hysterese. Und stabil wie festgenagelt.
Grundsätzlich bin ich aber stets der Meinung: Immer erst einmal alles so genau wie möglich machen. Ungenau kann man später immer noch werden. ;-)
... Ich persönlich halte "alle 10 Minuten" schon für gut
Sehe ich prinzipiell auch so. Man kann mit dem Intervall sogar noch weiter runter gehen, z.B auf eine Minute. Damit könnte man dann einen gleitenden Mittelwert (z.B. für den zu betrachtenden Zeitpunkt + 9 Werte davor, man mittelt so über 10 Minuten) berechnen, wodurch die Messreihen geglättet werden. Peaks in den Messreihen werden so eliminiert und die Auswertung gestaltet sich am Ende einfacher.
Die Kiste ist alleine mit dem SD.init() vermutlich schon zur Hälfte
voll.
Schreibt man wenn man keine Ahnung davon hat bzw. man meint man müsse seinen Senf dazu geben.
In 32kB bringt man schon eine Menge lauffähigen Code unter. Ich komme noch aus einer Zeit da mußte man sich mit noch weniger Speicher zufrieden geben. Der an unserem Repeater verbaute PDP11 hatte ganze 28kB Hauptspeicher und da lief das komplette Steuerprogramm für die Anlage. Allerdings hat man damals auch anders programmiert, nämlich ressorcenschonend - Speicher war halt knapp.
Ich bin grad an einem Nanoprojekt, welches alle alle verfügbaren Ports nutzt. Einige der benötigten Funktionen (z.B. eine zweite serielle Schnittstelle) werden dabei mangels fehlender HW per SW realisiert, also nicht unbedingt ressourcenschonend. Dennoch werden nur knapp 38% vom verfügbaren Flash gebraucht. Da ist also noch genug Platz für mindestens noch mal soviel Code.
Ja natürlich ist RS232 Oldschool, aber es ist in diesem Fall völlig ausreichend und es ist zuverlässig. Denk mal drüber nach warum viele moderne Messgeräte immer noch das olle RS232 oder auch das nicht mehr ganz junge GPIB zur Datenübertragung anbieten. Es muß gute Gründe dafür geben.
Der Rest des Absatzes (die 3 Punkte) ist einfach nur substanzloses Gelaber.
Nein, die sind für alles was ich mache eh viel zu klein und basieren auf
AVR, was in sich selbst nicht gut geeignet ist für mich, da ich STM32
bevorzuge.
Es ist doch völlig Rille auf welchem Chip die basieren, entscheident ist, ob sich die Aufgabenstellung damit umsetzen läßt. Wenn Du meinst alles mit STM32 machen zu müssen, dann ist das Deine Entscheidung. Andere sehen das halt komplett anders und benutzen andere Controller.
Das muß nicht aufwändig sein, das kommt darauf an wie man das umsetzt. Es gibt viele Wege die nach Rom führen. Man muß sich halt mal mit Papier und Bleistift hinsetzen und das Projekt entwickeln. Da merkt man dann schon recht schnell wo es lang geht. 3 Umweltdaten (Temperatur, Luftfeuchte und Luftdruck) und die Durchgangsgeschwindigkeit eines Pendels erfassen ist nun wirklich keine Hexerei. Man muß auch nicht die erfassten Daten über Tage, Wochen oder gar Monate auf dem Controller speichern. Die schreibt man zeitnah raus und speichert sie extern. Auch eine SD-Karte wäre in diesem Sinne ein externes Medium. Pro Tag fallen da nur wenige kB an Daten an. Eine SD Karte in der heute üblichen Größe kann da schon lange Daten aufzeichnen. In Überwachungskameras, wo die Datenmenge deutlich größer ist, funktioniert das doch auch. Warum soll das bei so einem Datenlogger der ein halbes Dutzend Messdaten und einen Zeitstempel speichern soll nicht funktionieren?
Dann mach einen Schnappschuss im Frühling und einen im Herbst. Delta.
Fertig.
Nein, es geht um den "Gang", also wie sich die Abweichung entwickelt und da sind schon deutlich kürzere Intervalle nötig, wenn man daraus auch Rückschlüsse ziehen will. In so einem langen Zeitraum kann das Pendel mal vor aber eben auch nach gehen und am Ende aber +/-0. Dann ist das zwar im Mittel gut, aber man keine Rückschlüsse auf die Abhängigkeit der Schwingungsdauer von den Umweltgrößen ziehen. Genau das will aber der TO wissen.
Ich behaupte mal, ohne es jetzt beweisen zu können, am Ende wird wohl eine Art Sinuskurve als Gangabweichung heraus kommen, was dann der Idealfall wohl wäre. Eine stetig steigende bzw. fallende Kurve wäre für mich ein Fehler im Pendelsystem - die Schwingfrequenz läuft langsam weg.