Simpler SBUS2PPM Converter mit Arduino

Status
Nicht offen für weitere Antworten.

Rangarid

Erfahrener Benutzer
#1
Basierend auf dem SBUS2PPM Converter von Helle (S.BUS Decoder nach helle (Code, Bemerkung 1, Bemerkung 2)) habe ich mal eine simplere Version gemacht, um SBUS in PPM umzuwandeln. Es werden keine zusätzlichen Bibliotheken benötigt, die SBUS Lib ist bereits enthalten (und wegen dem SoftwareSerial etwas angepasst).

Desweiteren wird kein Signalinverter mehr benötigt, da ich das Signal über das SoftwareSerial auslese und dort auch invertierte Signale funktionieren.

Anschlüsse sind wie folgt:
arduino sbus2ppm.jpg

Code gibt es im Anhang.

Ich habe keine Pläne, einzelne Servos damit anzusteuern, das geht bereits mit Helle's Version. Mir ging es lediglich darum, aus SBUS ein PPM Signal für Autopiloten die kein SBUS können zu erzeugen.

Aktuelle Version ist noch ungetestet, das mache ich dann heute abend. Aber hier schonmal als Preview, falls wer testen möchte.
 

Anhänge

MarenB

Runter kommen sie immer!
#3
SW-Serial geht prinzipiell schon, zumindest wenn man etwas Latenz verschmerzen kann. Nutze die für meinen S-Bus-Lichtschalter, da ist Zeit kein Thema :)

Edit:
Das Problem ist, dass du das Eintreffen des S-Bus-Frames nicht im Interrupt machen kannst, weil er dann das erste Bit verpasst, richtig?
Ich müsste nochmal nachschauen, aber die Lösung war in meinem Fall, das ganze nicht vom elektrischen Interrupt, sondern zeitabhängig zu machen. Die Zeit zwischen zwei Frames ist lang genug, um dort einiges zu erledigen, ich hab dafür allerdings beide Timer gebraucht, meine ich. Man muss das also schon irgendwie in den PPM-Timer reinwurschteln, sonst ist der Atmega zu klein.

Falls es dir hilft und du Basic lesen kannst, suche ich meinen Code gerne raus.
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
#4
Nö ich hab ja nen Inverter rumliegen, kostet auch nur 1€ und ist klein, stört also nicht wirklich:
IMG_20140703_183418.jpg

Man sollte für sowas wichtiges wie PPM kein Risiko eingehen...

Das wird nachher alles schoen gekürzt und zusammengewurschtelt mit Schrumpfschlauch drum, dann sieht man das garnicht mehr.
 
#7
Einige (helle) haben doch einen sehr guten Draht zum OpenTX Entwicklerteam. Und die wiederum zu FrSky.
Kann man die nicht überreden SPPM für die X8R Empfänger per SW Update nachzuschieben?!
Das wäre eine saubere Lösung! Besser als diese ganze Adaptergefummel. FrSky sollte ja von den D Empfängern noch wissen, wie das geht... ;-)

StompSC
 
Zuletzt bearbeitet:
#8
Hoffe, Rangarid hatt nix dagegen :D

Ich poste mal meine kleine Änderungen, da bei mir der SBUS 2 CPPM mit 16 Kanälen funktioniert ...

In meiner Version verwende ich einen extra Inverter für das SBUS Signal und in der Futaba SBUS Lib hab ich "SoftwareSerial" auskommentiert ...
So wie es ausschaut scheint das ganze nun zu funktionieren, Servozittern (Jitter) konnte ich bislang nicht feststellen,
müsste aber noch weiter getestet werden ...
Als Futaba SBUS Lib hab ich aber nicht die von Rangarid genommen (kompillierte bei mir nicht !?), sondern die aus dem GIT ...

Hier vorab mal meine Version:

SBUS -> Inverter -> RxD von Arduino ProMini
CPPM -> Arduino Pin10

hmmm ... bekomme den Anhang nicht hier rein ...
teste ich nachher ...
 
Zuletzt bearbeitet:

helle

Erfahrener Benutzer
#10
Hy,

man kann ja auch gleich den S-Bus Inverter nehmen der im Servo-Kabel drinnen ist
siehe Hobbyking 3Stk ca 3€
S-Bus Konverter S-Bus Inverter
 
#13
So, dann versuch ich mal den Anhang hier zu verlinken :D

Weder Zip, noch Rar lässt sich hier als Anhang reinpacken ... hmmm ...

Und für den inverter lohnt doch bestellen nich, nen Transistor und 2 Widerstände eingeschlumpft und fertsch :D
 

Anhänge

Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten