Forum: Analoge Elektronik und Schaltungstechnik RC-Fernsteuerung+Microcontroller-Steuerung


von Farming M. (farming_m)


Lesenswert?

Hallo Leute,

ich bin relativ neu in Sachen Microcontroller und Modellbau-/steuerung.
Nun habe ich die Aufgabe ein Modellschiff mit einer klassischen 
RC-Steuerung (Sende+Empfänger etc.) auszustatten. Zudem soll das Schiff 
aber auch über eine zweite Funkverbindung über Microcontroller mit Hilfe 
von Funkmodulen steuerbar sein (ZigBee/Xbee Module). An der normalen 
RC-Fernsteuerung soll über einen Schalter zwischen den Steuerungen 
gewechselt werden können.

Ich habe gelesen, dass die RC-Empfänger ein PWM-Signal zum Ansteuern der 
Regler bzw. Servos ausgeben.
Der zu verwendende µc ist ein STM32 und nicht dazu geeignet, direkt 
Motoren etc. anzusteuern. Es wird also eine Art PWM-Modul benötigt, der 
über den µC die Leistungssteuerung übernimmt.

Die Frage ist jetzt: Wie schalte ich zwischen diesen Steuerungen um?
Natürlich kann man ein extra Schaltmodul für die RC-Steuerung kaufen, um 
die Spannung an einem Ausgang des Empfängers zu schalten. Dies könnte 
man nutzen, um über den Sender ein (PWM-?) Modul zu schalten. Das 
PWM-Modul würde dann je nach Schaltzustand entweder die Signale vom 
RC-Empfänger an die Servos weiterleiten oder die Steuersignale des µc zu 
gleichwertigen PWM-Werten verarbeiten und diese weiterleiten.
Soviel zur Theorie

Hat jemand Erfahrung in diesem Gebiet? Was für Bauteile würden hier 
helfen? Würde ein Mosfet-Schaltung genügen? Ratschläge bzgl. der 
Funkverbindung mit den µc (über XBee etc.) würden ebenfalls viel helfen.

MfG

Malik

von THOR (Gast)


Lesenswert?

RC Funkfernbedienungen machen PPM, nicht PWM.

Lässt sich an dem Zigbee Ranz noch was machen? Mit nem ESP8266 wärst du 
zügig fertig. Nötige Reichweite?

Das mit dem Umschalten könnte man so regeln, dass der uC auf dem Schiff 
einspringt sobald die Signale von der RC FFB ausbleiben. Dann ist dein 
Umschalter der Einschaltknopf der FFB.

von Farming M. (farming_m)


Lesenswert?

Die Reichweite muss mindestens 100 m betragen. Außerdem sollen noch 
Sensorwerte (GPS- und Beschleunigungssensor) über den µC auf dem Schiff 
zum Bediener (am PC) gesendet werden. XBee schafft laut Hersteller 250 
kbit/s und je nach Leistungsklasse über 100 m. Deine Idee zum Umschalten 
hört sich gut an, aber wie realisiere ich, dass die Motoren nach dem 
Umschalten Ihren Strom dann von der PWM-Schnittstelle nach dem µC 
bekommen? Im Endeffekt müssen ja beide Steuerungen ihre 
Leistungsleitungen kurz vor dem Motor zusammenlaufen lassen. Ein 
einfaches Zusammenlöten der Leistungsleitungen würde da ja nicht 
ausreichen oder?

: Bearbeitet durch User
von THOR (Gast)


Lesenswert?

Farming M. schrieb:
> Die Reichweite muss mindestens 100 m betragen.

Es gibt ESP Module mit Aufsteckdipol und an der Fernbedienung kann man 
ggf. ne Antenne mit etwas Gewinn verwenden aber bei nem Schiff ist Wlan 
dann doch nicht die beste Wahl.
Ok, Zigbee it is.

> Deine Idee zum Umschalten
> hört sich gut an, aber wie realisiere ich, dass die Motoren nach dem
> Umschalten Ihren Strom dann von der PWM-Schnittstelle nach dem µC
> bekommen?

Die PWM Schnittstelle ist die Motortreiber-Platine nehme ich an?

Einfach: Der uC sendet keine eigenen Informationen an die Treiberplatine 
solange der RC-Empfänger dies tut. Das ist ein uC, dem kannst du Logik 
mitgeben! Den kannst du sogar als Failsave 10min im Kreis oder ans 
nächste Ufer fahren lassen!
Umschalten entweder in Software (uC schleift RC Empfänger Informationen 
einfach durch) oder Hardware (Analog Mux).

Feststellen wann der RC Empfänger nichts mehr empfängt ist einfach: Mach 
die FFB aus und analysiere, was dann am RCE ankommt. Das programmierst 
du dem uC dann ein.

Frage ist jetzt, ob der uC Single point of failure sein darf. Oder 
anders gesagt: Ist Redundanz der Zweck der ganzen Geschichte?

von T. P. (thp)


Lesenswert?

Da Arbeitszeit auch Geld kostet und für den Fall, dass das Basteln der 
Elektronik das Ziel des Projektes ist, würde ich was aus dem ArduPilot 
Bereich vorschlagen.

Zum Beispiel die Box hier (kann mit Telemetriemodem und RC Empfänger 
verbunden werden):
http://ardupilot.org/rover/docs/common-pixhawk-overview.html#common-pixhawk-overview

Telemetriemodems:
http://ardupilot.org/rover/docs/common-telemetry-landingpage.html

Dazu eine Fernbedienung mit dreistufigen Schalter:
Position 1: Daten der Fernsteuerung werden direkt an Motor/Servo durch 
gereicht
Position 2: Daten der Telemetrieverbindung gehen an den Motor/Servo
Position 3: (Optional) Autopilot, zum Beispiel mit GPS programmierten 
Pfad abfahren.

So etwas benutze ich mit einem Quadcopter, aber im 'Rover'-modus steuert 
die Box auch ein Auto/Boot. Der erste Testaufbau ist in einer Stunde 
zusammen gesteckt, und die Software (Windows/Linux/Android) ist auch 
schon fertig, man braucht aber etwas um sich da rein zu Fuchsen, wenn 
man fortgeschrittenen Dinge wie Autopilot nutzen möchte.

Wie gesagt, kann mehr, ist teurer, aber dafür quasi fertig und erfüllt 
die Anforderungen. Aber natürlich langweiliger als es selber zu bauen.
Thomas

von Farming M. (farming_m)


Lesenswert?

> Die PWM Schnittstelle ist die Motortreiber-Platine nehme ich an?

Das Board STM32F411E-DISC0 kann PWM-Signale erzeugen, ich muss jedoch 
noch prüfen ob es 4 PWM-Ausgänge hat (2x Hauptmotoren, 1x 
Querstrahlruder, 1x Hauptruder). Außerdem ist die Frage, ob die 
PWM-Signale kompatibel mit denen aus dem Modellbau sind. (Das PPM ist ja 
zwischen Sender und Empfänger und die PWM zwischen Empfänger und Regler 
(50Hz mit Pulsweiten von 1 - 2 ms)) Ist dies nicht der Fall muss noch 
eine Schaltung zur Anpassung dieser Signale her.



> Frage ist jetzt, ob der uC Single point of failure sein darf. Oder
> anders gesagt: Ist Redundanz der Zweck der ganzen Geschichte?

Das ist eine sehr gute Frage, die ich noch klären muss. Vorab kann ich 
sagen, dass die Steuerung über den µC notwendig ist für spätere Projekte 
am Schiff. Die RC-Fernsteuerung rettet das Schiff bei nicht 
ausreichender Reichweite, aber ob eine Redundanz bezogen auf 
Bauteilausfall ebenfalls Zweck ist, weiß ich noch nicht. Ich melde mich 
sobald ich eine Antwort geben kann.

Ansonsten schonmal vielen Dank, ihr seid echt hilfreich :)

von THOR (Gast)


Lesenswert?

Farming M. schrieb:
> Ist dies nicht der Fall muss noch
> eine Schaltung zur Anpassung dieser Signale her.

Die Schaltung nennt sich Mikrocontroller.

von Farming M. (farming_m)


Lesenswert?

> Frage ist jetzt, ob der uC Single point of failure sein darf. Oder
> anders gesagt: Ist Redundanz der Zweck der ganzen Geschichte?

Hab nochmal mit meinem Prof geredet. Er fände eine Redundanz besser.
Wenn also der µC ausfällt, soll das Schiff über die RC-Fernsteuerung 
noch kontrollierbar sein. Das beißt sich meiner Meinung nach mit den 
Ansätzen, die Signale vom Empfänger einfach durch den µC durchschleifen 
zu lassen. Oder seht ihr da Alternativen?

von Farming M. (farming_m)


Lesenswert?

THOR schrieb:
> Farming M. schrieb:
>> Ist dies nicht der Fall muss noch
>> eine Schaltung zur Anpassung dieser Signale her.
>
> Die Schaltung nennt sich Mikrocontroller.

es geht darum, dass der µC nicht so hohe Spannungsamplituden modulieren 
kann
weshalb die Signale noch verstärkt werden müssen.

von Michael B. (laberkopp)


Lesenswert?

Farming M. schrieb:
> Hab nochmal mit meinem Prof geredet. Er fände eine Redundanz besser.
> Wenn also der µC ausfällt, soll das Schiff über die RC-Fernsteuerung
> noch kontrollierbar sein.

Nun, Fernbedienung und uC können die Servos und Motoren nicht 
gleichzeitig befehligen, da muss schon eine Art der Umschaltung drin 
sein, die, wenn der uC aktiv ist, die Signale der Fernsteuerung 
unterdrückt.

Wenn der uC aber nun ausfällt, und den Umschalter so stehen lässt, 
funktioniert immer noch keine Fernbedienung. Da müsste dann ein 
Umschalter mit Ausfallerkennung rein. Kann man bauen, aber wenn die dann 
auf grund ihrer Komplexität ausfällt (obwohl Fernbedienug und uC 
weiterhin funktioneren) hat man dasselbe Problem wieder.

Einfacher wäre es zu sagen: Wenn die XBee/Bluetooth Verbindung ausfällt, 
schaltet der sowieszu zuverlässig immer funktionierende uC auf 
Fernbedienung (und umgekehrt). Denn Funkverbindungen sind das störbare 
Problem, nicht uC.

Nun denn, ein uC/FB Multiplexer:
1
                      Multiplexer wie CD4051
2
                         +---+
3
FB Impuls ---------------|a  |  
4
                         |  x|--- Servos
5
uC Impuls -----+---------|b  |
6
               |         +---+
7
               |           |
8
               |   +----+  |a/b
9
               |   |    |  |
10
               +---|>  Q|--+
11
                   |    |
12
                   +----+
13
         50mS MonoFlop wie 74HC123
Wenn man nur eine Fernbedienung mit eingebauten Decoder hat, braucht man 
die Shcaltung für jeden Servo ein mal. Hat man eine Fernbedienung mit 
getrenntem Decoder, braucht man die Schaltung nur ein mal und nutzt den 
Decoder für beide.

von Farming M. (farming_m)


Angehängte Dateien:

Lesenswert?

>
> Einfacher wäre es zu sagen: Wenn die XBee/Bluetooth Verbindung ausfällt,
> schaltet der sowieszu zuverlässig immer funktionierende uC auf
> Fernbedienung (und umgekehrt). Denn Funkverbindungen sind das störbare
> Problem, nicht uC.
>
> Nun denn, ein uC/FB Multiplexer:
>
1
>                       Multiplexer wie CD4051
2
>                          +---+
3
> FB Impuls ---------------|a  |
4
>                          |  x|--- Servos
5
> uC Impuls -----+---------|b  |
6
>                |         +---+
7
>                |           |
8
>                |   +----+  |a/b
9
>                |   |    |  |
10
>                +---|>  Q|--+
11
>                    |    |
12
>                    +----+
13
>          50mS MonoFlop wie 74HC123
14
15
>

Der µC sendet also ständig Impulse die den Monoflop retriggern bzw. sein 
Signal aufrechterhalten, damit dieser den Multiplexer dazu bringt, immer 
Kanal b zu nutzen? Und bei Entfall des µC würde der Multiplexer immer 
auf Kanal a springen durch welchen Effekt? Speziell mit diesen Bauteilen 
kenne ich mich nicht aus, weshalb ich nachfrage.

> Wenn man nur eine Fernbedienung mit eingebauten Decoder hat, braucht man
> die Shcaltung für jeden Servo ein mal. Hat man eine Fernbedienung mit
> getrenntem Decoder, braucht man die Schaltung nur ein mal und nutzt den
> Decoder für beide.

Ich habe gelesen, dass der Decoder für die Erzeugung der Kanalimpulse 
nacheinander zuständig ist. Aber wie genau soll ein getrennter Decoder 
die Schaltung vereinfachen? Könntest du das bitte etwas näher erläutern?


Ansonsten habe ich mal einen eigenen Entwurf hochgeladen. Könnte man 
nicht theoretisch einfach Öffner und Schließer nehmen, die gleichzeitig 
betätigt werden vom µC?

MfG Malik

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Farming M. schrieb:
> durch welchen Effekt

Abgelaufene Zeit des MonoFlop.

Farming M. schrieb:
> wie genau soll ein getrennter Decoder die Schaltung vereinfachen?

Du brauchst sie dann nur 1 x

Farming M. schrieb:
> Ansonsten habe ich mal einen eigenen Entwurf hochgeladen

Da das Umschalttsignal durch den uC geht, würde bei ausgefallenem uC das 
Umschalten hängen bleiben. Da kann man gleich das Servosignal durch den 
uC leiten.

: Bearbeitet durch User
von Farming M. (farming_m)


Lesenswert?

Michael B. schrieb:
> Farming M. schrieb:
>> durch welchen Effekt
>
> Abgelaufene Zeit des MonoFlop.
>
> Farming M. schrieb:
>> wie genau soll ein getrennter Decoder die Schaltung vereinfachen?
>
> Du brauchst sie dann nur 1 x

ich meinte eher den physikalischen Effekt. Wie kommt es zur 
Vereinfachung?


> Da das Umschalttsignal durch den uC geht, würde bei ausgefallenem uC das
> Umschalten hängen bleiben. Da kann man gleich das Servosignal durch den
> uC leiten.

Wenn die Öffner bzw. Schließer bei Ausfall des µC wieder in ihre 
Ausgangsposition fallen, ist ja nurnoch die Leitung vom Empfänger zu den 
Servos gegeben. Müsste doch funktionieren?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.