Ergebnis 1 bis 15 von 15

Thema: Raspberry Pi POCSAG Encoder/Sender (Python Script)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    01.08.2016
    Beiträge
    14
    Vielen Dank für Deine sehr konstruktive Kritik, MiThoTyN. Da hast Du natürlich in allen Punkten vollkommen Recht. Deinen Vorschlag werde ich auch bei Gelegenheit im Script abändern.

    Zitat Zitat von MiThoTyN
    Meine Bitte an dich wäre nur, ein Gefühl dafür zu entwickeln wann dein Programm "fertig" ist und wann es einen Stand hat, in dem man es veröffentlichen kann. Dein Programm sollte nicht fertig sein wenn es tut was es soll, sondern erst dann, wenn es dabei auch noch "schön" aussieht und möglichst nicht weiter verbessert werden kann.
    Das Veröffentlichen sollte eigentlich dazu dienen, dass verschiedene Interessenten das Script schon mal in diesem sehr frühen Stadium testen können - im besten Falle auch mal einen Funkruf über einen Transmitter laufen lassen - damit man die Funktionalität überprüfen kann (so eine Art Bugreport, bzw. Bugtracker). Ich bin eben momentan nicht im Besitz eines Senders, sonst hätte ich das schon längst mal in Angriff genommen, ohne ein unfertiges Script zu veröffentlichen.

    Zitat Zitat von MiThoTyN
    2.) Wie du im Artikel von Quietschphone lesen konntest, ist die Ansteuerung über die GPIO des Raspberry nicht sinnvoll. Problem ist, dass dein time.sleep(xyz) nicht immer exakt xyz Zeiteinheiten schläft, sondern das mal mehr oder weniger sein kann. Ursache dafür ist das Betriebssystem, welches neben deinem Programm ja auch noch dutzende weitere "gleichzeitig" ausführen muss und dafür ein so genannter "Scheduler" den Prozessor der Raspberry immer unter all den Programmen "verteilen" muss. Das ist ein ganz allgemeines Problem bei "Echtzeit"-Anwendungen, wie das Generieren von genauen Bitraten, in Zusammenhang mit "normalen" Betriebssystemen. Es gibt diverse (und meist ziemlich komplexe) Möglichkeiten das zu lösen. Eine der einfacheren wird in dem Artikel genutzt.
    Ich habe das ehrlich gesagt schon befürchtet. Dann wäre es ja beispielsweise möglich, den String aus Nullen und Einsen einem Arduino zu übergeben, der sich dann um das Senden kümmert. Der Arduino müsste doch als Mikrocontroller eine gleichbleibende delay-Zeit aufweisen. Liege ich da richtig in der Annahme?

  2. #2
    Registriert seit
    18.12.2001
    Beiträge
    4.989
    Zitat Zitat von Maskey Beitrag anzeigen
    Das Veröffentlichen sollte eigentlich dazu dienen, dass verschiedene Interessenten das Script schon mal in diesem sehr frühen Stadium testen können - im besten Falle auch mal einen Funkruf über einen Transmitter laufen lassen - damit man die Funktionalität überprüfen kann (so eine Art Bugreport, bzw. Bugtracker). Ich bin eben momentan nicht im Besitz eines Senders, sonst hätte ich das schon längst mal in Angriff genommen, ohne ein unfertiges Script zu veröffentlichen.
    Jein. Nette Idee, aber warum sollte jemand anderes mit einem so "unfertigen" Programm testen wollen? Wenn ich dir vier Reifen, ein Lenkrad und ein Satz Schrauben gebe und sage "Hier haste ein Audi A8, kannste schon mal Probe fahren", würdest du auch doof aus der Wäsche gucken.

    Dein Programm an sich "funktioniert" ja auch ohne Transmitter. Wichtig ist, dass die richtige Bitfolge am Ende zur Verfügung steht. Um das Sicherzustellen, baut sich ein guter Programmierer "Mocks" und "Tests". Du könntest z.B. mal per Hand eine Bitfolge für eine Beispiel-POCSAG-Meldung berechnen und dann mit der von deinem Programm vergleichen. Sind beide gleich, tut dein Programm das richtige. Wenn nicht, musst du noch Anpassungen machen. So kannst du ohne Transmitter dein Code so lange verbessern und verschönern, bis er auch wirklich von Jedermann nutzbar ist. Nur dann wird sich auch jemand mit deinem Code auseinander setzen.

    Zitat Zitat von Maskey Beitrag anzeigen
    Ich habe das ehrlich gesagt schon befürchtet. Dann wäre es ja beispielsweise möglich, den String aus Nullen und Einsen einem Arduino zu übergeben, der sich dann um das Senden kümmert. Der Arduino müsste doch als Mikrocontroller eine gleichbleibende delay-Zeit aufweisen. Liege ich da richtig in der Annahme?
    Grundsätzlich ja, aber auch da kommt es auf die Programmierung an. Stichworte sind Interrupts und Timer. Wenn du das einfach nur so mit Sleep und einer großen Schleife baust, wird es auch auf einem Arduino nicht (zuverlässig) funktionieren.
    Wobei sich dann die Frage stellt, warum du den POCSAG Dekoder dann nicht gleich im Arduino programmierst. Dann brauchst du den Umweg über Python und den Raspberry nicht.

    Gruß Joachim

  3. #3
    Registriert seit
    01.08.2016
    Beiträge
    14
    Ich habe soeben eine Rückinfo von Alphapoc erhalten.

    Es ist tatsächlich möglich beispielsweise einen AP601 auf die Sonderfrequenz 433,920 MHz abzustimmen.
    Allerdings ist in diesem Falle die Lieferzeit wesentlich länger.

    Ich hab mal ein schriftliches Angebot angefragt. Mal schauen auf was sich da die Kosten belaufen, bzw. inwiefern sich die Lieferzeiten verzögern.

    LG
    Maskey

  4. #4
    Registriert seit
    01.08.2016
    Beiträge
    14
    Mal ein kurzer Zwischenstand:

    Das Script funktioniert schon mal zuverlässig.
    Um das Synchrone aussenden der Bits zu verbessern, habe ich einen Arduino als Clock Generator "missbraucht", der einfach einen GPIO des Raspberry Pi's mit 1200 Hz ansteuert (Square Signal). Der Pi gibt dann bei jeder fallenden Flanke des Signals das nächste Bit an den Sender weiter und schiebt nach und nach den String durch, bis das letzte Bit erreicht ist.

    Zum Senden habe ich mir von Pollin ein RFM69 bestellt. Dieser wird über Register mit der SPI Schnittstelle programmiert und das Modul kann somit komplett frei nach Belieben angepasst werden, also z.B.
    Frequenz 433,92MHz, Frequenzhub 4,5kHz, 1200b/s, FSK Modulation, Sendemodus aktivieren usw....

    Soweit die Theorie, leider funktioniert das bisher nicht so ganz.
    Ich bekomme das Modul einfach nicht zum Senden... :/

    Kennt sich von Euch jemand mit solchen Sende Modulen aus?
    Hier ist mal ein Link zum Datenblatt:
    https://www.pollin.de/productdownloads/D810800D.PDF

    LG Maskey

  5. #5
    Registriert seit
    01.08.2016
    Beiträge
    14

    Video

    Hier mal der aktuelle Stand in einem Video. Übertragung funktioniert eiwandfrei!

    https://m.youtube.com/watch?v=MfIWmMxX8Ok

  6. #6
    Registriert seit
    01.02.2017
    Beiträge
    6
    Hi,

    kannst du denn mal eine kleine Anleitung mit "Einkaufsliste" erstellen?

    Wäre mega nett! :)


    Liebe Grüße
    Justin

  7. #7
    Registriert seit
    01.08.2016
    Beiträge
    14

    Fehlerhafte Script-Version 0.9 !!

    Hallo liebe Forengemeinde!

    Ich bitte folgendes zu beachten:

    Das Python-script der Version 0.9 generiert einen fehlerhaften String. Das konnte ich leider erst herausfinden durch das Senden dieser Strings an einen DME.
    In der Praxis zeigen sich eben immer wieder Dinge, die man nicht bedacht hat...

    Der Quellcode wurde also noch einmal überarbeitet. Das o.g. Video, in dem der Melder den Text korrekt empfängt, zeigt die Funktionsweise des aktuellen und noch nicht veröffentlichten Quellcodes, der nun endlich zuverlässig codiert.

    Ferner Arbeite ich an folgenden Verbesserungen:

    - grafische Oberfläche für z.B. Nutzung des Senders am PC, funktioniert auch auf RaspberryPi

    - Verwendung eines FSK-Sendemodules anstatt 2 AM-Modulen, wie sie im Video zu sehen sind
    -> Dadurch wird eine höhere Zuverlässigkeit erreicht, da sich die AM-Module mit der Zeit durch Temperaturunterschiede verstellen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •