Forum: Analoge Elektronik und Schaltungstechnik AVR ATTiny als "Brücke" zwischen Flysky FS-iA6b und Motor


von Simon (Gast)


Lesenswert?

Tach zusammen,

neulich hat mich der Rappel gepackt und unter dem altruistischen 
Vorwand, etwas für meinen zweijährigen Sohn anzuschaffen, kam eine 
Flysky-Fernbedienung ins Haus. Einen Fischertechnik-Kasten hatte ich 
noch rumstehen, schwupps ein Gefährt mit zwei Motoren gebaut, Empfänger 
etc. drauf... ja Mist, die Motoren muss man ja ansteuern, das geht mit 
Servo nicht direkt.

Also hab ich den ATTiny2313 zu einem dualen Motorcontroller 
programmiert, mit 2x MAX628 als H-Brücke und an beiden Motoren je zwei 
selbstgebaute Kupferdrahtspulen (d=1mm, D=8mm, n=15) und ein 
100nF-Kondensator zum Entstören. (Interessensfrage: Weiss jemand, ob die 
Fischertechnik-Motoren vielleicht intern schon entstört sind?) Zwei 
Servo-Ausgänge des Receivers (RX = FS-iA6b) gehen mit dem Signal-Eingang 
an die INT0- und INT1-Eingänge des AVR, intern wird das Ganze von 
Pulsdauer 1ms..2ms umgerechnet auf PWM-Duty 0-100% für den Timer0 (8 
Bit) und zusätzlich werden die Kanäle gemixt, so dass ein Kettenfahrzeug 
gesteuert werden kann (d.h. rechts lenken heisst: linker Motor Vollgas 
voraus, rechter Motor Vollgas zurück). Soweit, so gut, das Mixen könnte 
die Fernsteuerung auch intern, dafür ist sie schlau genug. Ich hatte den 
Code aber schon rumliegen. Klappt prima - invertierte Fast PWM zusammen 
mit dem invertierten Eingang vom MAX628. Ein weiterer Eingang wird je 
nach Richtung auf 1 oder 0 geschaltet und steuert so, ob vorwärts oder 
rückwärts gefahren wird.

Ein Problem kriege ich da, wo ich das Signal vom RX abgreifen will: Wie 
kommen die Impulse aus dem Gerätchen? Jeder der sechs Servokanäle hat 
seinen 20ms-Takt, klar. Fangen alle sechs Impulse für den jeweiligen 
Servo gleichzeitig an? Kommen sie nacheinander? Hören sie gleichzeitig 
auf? (OK, letzteres wohl kaum...) Da spielt ja eventuell auch die 
maximale Leistung des Empfängers eine Rolle, wenn die (analogen) Servos 
ihre Spannung jeweils gleichzeitig mit ihrem Steuerungsimpuls beziehen: 
Ziehen sie alle gleichzeitig oder wird das multiplexed? Wenn sie 
gleichzeitig anfangen, kann ich auf dem einen Kanal auf "high" warten 
und bei beiden separat die Endzeit abfangen. Wenn sie nacheinander 
kommen, muss ich das anders programmieren. Aktuell arbeite ich mit dem 
Worst Case, also ohne Interrupts und mit Endlosschleife "Hab ich schon 
den Sprung in Kanal 1 auf High, 1 auf Low, 2 auf High, 2 auf Low - OK; 
JETZT kann ich die Rechnung starten". Ein Oszi steht leider nicht rum.

Weiss jemand, ob es da sowas wie einen Standard gibt? Ich finde im Netz 
wirklich gar nichts dazu!

Danke schonmal,
Simon

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Simon schrieb:
> (Interessensfrage: Weiss jemand, ob die
> Fischertechnik-Motoren vielleicht intern schon entstört sind?)

Meine Sammlung an FT-Motoren ist schon etwas älter, aber sowohl die 
kleinen als auch die grossen Motoren sind hier alle nicht entstört.

Simon schrieb:
> Kommen sie nacheinander?

Sie kommen nacheinander. Der Dekoder im RC Empfänger ist im Allgemeinen 
ein Schieberegister. Ich will nicht ausschliessen, das es davon 
Abweichungen gibt, aber der Regelfall ist ein Nacheinander.

: Bearbeitet durch User
von Simon (Gast)


Lesenswert?

Wow, das ging ja schnell! Vielen Dank!

Da meine Motoren auch etwas bis sehr viel älter sind, denke ich, das 
wird bei meinen genauso sein... super!

Wo kommt das Schieberegister ins Spiel? Kannst du näher erklären, ob es 
dann zwischen den Pulsen immer gleiche Abstände gibt oder ob jeder Servo 
seinen "Slot" hat?

Fall 1: Servo 1 für 1.5ms an, dann Pause 0.5ms, dann Servo 2 für 1.8ms 
an, dann 0.5ms Pause (alle mit Puffer hintereinander)

Fall 2: Servo 1 Puls in einem fixen Zeitraum zwischen 0ms und 3ms, Servo 
2 Puls zwischen 3ms und 6ms etc. (Start der Pulse mit fixem Abstand)

Viele Grüsse,
Simon

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.