Posts by BallerNacken


    > Außerdem ist mir erst jetzt aufgefallen, dass ich ja auch noch die Minuten benötige.
    Oehoemm !! In der Beschreibung stand doch drin, dass es die Millisekunden nach dem letzten Sekundenpuls sind ...


    > Diese stehen in einem anderen Feld
    In welchem ?


    Genau das verstehe ich nicht. Ist ein bisschen schwer zu erklären, magst du in der Anleitung mal nachsehen? Es ist wohl in Byte 62, in einem Channel und da wieder in 3 Bytes versteckt. Aber wie ich da hinkomme...puh!


    Quote


    Mit der Frequenz stimmt auch etwas nicht. 20ms sind keine 20Hz


    Ja stimmt, sind 50 Hz...hm! Ich habe morgen oder am Freitag eine Unterhaltung mit jemandem, der schonmal sowas ähnliches für diese GPS-IMU-Einheit gemacht hat. Bis dahin bleibt mir wohl nichts anderes übrig, als rum zu probieren. Durch deine Hilfe, habe ich das auslesen der UDP-Pakete immerhin schonmal recht gut verstanden!

    Hallo Pi'ler,


    ich möchte mit meinem Pi gerne einen Spannungsabfall messen. dafür existiert eine externe Elektronik, die mit 12 Volt gespeist wird und 4,7 V ausgibt. Bekommt diese Elektronik nun ein Signal (nicht vom Pi), kommt es zu einem Spannungsabfall. Diesen Abfall möchte ich gerne mit dem Pi registrieren und als Event später verwenden.
    Meine Idee ist nun diese Elektronik an die GPIO Schnittstelle anzuschließen und über ein Interrupt abzufragen. Also einen der Pins, welchen genau weiß ich nicht (in einem Beispiel war es GPIO 23). Da wurde aber lediglich ein Schalter abgefragt. Das Ganze soll per interrupt geschehen und funktioniert mit einem simplen Schalter an GPIO 23 (Pin 16) und Ground (Pin 6) und entsprechendem Python script auch schon ganz gut.


    Das Problem liegt ersteinmal im Anschluss der Elektronik. Kann ich eine externe Spannungsquelle einfach so an einen der GPIO Pins anschließen? Ich muss die Spannung denke ich mal auf mindestens 3,3 V herunterbringen. Doch wie verhält es sich mit der Stromstärke? Was halten die Pins aus, wenn sie denn überhaupt für solche Zwecke verwendet werden können?! Wenn ich die Daten wüsste, was die Pins abkönnen, könnte ich zumindest den Widerstand berechnen, den ich benötige um die Spannung/Stromstärke runter zu bringen.
    Ihr seht Fragen über Fragen. Aber immer noch besser als meinen Pi zu zerlegen...


    Viele Grüße,
    BallerNacken

    Okay, das funktioniert schonmal.


    Bekomme nun folgende Ausgabe:



    LSB enthält also die Millisekunden in der Minute. Es zählt bis 60000 ms hoch und fängt dann wieder vorne an. Was MSB allerdings enthält, blicke ich überhaupt nicht. Ich weiß das LSB für Least significant bit und MSB für Most significant bit steht, aber das war es dann auch schon.
    Außerdem ist mir erst jetzt :wallbash: aufgefallen, dass ich ja auch noch die Minuten benötige. Diese stehen in einem anderen Feld. Ich habe allerdings null Plan, wie ich da ran kommen soll...Das hier ist die Anleitung zu der GPS-IMU-Einheit. Vielleicht wird einer von euch daraus ja schlauer. (Seite 82-89)
    Das Feld enthält die Minuten seit dem 06.01.1980. Da muss ich dann noch die Sekunden und Millisekunden irgendwie oben drauf rechnen. Erst dann habe ich die komplette Zeit...ist doch deutlich komplizierter als ich erwartet hatte :(

    Quote


    [font="Tahoma,Verdana,Arial,sans-serif"]> Das Manual der GPS-IMU-Unit sagt für Byte 0: Sync, Always7h.[/font]
    [font="Tahoma,Verdana,Arial,sans-serif"]7h ist aber nicht E7h[/font]


    Das sollte "Always E7h" heißen. Würde also ungefähr passen...


    Quote


    [font="Tahoma,Verdana,Arial,sans-serif"]> Wenn ich in der Zeile 83 die 0 zu einer 1 und die 1 zu einer 2 mache, müsste es dann besser sein? Time ist byte 1 und 2.[/font]
    [font="Tahoma,Verdana,Arial,sans-serif"]Ist auf jeden Fall einen Versuch wert. Und die Resultate schoen protokollieren ![/font]


    Ich werde morgen oder übermorgen testen können, ob sich mit der Änderung was verändert. War heute nicht mehr möglich.


    Quote


    [font="Tahoma,Verdana,Arial,sans-serif"]Sagt das Manual auch, in welchem Format die Zeit ist ??[/font]


    Im Manual steht wortwörtlich:


    Quote


    Byte Quantity Notes
    0 Sync Always E7h
    1 Time Time is transmitted as milliseconds into the minute in GPS time.Range is 0 to
    2 Time 59,999 ms.


    Das sagt mir, dass die Zeit nicht irgendwie verpackt sein sollte, sondern so wie dort beschrieben in ms übertragen wird.


    Quote


    [font="Tahoma,Verdana,Arial,sans-serif"]Die Werte in Byte 1 haben einen Abstand von 20 (Dezimal). Wie schnell hintereinander kommen die Meldungen ?[/font]


    Schnell. Manual sagt das GPS haut mit 2-20 Hz raus. Bei meinem Test würde ich eher auf 20 Hz tippen :)


    Mal schauen wie es morgen aussieht. Ich werde mal ein wenig rumtesten. Kommt ja noch einiges mehr für mich, was verstanden und programmiert werden muss. :)


    Grüße,
    BallerNacken

    Also, ich konnte den Code endlich testen. Leider bekomme ich keine Zeit ausgegeben. Ein Fehler erscheint auch nicht, weshalb ich annehme der Socket wurde richtig erstellt.


    Hast du eine Ahnung, was es sein könnte?


    Edit: Okay habe es hinbekommen, lag an der Konfiguration des GPS im Fugzeug. Nun empfange ich die UDP Pakete. Für die Zeit bekomme ich folgende Ausgabe:



    Code
    len:72
    Zeit: E7 F4
    len:72
    Zeit: E7 08
    len:72
    Zeit: E7 1C
    .
    .
    .


    Die Länge des NCOM Paketes wird mit 72 Byte schon vollkommen richtig angezeigt. Ich nehme an, ich muss nun noch die Zeit aus diesen etwas "kryptischen" Daten umformen? Oder werden vielleicht die falschen Bytes ausgelesen?


    ps.: das E7 bleibt, nur der hintere Wert ändert sich immer.


    Edit2: Das Manual der GPS-IMU-Unit sagt für Byte 0: Sync, Always7h. Ich denke mal das ist der Indetifier. Wenn ich in der Zeile 83 die 0 zu einer 1 und die 1 zu einer 2 mache, müsste es dann besser sein? Time ist byte 1 und 2.


    Grüße,
    BallerNacken

    hm okay, das ist natürlich schlecht. Ich frage nochmal nach, vielleicht ist die Zeit auch direkt in dem UDP-Paket als ein byte eingebunden, ohne nochmal extra in einem NMEA Satz eingebunden zu sein.

    Erstmal Danke für die Antworten! Tell danke für das nette Geschenk, werde ich nächste Woche mal ausprobieren, wenn ich dazu komme (ist leider nicht so einfach zu testen). Für alle anderen, es wird ein Broadcast gesendet und ich meine mich zu erinnern, das die Zeit in einem NMEA Satz gespeichert ist.


    Grüße,
    BallerNacken

    Hallo Leute,


    ich bin neu auf dem Gebiet der Programmierung und wurde mit meinem Projekt ein wenig ins kalte Wasser geworfen. Und zwar wird in einem Forschungsflugzeug eine Infrarotkamera betrieben die in recht schnellen Abständen Fotos macht. Jedesmal wenn nun die Blende ausgelöst wird, soll die dazu exakte Zeit in einem txt-File gespeichert werden. Die Elektronik und die entsprechenden Programme müssen dafür entworfen werden. Die Hardware ist nahezu fertig. Mein Problem ist vorerst das GPS-Signal.
    Die im Flugzeug eingebauten GPS-Empfänger schicken die Daten mit 100 Hz in einem speziellen Protokoll durch das lokale Netzwerk im Flugzeug. Die Daten möchte ich nun mit meinem RasPi empfangen und auswerten.
    Wie ich das Ganze über einen per USB oder an den GPIO-Pins angebrachtes GPS hinbekomme, weiß ich. Aber nicht wie ich die GPS-Zeit aus einem Paket im Netzwerk erhalte.
    Die IP-Adresse und der verwendete Port des Gerätes, dass die GPS-Daten sendet, sind bekannt. Das Ganze wird als UDP durch die Gegend geschickt. Jedes Paket enthält 72-byte, wovon ich nur die ersten zwei bytes (byte 1 und 2) benötige. Diese enthalten die GPS-Zeit.
    Ich habe mir bereits gpsd angeschaut, bin mir aber nicht sicher, ob dieses auch aus einem solchen Paket im lokalen Netzwerk die GPS-Zeit extrahieren und mir ausgeben kann.
    Ich komme dahingehend im Moment nicht weiter und wäre für jede Hilfe dankbar.


    Viele Grüße,
    BallerNacken

    Hi
    Leute,


    ich krame den Thread hier nochmal hervor. Und zwar habe ich genau die gleiche Fehlermeldung wie AltBen erhalten, als ich versucht habe gpsd zu installieren. Habe auch schon google gequält, doch alle dort vorgeschlagenen Lösungsanätze scheinen nicht zu finktionieren oder ich führe sie falsch aus. Bisher habe ich folgendes gemacht:


    Code
    root@pisces:~# apt-get install gpsd



    Auf anderen Seiten wird vorgeschlagen, /etc/sudoers zu verändern. Zu:

    Code
    Defaults env_reset
    Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"


    Allerdings sieht mein PATH in /etc/sudoers schon genau so aus.


    Hat einer von Euch eine Idee, wie ich das Problem in den Griff bekommen kann?


    Grüße,
    BallerNacken


    edit: hat sich erledigt. Aus irgend einem Grund, funktionierte es nach einem Neustart.