Sonderschaltung für Servos gesucht

Anderl

User
Hi Leute

Ich suche eine Sonderschaltung für Servos. Und wie immer: Sowas gibts nicht zu kaufen.
Leider bin ich was Elektronik betrifft nicht gerade eine Lichtgestalt und habe auch nicht die technischen Möglichkeiten sowas zu bauen. Ich hoffe daher auf etwas Hilfe hier im Forum.
Also es geht um folgendes:

Ein Servo soll komplett ohne Empfänger betrieben werden. Strom sowie Signal kommen aus genau der Schaltung um die es hier geht.
Im Normalzustand soll das Servo an eine seiner Endstellungen fahren. Da Signal meist zwischen 1 und 2ms liegt, bedeutet das im Normalzustand soll 1ms Signal anliegen.
Jetzt hat die Schaltung insgesamt drei externe Eingänge. Eingang 1 ist ein Taster. Wird er kurz aktiviert, soll das Servo in seine andere Endstellung fahren. Also ein 2ms Signal muss anliegen. Dies Stellung soll beibehalten werden, ganz egal, was an Eingang 1 weiter passiert. Auch wenn der Taster nochmal aktiviert oder permanent gehalten wird, soll das Servo da bleiben wo es war.
Eingang 2 ist ein Schalter. Wird er betätigt, fährt das Servo zurück in Normallage. Es muss dann ein 1ms Signal anliegen. Solange der Schalter betätigt ist, regiert das Servo nicht auf Signale von Eingang 1.
Eigang 3 ist auch ein Schalter. Wird er betätigt, fährt das Servo zurück in Normallage. Es muss dann ein 1ms Signal anliegen. Solange der Schalter betätigt ist, regiert das Servo nicht auf Signale von Eingang 1.
Werden die Schalter nicht mehr betätigt, wird in Normalposition (1ms) solange gewartet bis der Taster wieder kurz betätigt wird. Und wir befinden uns wieder am Anfang der Geschichte.



Um das Ganze jetzt nochmal etwas übersichtlicher auszudrücken:
Servo ist bei Vollausschlag links.
Taster wird kurz betätigt -> Servo fährt Vollausschlag rechts und bleibt da, egal was Taster sonst noch so macht.
Einer der beiden (oder beide gleichzeitig) Schalter wird betätigt -> Servo fährt Vollausschlag links und bleibt da solange einer der beiden (oder beide gleichzeitig) Schalter betätigt ist. Betätigung des Tasters wird ignoriert, solange einer der Schalter betätigt ist.
Ist keiner der beiden Schalter betätigt bleibt Servo auf Vollausschlag links und wartet auf Betätigung des Tasters.

Die Schaltung muss so ausgelegt sein, dass mindestends 3 Servos gleichzeitig betätigt werden können.
Ein i - Tüpfelchen wäre es noch, wenn man die Endausschläge einstellen könnte.


Ganz schön kompliziert. Und ich bin mir ziemlich sicher dass zur Verwirklichung der Schaltung ein IC Programmiergerät erforderlich ist. Und allein daran scheitert bei mir schon die Umsetzung. Wenn es einen Elektronik Bastler gibt der sowas machen könnte oder mir zumindest helfen könnte einen Schaltplan für sowas zu erstellen, würde ich mich sehr freuen.


Schöne Grüße

Andi
 

Oli_L

Vereinsmitglied
Hallo Andi,

ich verstehe den Unterschied zwischen den Schaltern 2 und 3 nicht, die machen laut deiner Erklärung dasselbe!? Aber du brauchst 2 an verschiedenen Stellen?

Wenn ja, hier mein Lösungs-Brainstorming:

Das Schalt-Problem, wie ich es verstehe, wäre mit reiner Elektromechanik und einer üblichen preiswerten Servotester-Elektronik zu erschlagen:

Für den Taster ein 2-poliges Relais, das einen seiner Kontakte zum Selbsthalten benutzt, d.h. angezogen bleibt, wenn einmal über den Taster aktiviert. Der andere Kontakt übernimmt die Aufgabe, die Servotesterposition 1ms einzuschalten.

Die beiden parallel geschalteten 2xUM Schalter (2pol. AN/AN) benutzt du dann, um gleichzeitig das Relais wieder abfallen zu lassen, indem du den Spulenstrom des Relais über einen Schaltkontakt führst. Der zweite Kontakt ist dann dazu da, die 2ms Stellung des Servotesters zu schalten.
D.h. z.B.
Schalter unten: Spule vom Relais über Kontakt 1 und den Taster in Reihe an Versorgungsspannung.
Schalter oben: Kontakt1 offen, Relais fällt ab, Kontakt2 geschlossen.

Effektiv schalten die beiden Schalter also das Relais dauerhaft ab und die Tasterfunktion bleibt tot.

Die verschiedenen Servotester-Stellungen bestimmst du einfach über zwei Spindelpotis, die wahlweise statt des normalen Potis aus dem Bausatz über die Schalter bzw. das Relais an den Servotester geschaltet werden. Dann kannst du beide Servo-Stellungen auch noch genau justieren.

Wenn das Ganze natürlich mitfliegen soll und unter 5g wiegen muss, ist eine Microprozessorlösung sicher auch möglich. Das aber übersteigt meine Kenntnisse;).

Hoffe, das hilft als Denkanstoß!
Viele Grüße,
Oliver
 
Schnapp Dir einen ATMEL ATTiny45 oder wenn's mehr Ausgänge sein sollen einen ATTIny2313 für ca. 1€ , ein Programmiergerät für ca. 20€ und lade Dir AVR Studio runter. Mehr als den Chip, einen 100nF Kondensator braucht man dafür nicht. Wenn's super präzise werden soll, noch einen 8MHz Quarz und zwei 22pF Kondensatoren oder einen 8MHz Taktgenerator. Die Frage ist, wie schnell soll sich das Servo bewegen?
 

Anderl

User
Servus

Danke für die Antworten.
Also das ganze soll mitfliegen. Es kommt daher nur eine Microprozessorlösung in Frage. Vor allem deshalb weil der Taster am Fahrwerksbein zwischen den Rädern motiert werden soll. Da ist schlicht kein Platz für Relais. Servotester zum Selbstbau scheidet aus. Hatte ich mal von ELV, hat aber nur mit Graupner Servos zusammengearbeitet und meine Futaba verschmäht.
Die Schalter machen wirklich ein und das selbe. Sie sollen an verschiedenen Stellen verbaut werden. Einer wird von Gas mit angelenkt der andere von der Landeklappe.

Ralf was du da erzählst hört sich interessant an. Wenn ich solche Späße in Zukunft selber hinbekommen würde wär das ein Traum.
Tu mir doch bitte den Gefallen und nenn mir ein paar Programmiergeräte, die mit AVR Studio zusammenarbeiten. Die Auswahl ist gigantisch und ich hab keine Ahnung von dem Kram.

Danke
 

Anderl

User
Ach ja, das Servo sollte schon innerhalb einer Sekunde ausgeschlagen haben.

Kannst du mir vielleicht im Net noch nen link mit Literatur zu dem Thema nennen?
 
kennst du arduino?

das ganze wurde als uni-übungsgerät geplant, hat aber inzwischen weltweit anhänger.
die HW ist zum schreien simpel, du benötigst als programmiergerät nur ein USB-seriell-adapter oder ein AVRbutterfly.

boards gibts auch in SMD, zum selberlöten tuts ein ATmega168 im DIL-gehäuse und arduino-bootloader.




tip
statt der taster werden direkt die servosignale ausgewertet.. mit einer DX6 können so 14servos betrieben werden ;)
 
@Anderl
Das ist einfacher als Du denkst. Schau Dir mal die Schaltung auf meiner Homepage an, die wertet zwei Servosignale aus und lässt dann LEDs blinken.
Die gleiche Grundschaltung kannst Du nutzen, um Servos zu steuern.
Den Sourcecode für die Schaltung in Assembler habe ich freigegeben.
Eine gute Quelle ist auch Microcontroller.net
Dort gibt's auch Tutorials etc. ..
 

Sushi

User
Moin ;-) Wenn ich da auch noch meinen Senf dazu geben darf:
Schau auch mal auf meiner Homepage, da gibts dann die andere Seite(Servo ansteuern): http://modellbau.bug-soft.net/index.php?cat=et&art=servotester

Hier allerdings in C. Ob du später in C oder Assembler programmierst ist eigentlich Geschmackssache, bzw. kommt drauf an, ob du C z.B. schon kannst.

Wenn du noch Fragen oder konkrete probleme hast, immer her damit. Wir helfen dir hier, das Teil hochzuziehen. Den thread habe ich gerade abonniert. Ich habe auch schonmal was ähnliches für jemand entwickelt, das mache ich aber nicht mehr. Es gab dabei zwar keinerlei Probleme, aber mir fehlt die Zeit, und so war das Ding erst nach einem halben Jahr fertig...da hat man dann irgendwie ein blödes gefühl, auch wenn mans umsonst macht.

LG, Björn
 
@Sushi
Wozu hast Du denn die Diode und den 22pF im Servotester 1 an Vcc ? Hab ich so bisher noch nirgendwo gesehen. Hab immer nur einen 100nF in der Nähe des Controllers.
 

onki

User
Hallo

Ich wollte mich auch mal mit den µControllern beschäftigen, allerdings find ich die Serielldinger etwas antiquiert.
Was haltet ihr von dem XPLain? Das gibt es bei Reichelt gerade für um die 30 Euronen.

Gruß

Onki
 
Das ist ein Demoboard für den relativ neuen ATXMega und für die Anwendung wie mit einer Cruise Missile auf Spatzen geschossen. :D

USB-Programmieradapter für ATMega, ATTiny etc. gibt's für wenig Geld an jeder Ecke, die Entwicklungsumgebung ist kostenlos. Was will man mehr?
 

Anderl

User
Wow, in den letzten drei Antworten versteh ich nur noch Bahnhof.
Leute ich bin Mechaniker kein Elektronikspezialist.
Ich werd mich in das Thema einlesen. Programmiererfahrung hatte ich mal in der Schule in Basic und Pascal. Von Assembler oder gar C hab ich keine Ahnung. Und meine selbstangeeigneten Rudimentärkenntnisse in HTML werden da auch nix helfen.
Aber ich zieh es durch.
Servosignal vom Empfänger möcht ich keins abgreifen. Der Empfänger soll damit nix zu tun haben.
Es geht im Konkreten um folgendes:
Ein Airlinermodell soll Groundspoiler bekommen.

Ich habt doch sicher schon gesehen, dass die Groundspoiler alle voll ausschlagen, sobald ein echter Airliner landet. Beim Original kommt dieses Signal von der Air/Ground Schaltung. Ein Schalter im Federbein des Fahrwerks meldet "compressed" also Bodenkontakt und löst diese Funktion aus.

Bei meinem Eigenbaumodell (befindet sich noch in der Planungsphase) sollen Behotec Federbeine ins Hauptfahrwerk. Wenn das Hauptfahrwerk den Boden berührt (compressed über Taster) sollen die Spoiler voll ausschlagen. Allerdings nur, wenn die Landklappen auch in Landeposition waren (Schalter 1). Startet man jetzt doch noch durch (Touch and go) und gibt wieder Vollgas, sollen die Spoiler automatisch wieder einfahren (Schalter 2).

Um die Spoiler auszufahren müssen also 3 Bedingungen erfüllt werden:
Klappen in Landestellung, Gas kleiner 30% und Fahrwerk Bodenkontakt.
Fehlt eine der Bedingungen sollen sie wieder einfahren.

Bitte jetzt hier nicht über Sinn und Unsinn im Modellflieger diskutieren. Ich bastel gern und würds einfach mal gern probieren. Abgesehen davon ist es im Original auch so. Eigentlich steht meine Tragfläche schon (auf dem Reißbrett), aber wenn ich diese Schaltung hinbekomme, konstruiere ich das Ding nochmal um um dann Spoiler einbauen zu können.
Also erst Schaltung dann Fläche.

Danke für die vielen Antworten.
Ich werd jetzt erst mal Lektüre lesen, halt euch aber was diese Schaltung betrifft hier auf dem Laufendem.

Schöne Grüße

Andi
 

Anderl

User
@Ralf und Björn

Hab mir mal kurz euere beiden Schaltungen angesehen. Und so wie ich das versteh ist die von deinem Servotester eigentlich genau das was ich brauch.
Das Teil hat drei Taster. Ich müsste praktisch "nur noch" zwei Taster gegen zwei Schalter austauschen und die Software etwas abändern. Aber rein von der Schaltung her dürfte das hinkommen. Nur versteh ich leider von der C Programmierung kein Wort.
Ich vertseh auch noch nicht, warum dort Kondensatoren sitzen und was die da machen, aber daran arbeite ich noch.
Das eine Bauteil an dem 1Q 4000 Mhz steht ist das ein Quarz?
Die Strombersorgung vermisse ich ebenfalls auf der Schaltung.

Was auch noch ein Problem ist: Ich versteh noch nicht was ein Servosignal ist. Wie wird es generiert. 1,5ms was??? Weißwürste? Wenn mir das jemand in einfachen Worten erklären könnte wär ich schon ein ganzes Stückchen weiter.

Eigentlich erschreckend. Ich betreibe dieses Hobby jetzt schon seit 18 Jahren und hab keine Ahnung wie ein Servo funktioniert. Erbärmlich.

Schöne Grüße

Andi
 

Sushi

User
Hallo.

Ja, der Servotester müsste in abgewandelter Form das sein, was du suchst.
Das Ding war eins meiner ersten AVR-Projekte, da stimmt noch nicht 100%ig alles. Ich werde das evtl. in den nächsten Tagen updaten, aber steinigt mich nicht, falls es doch nicht so schnell klappt. Funktioniert hat es allerdings so ;-)

Das wo 4,000 Mhz dransteht, ist ein Quarz. Das Komma ist wohl in die Linie daneben gerutscht, deswegen sieht es aus wie 4000. Jetzt zu der Diode und dem Kondensator: Die Diode habe ich eingebaut, damit man das Ding auch mit 6V betreiben kann. Eine einfache, wenn auch nicht ganz saubere Lösung. Über der Diode fallen 0,7V ab. Der kondensator sitzt falsch, er müsste hinter die Diode und 100nF sind auch richtig ;-)

Im Programm würde ich mittlerweile nicht mehr CTC-sondern Fast PWM als Timermodus nehmen, dadurch wird das Ganze noch wesentlich übersichtlicher ;-)

Außerdem reicht dafür der ATTiny 25 oder ein ähnlicher.


Ach ja, bezüglich Servosignal ist diese Seite eine gute und verständliche Lektüre: http://www.sprut.de/electronic/modell/allgemein/index.htm
Das "ms" in 1,5ms steht für Millisekunden. 1,5ms ist der Wert, an dem Servos die Neutralposition einnehmen(sollen).

LG, Björn
 
Ist mir klar, dass das heute nur noch mit Prozessor geht, aber mit ein paar CMOS Gattern und einem Timer wär das auch gegangen. Ist aber im Chip Count natürlich bereits höher als die Controllerlösung.

Andi: Ein Servosignal ist ein Rechteckpuls auf 5 V für die angegebene Zeit. Dazwischen 0 V.
 

Anderl

User
Servus

Ich hab mich gerade mit Bascom angefreundet. Gefällt mir sehr gut und erinnert mich ein bischen an die gute alte QBasic Zeit in der Schule. Assembler ist für den Einstieg ein bisschen hart (find ich). Und soweit wie ich das bisher überrissen habe, werd ich mit Bascom alles machen können was ich in nächster Zeit so vor habe.
Werd mir demnächst ein Entwickler Board holen und mal etwas rumprobieren. Pollin Elektronik ist bei mir um die Ecke, die haben da recht günstige Angebote.
Tutorials gibts im WWW wie Sand am Mehr. Dürfte eigentlich nicht viel schiefgehen. Ist nur eine Frage der Zeit und wieviel man bereit ist sich damit zu beschäftigen.

@Björn
Warum hast du zur Spannungsregelung keine Zehnerdiode eingebaut?
Oder ein 7805CV?
Egal, Hauptsache es funzt!

Noch eine Frage. Was macht ihr eigentlich um euere Microcontroller Schaltungen vom Empfänger zu entkoppeln? Nicht das da noch etwas anfängt zu stören und der Flieger übern Jordan geht. Würden sich da Optokoppler anbieten?? Mir wärs am liebsten wenn der Empfänger von all dem nichts mitbekommen würde, auch dann nicht wenn seine eigenen Signale angezapft werden.

Schöne Grüße

Andi
 

Sushi

User
Du wolltest doch eh keine Empfängersignale auswerten - da erübrigt sich doch die Frage. Oder war das auf was anderes bezogen?

Bei Empfängersignalen packe ich 10k in Reihe und aktiviere den internen Pullup-Widerstand am AVR. Damit wird das Signal auf erkennbare Pegel hochgezogen. Der Empfänger wird davon nicht viel mitkriegen - hier fließen nur sehr geringe Ströme. Optokoppler kannst du machen, wenn du deine Schaltung separat versorgst. Ansonsten nützt der gar nichts ;-)

LG, Björn
 

Anderl

User
Servus Leute
Also das mit den Empfängersignalen hat sich inzwischen geändert. Ich werd wohl (wenn ich es denn auch hinbekomme) doch Empfängersignale auslesen und auch sowas wie flight spoiler programmieren. Aber der Reihe nach.

Inzwischen hab ich mir ein Atmel Evaluationsboard von Pollin besorgt. Dazu gleich drei ATTiny2313 und los gings.
Derzeit bin ich soweit, dass zumindest eine LED in etwa das macht was ich später von zwei Servos erwarte.
Rein aus Gag und Zwecks der Übung hab ich auch gleich noch eine komplette Blinklicht Schaltung aus Anti Collision, Strobe und Nav Lights programmiert, wobei das Strobe Light nur an geht, wenn der Flieger in der Luft ist. Das macht der selbe Schalter, der auch die Spoiler steuern soll.
Was man mit diesen kleinen Microcontrollern alles machen kann ist schon geil. Wenn man jetzt noch voll der Programmierkrack wär, gibts eigentlich nix, was es nicht gibt.
Aber ich steh ja noch gaaaanz am Anfang. Derzeit bin ich am lernen wie man ein Servosignal erzeugt. Es wird...
Falls ich aber mal gar nicht weiterkomme hoffe ich auf euere Hilfe, würds aber lieber gern selbst lernen und verstehen.
Ich bleib dran!

Schöne Grüße

Andi
 

Sushi

User
Und, programmierst du in Assembler oder in C?

Falls C, kennst du ja meine Homepage mittlerweile. Das aktuellste Projekt, wo es ums Empfängersignal auslesen geht, ist das Mini-Lichtmodul. Da dürfte es am effizientesten gelöst sein: Der externe interrupt wird so aktiviert, dass er auf steigende Flanken reagiert. In der ISR wird er auf fallende Flanken umgestellt und ein Timer gestartet. BEi der nächsten fallenden Flanke(Impuls zu Ende) wird er wieder umgestellt auf steigend und der Timer zurückgesetzt, nachdem er ausgelesen wurde. Der Wert der aus dem Timer ausgelesen wurde, entspricht der Impulslänge.

Für die Servosteuerung brauchst du nur einen Timer im Fast-PWM-Modus, PWM-Frequenz auf 50Hz und Impulslänge 1-2ms

LG, Björn
 
Ansicht hell / dunkel umschalten
Oben Unten