Das Erwachen der Graupner Nautik-Module unter FrSky und OpenTX mit LUA

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Hallo,
      Ich will nicht an die Nautik Module, sondern den Arduino als Schaltmodul für Licht und evtl Schrittmotoren nutzen.

      Ich hab den Feiertag dazu genutzt, SBUS mit Arduino zu decodieren. Das Ergebnis war für mich ernüchternd:
      Mit dem FUTABA_SBUS Protokoll von (Github Mikeshub) auf dem ProMicro (inkl der Änderungen von Helle) konnte ich nur Kanal 1-9 decodieren, danach nullen oder 1023 Festwert. Auf dem Nano habe ich das garnicht hinbekommen.

      Dann fand ich eine Routine, die sogar ohne Inverter decodieren wollte, da bekam ich dann auch 16 Kanäle, aber alle ca 15 Auslesungen sprangen die PWM werte einmalig um 800 (zumindest auf meinem Nano). (Github Fdivitto)

      Ich warte jetzt auf einen Maple Leaf Mini mit STM Prozessor und 72MHZ, dafür habe ich noch Code gefunden (GitHub Bolderflight). Für mich als programmierender halblaie sehr gut dokumentiert. Vielleicht hat der µP genug Dampf um SBUS auszulesen.

      Kann jemand von euch zuverlässig alle 16 SBUS Kanäle von einem Taranis Rx mit Arduino Nano oder ProMicro auslesen?

      Ansonsten heute endlich den Nano über Interrupt genutzt, um zumindest 4 PWM Kanäle auszulesen, das sind zwar mehr Kabel, und deutlich weniger elegant als SBUS, aber für die derzeitigen Projekte sollte es reichen, da ich eh zwei Empfänger verwenden werde und damit genügend PWM Ausgänge habe.
      PWM auslesen hier super erklärt: https://ryanboland.com/blog/reading-rc-receiver-values/
      Happy Coding, Jan
    • Mittlerweile hab ich den in der Schiffsmodell
      schiffsmodell-magazin.de/downl…r-frsky-s-bus-empfaenger/
      veröffentlichten SBus Dekoder erfolgreich auf einem Arduino Nano nachgebaut.
      Dieser kann mit den verwendeten Bibliotheken 12 PWM Kanäle ausgeben. Die Kanäle bis 16 werden dann als einfache Schaltkanäle ausgegeben.

      Im Setup ist eine Funktion integriert mit der man weniger PWM Kanäle und dafür mehr Schaltkanäle ausgeben kann.

      Diese Setup Funktion hab ich deaktiviert und den Code für mich so umgeschrieben das die Kanäle 9..16 mit jeweils 2 Schaltpunkten auf dem Arduino Nano ausgegeben werden.

      War mit dieser Vorlage einfacher wie gedacht....
      Die Auswertung des Failsafe Bits im Bussignal hab ich noch nicht integriert: zum einen nutze ich die Schaltfunktionen bisher auch nur für Beleuchtung und Co. zum anderen habe ich feste Failsafepositionen für alle Kanäle vom Sender aus vorgegeben

      Ralf
    • Hurra, jetzt geht's!!!
      Ich kann jetzt auf dem Pro Micro alle 16 SBUS Kanäle auslesen....ich war mit dem USB Serial etwas über cross.

      Schön, dass man den SBUS über Serial1 ein- und über USB das alles über Serial ausgeben kann, aber den Monitor usw alles richtig zum Laufen zu bekommen war nicht ganz easy....Also, FUTABA_SBUS.h forever ;)

      Jetzt kann geschaltet werden....
      Jan
    • @Kai
      Bisher reden wir immer davon den SBUS zu Dekodieren.
      als Kauflösung um SBUS Signale zu erzeugen (ist es das was du möchtest ?)
      gibt es z.B. das hier:
      banggood.com/RMILEC-Multi-unit…1215681.html?rmmds=search
      habe den Vorgänger davon funktioniert ganz gut z. B. um alte 40MHz Empfänger einzulesen und dann als Schülersignal in die Taranis einzuspeisen.

      Als Eigenbaulösung mit Arduino gibt es z.B. das hier:
      quadmeup.com/generate-s-bus-with-arduino-in-a-simple-way/

      in den Bibliotheken auf den Arduino Seiten ( ...SBUS Reversed Engeneered for Arduino)
      wird eigentlich auch gut Beschrieben wie sich das SBUS Signal zusammensetzt....
      Ralf

      ps wie weit bist du mit deinen Versuchen die UART-Konverter zum Datentransport zu verwenden....
    • lab schrieb:

      Klasse! :thumbsup:

      Bekommst Du die "richtige" SBus-Codierung oder PWM?

      Und könnte man damit auch SBUS-Signale erzeugen und im Sender einspeisen?
      Man liest mit obiger Bibliothek SBUS Werte (0...2012) ein, das kann man dann per "map" funktion

      pwm= map(sBus.channels[i], 0, 2016, 860, 2140); // Wandeln in 0 bis 2016 in max Servowerte 860us bis 2140us

      auf PWM...1500µs zentrieren
    • Hi Ralf,
      ich hoffe, dass ich dieses Wochende mit dem UART-Konverter weiterkomme. Nach einem Update auf OpenTx 2.2 habe ich gerade ein paar Kompatibilitätsprobleme mit meinem Empfänger.

      Meine Rückfrage zu SBUS bezog sich darauf, ob man einen Kanal für Multiswitch hihjacken könnte. Statt analoge Signale in SBUS zu wandeln und dann wieder in PWM könnte man ja einen eigenen Code verwenden. Mit 11bit ließen sich ja theoretisch 2048 ein/aus-Zustände übertragen. DAS wäre doch mal ein Multiswitch, der seinen Namen verdient ....