nrf24L01+ ... wie handelt man den in Python?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi irh Würgeschlangen-Bändiger ...

    wie ist das in Python mit diesem 2.4 GHz Modul nrf24L01+?
    Interessieren würde mich, wie der Transceiver adressiert wird ...
    So ein Modul unterstützt ja bis zu sechs Verbindungen gleichzeitig. Neben den 128 Kanälen stehen mir da in C sog. pipes zur Verfügung, die innerhalb eines Kanals quasi als Addresse verwendet werden.
    Per default sind diese wie folgt definiert:

    Code
    pipe 0 = E7:E7:E7:E7:E7
    pipe 1 = C2:C2:C2:C2:C2
    pipe 2 = C2:C2:C2:C2:C3
    pipe 3 = C2:C2:C2:C2:C4
    pipe 4 = C2:C2:C2:C2:C5
    pipe 5 = C2:C2:C2:C2:C6


    Würde mich deshalb mal interessieren, weil ich gerade versuche herauszubekommen, ob das Modul irgendwie über eine Art broadcast Addresse den paylod in einem Kanal mitlesen kann.
    Das Ganze gehört zu meinem 2.4 GHz Scanner im Microcontroller-Subforum.

    cheers,
    -ds-

    • Offizieller Beitrag

    Hi -ds-, was ich auf die schnelle gefunden habe. Es hat einer nen Wrapper für die C -Classen gebaut so das es anscheinend dort genauso gehandhabt wird.

    Das modul gibt hier

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hm ... die dort definierten pipes kenn' ich, das sind dieselben wie z.B. in einem test-sketch für den Arduino:

    Code
    // Radio pipe addresses for the 2 nodes to communicate.
    const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

    Ich steig' da im Moment noch nicht ganz durch ... die kann man frei verändern. Von den 40 Bit müssen lediglich die ersten 32 übereinstimmen, die Unterscheidung findet durch das letzte Byte statt.
    Welche 32 Bit da genommen werden ist scheinbar vollkommen Banane.
    Die Krux: wenn die pipe-Werte nicht übereinstimmen, kann ich keine Daten lesen.
    Lediglich der CarrierDetect zeigt Sendeaktivitäten an ...

    Ganz schön mysteriös ... hat so ein bisschen was von security by obscurity ... mag ich aber ehrlich gesagt nicht so recht glauben.
    Würde mich z.B. mal interessieren, auf welchem Kanal mein Aussenthermometer in welchem Intervall welche Daten schickt.

    Aber ok, danke für die Antwort, ich denke, das kann ich dann abhaken.
    Python scheint also o.g. Voreinstellungen zum machen ...

    Da hab' ich wohl noch ne Weile dran zu knabbern ;) ...

    cheers,
    -ds-

  • Hi,
    vielleicht noch mal kurz ein Update:
    die Pipes sind offensichtlich lediglich ein Hilfsmittel für den Entwickler.
    Wenn ich mich durch die Kanäle scanne, dann kann ich auch ohne aktivierte Lese- bzw. Schreib-Pipe Daten empfangen und versenden.
    Mir ist zudem aufgefallen, dass sich Kanäle manchmal überlagern oder der Sender den Kanal wechselt. Jedenfalls empfange ich manchmal auf zwei Kanälen Daten, obwohl ich nur auf einem sende.
    So langsam komme ich dahinter, wie der ganze Kram funktioniert.
    Mal sehen, vielleicht wird irgendwann mal eine brauchbare, allgemeine Beschreibung draus.

    cheers,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!