1zu160 - Forum



Anzeige:
AP Modellbahn - Die Modellbahnverwaltung

THEMA: Servo/Decoder selber bauen AVR Programmierung

THEMA: Servo/Decoder selber bauen AVR Programmierung
Startbeitrag
Hannoveraner - 16.03.09 11:55
Hallo

Ich habe mich am Wochenende mal etwas mit AVR Microcontrollern von ATMEL beschäftigt.
Da ich etwas Assembler und C programmieren kann, komme ich eigentlich ganz gut klar.

Wird aber wohl noch einige Zeit dauern, bis ich da was Produktives machen kann.

Hauptptoblem DCC empfangen und auswerten.

Auf opendcc.de ist einiges erklärt, aber auch recht kompliziert.

Ich wollte einfach mal fragen, ob sich noch jemand damit beschäftigt?
Dann könnte man mal Erfahrungen und Ideen austauschen.

Meine Ziele:
DCC Schaltdecoder, Servo Decoder (Weichen, Entkuppler, Drehscheibe bzw. Schrittmotor), Booster und S-88 oder Selektrix Module selber bauen.
Platinen ätzen, Layout mit Eagle. AVR Studio, USB PRogrammer, Pollin Experimentierboard.
Ich will einfach  unabhängig von irgendwelchen Anbietern sein und eigene Features einbauen können.

Hoffe, es meldet sich jemand

Gruß
Thomas


Hallo,

ich mache derzeit eine Studie mit PIC (in Assembler) und möchte dies in späterer Folge mit Atmel (ATtiny mit Assembler, Atmega8 bzw. x8 mit C) tun.

Das sind jedenfalls 2 Welten:

PIC - fast undurchschaubarer Typenwust mit unterschiedlicher Pinzahl und Features, teilweise etwas vermurkste Hardware, dafür gibt es für jeden Anwendungsfall den passenden Typ.
Programmer: Microchip PICKIT2 (USB)

Atmel - überschaubares Typenkonzept, viele DIY Projekte basieren auf dem 2313.
Programmer: MyAVR mySmartUSB MK2 (USB)

Ziele:
Funktionsdecoder (Analog, DCC, evtl. auch SX)
Weichendecoder (DCC, Loconet) für Fulgurex-Antrieb zum Anbauen

Grüße, Peter W.
Servus,

teilweise ja:
http://www.modellweltmueller.de/SCon.htm

Aber um das Dekodieren des DCC Signals hab ich mich gedrückt... :o)

Servos ansteuern ist relativ easy. Die Programmierfunktionen sind etwas kniffeliger und die Dekodierung DCC sicherlich auch.

Die keinen Atmels AT89Cxx 8-Bit Controler geben auch nicht sooo viel her, AVR oder ATMEGA sind da nat. schon deutlich üppiger.

Das Thema Platinen Ätzen ist schon eine Geschichte für sich. Ich mach das schon ein paar Jahre und ist auch eine Art Hobby. Wenn man aber das Zeug nicht eh rumstehen hat gibt es auch einfachere Quellen für fertige Platinen...

Grüßle
Elvis
BTW: Servos geben auch Ruhe, wenn man ihnen das Datensignal wegnimmt. Theoretisch müsste 1 Impuls pro Stellbefehl reichen. Mal sehen wie das in der Praxis aussieht.
Hallo,

ich habe inzwischen einen Funktionsdekoder (für Lichtwechsel in Steuerwagen) auf Basis eines Microchip-Prozessors realisiert. (12F629) für DCC.
Das Assemblerlisting stelle ich gerne zur Verfügung.

Gruß
Dieter
Hallo Dieter,

immer gerne!

Ad Servo: Z.B. im 16F684 gibt es schon ein PWM Modul - vielleicht kann man damit auch eine Servo PWM generieren. Dies braucht allerdings einen langsamen Takt. Mir ist jedoch noch nicht ganz klar ob man etwa die CPU auf 8 MHz und die Zähler auf 32 kHz laufen lassen kann.

Grüße, Peter W.
Hallo Thomas,

bin leider nur ein begeisteter ATMEL-Decoder Nachbauer, aber kann Dir mal den Tip gehen ein wenig über den "Spur Tellerrand" hinauszuschauen und mal ein wenig die Suchfunktion im TT-Forum : www.tt-Board.de
zu bemühen. Dort gibt es ein paar echte Freaks die sich die sich mit dem Thema beschäftigen.
Zwei einfache Servodecoder aus dem Forum habe ich quasi mal als Betatester nachgebaut und sie laufen auch zufriedenstellend.

Gruß aus Hamburg

Thorsten
@3 Hallo Peter,

willst du dem Servo auf der Steuerleitung zum Servo den Stellimpuls abschalten? Das lassen sich nicht alle Servos gefallen. Die laufen teilweise langsam davon bis zum mechanischen Anschlag im Servo.

Gruss Klaus
Hallo,

meine Servos bekommen nur beim stellen den Steuerimpuls, und dann ist Ruhe auf der Steuerleitung. Das die Servos davon laufen, habe im Moment fast 60 Stück in betrieb, konnte ich noch nicht beobachten. Die Servos sind die billigen von Conrad  "ES-030".

Gruß, Raimond
@ Thomas,

eigentlich hast du dir die Antwort doch selber gegeben; der Firmware-Quellcode von www.opendcc.de ist doch
1. in einer Hochsprache (C) geschrieben
2. gut dokumentiert und
3. modular aufgebaut.

Somit sollte es eigentlich kein Problem sein die DCC-Empfangsroutine weiter zu verwenden und nur die "Timing Engine" und das Hauptprogramm zu verstehen und anzupassen.

Eine Alternative für Assembler-Fans ist unter http://www.digital-bahn.de/develop/source.htm zu finden. Die Firmware ist spitze und muss eigentlich nicht angepasst werden. Der Entwickler arbeitet schon seit 10 Jahren an diversen Projekten und fügt immer neue Features (Servoansteuerung) dazu.
Zudem bietet er auch einen Platinenservice an - das entlastet doch erheblich von der Mühe, Platinen selbst herzustellen.

Beide Entwickler legen den Sourcecode offen - falls man doch etwas nachrüsten möchte...

@3 Peter und @8 Raimond
ich denke, ihr schaltet erst die Spannungsversorgung ab, dann kann man sich auch die Impulse schenken. Ohne Impulse hängen die Servos mit hoher Stromaufnahme nämlich am Anschlag - auf Dauer ist der Verschleiß hoch und auch das Geräusch ist recht nervig...

Gruß
Burkhard

Ich bastelle auch mit Atmel-AVR`s rum.
Aktuelles Projekt ist ein Servobaustein und eine Universalbloksteuerung mit integrierter Inteligenz!
Das Heißst, Block 1 meldet "Frei", Block 0 schikt Fahrzeugdaten, Block 1 Quitiert und Block 0 und 1 gibt Fahrzeugdaten an seinen Fahrregler.
Der Fahrregler kann (soll können) nun Analogloks steuern oder aber DCC oder Selektrix erzeugen können, um jede Lok zu bedienen.
Im Bahnhof sind dann noch Intelegente Stellwerke nötig, die die Blöcke je nach Weichenstellung verbinden.
Damit kann ich dann gemischt Analoge und digitale Loks auf  der Anlage Verkehren lassen, ohna auf die zusatzfunktionen der Digitalen verzichten zu müssen. Auch ist es zB möglich zB.  zu sagen,  ICE soll immer auf Gleis1 3 min halten, Güterzüge durchfahren und die S-Bahn immer auf Gleis 2 5 min halten oder sogar auf ICE warten.
Hier gibts im threat den asm source code fuer einen lokdecoder auf avr tiny15 basis:

http://www.mikrocontroller.net/topic/31397

Hier ist also die DCC empfang routine weiter zu benutzen.

mfg,
Guus

www.piksov.com
@Burkhard

nein, die Versorgungspannung wird nicht abgeschaltet. Solange keine Impulse kommen, bleibt der Servo auf Position und rührt sich nicht. Denn die länge der Pause zwischen den Impulsen ist dem Servo vollkommen egal - nur die Impulsdauer zählt.

Gruß, Raimond
@ 5: Hallo Peter W.,

habe gerade mein erstes AVR Projekt abgeschlossen: Servoweichenantrieb mit Endlagen- und Stellgeschwindigkeitsprogrammierung (für "analogen" Betrieb).

Nütze beim ATTiny2313 die integrierte HW-PWM mit Timer 1. Dieser Timer hat eine Auflösung von 16 Bit.  Der AVR läuft mit 8 Mhz, der Timer mit einem Prescaler 8, d.h. der Timer arbeitet mit einem Takt von 1 MHz. Wenn nun der Timer bei einem Startwert von 10000 zu zählen beginnt, erhälst du genau eine Periodendauer von 20 ms (50 Hz) - ideal für analoge Servos.
Das Impulssignal wird durch den Comparewert des Timers bestimmt. Der Wert variiert zw. 500 und 1000 (1 bis 2 ms) - d.h. eine Auflösung für den gesamten Stellweg von 500 Schritten (dies genügt mir vollkommen).

Entwicklungsumgebung: Bascom - paralleler ISP-Programmierdongel, RN-Controll 1.4 (siehe www.roboternetz.de ) - Pollin AVR-Board.
Bei Interresse am Quellcode bitte PN an mich.

Mein nächstes Projekt: Schattenbahnhof als Schiebebühne mit Schrittmotorsteuerung - wird zwar noch etwas dauern

lg Gernot
Hoi,

ich habe hier noch einige ATMELs liegen - nagelneu und unbenutzt,

Ausserdem noch C-Control Boards, so ein Teil mit Folientastatur und LCD und und und...

Wer's will bitte Angebot über PM.

Doei
Trixi
Hallo,

was ich bei meinem C* Billig-Servo festgestellt habe, deckt sich mit einigen Aussagen im Web:

Fällt der Steuerimpuls aus, bleibt der Servo zwar in Position, regelt diese aber nicht nach. Das ist bei den Modellbahnanwendungen wohl egal, weil die Kräfte, die wir brauchen, vom Getriebe geschluckt werden. Bei anderen Modellbauanwendungen sind da teilweise schon recht hohe Gegenkräfte im Spiel, und der Servo muss dagegen halten.

Grüße, Peter W.
@12 Raimond
@15 Peter

Mit pauschalen Aussagen würde ich vorsichtig sein, da bei verschiedenen Servos verschiedener Hersteller auch verschiedene Strategien implementiert sind:

Einige Servos haben eine "Fail Save" Funktion und gehen durch Abschalten der Impulse in einen abgeschalteten Modus. Bei diesen können dann auch die Impulse abgeschaltet werden.
Andere Servos versuchen immer weiter, die Soll-Position mit der Ist-Position abzugleichen und arbeiten daher ständig am Randbereich (d.h. sie brummen). Diese lassen sich nur durch Abschalten der Spannung ruhig stellen.

Anscheinend ist der RS-03 mit 8 Euro bereits einer der hochwertigeren Servos.
Für den RS-02 für 4 Euro trifft diese Aussage jedenfalls definitiv nicht zu !

Gruß
Burkhard
Hallo Burkhard,

gut möglich dass die Servos unterschiedlich sind. Ich habe den ES-05 (C* Art.Nr. 230500) gekauft. Kostenpunkt 4,95 (DE) bzw. 5,10 (AT).

Grüße, Peter W.

Hallo Peter,

zu den ES-05 muss man allerdings sagen, dass sie nach meiner Erfahrung wirklich nur billig sind. So ziemlich jedes Standardservo bekannter Hersteller hat eine wesentlich bessere Auflösung. Das könnte zum Beispiel ein durch Timingungenauigkeiten ausgelöstes Zittern des Servoarmes verbergen. Ich würde zum Testen auch etwas hochwertigeres parallel verwenden.

Grüße, Axel
Hallo Axel,

ich habe halt mal den billigsten Typ genommen den sie hier in der Filiale hatten, um mich mal mit der Technik überhaupt auseinander zu setzen. Und Danke für den Tipp - Gegentesten ist sicher sinnvoll. Kannst Du mir einen oder mehrere Servos aus dem Angebot von C* empfehlen? Sind teurere Servos automatisch besser?

Grüße, Peter W.
optimal: Robbe Futaba FS 100

Sollte es schon ab 8 Euro geben.
Den habe ich auch in meinen Fliegern.

Aber die preiswerten Conrad ES30 reichen m.M. völlig aus für Weichensteuerung.
Ich habe die genommen, weil gegenüber den ES 05 größer, robuster, stabiler.
Alles was kleiner ist ist komplizierter und empfindlicher.

Gruß
Thomas

Servus,

@Peter:
Nein. Aber natürlich gibt es bessere Servos als das ES-05... :o)

Gute Servos fangen bei 20 EUR an, haben Metallgetriebe und präzise Potis. Darunter ist es wohl eher Glücksache. Meine Erfahrungen mit den ES-05 sind sehr positiv. Für den Zweck als Weichenmotor jedenfalls vollkommen ausreichend.

Mit dem uC läßt sich in jedem Fall ein ausreichend genaues Signal erzeugen. Das Zittern kommt fast immer von der Rückmeldung, sprich dem verwendeten Poti und dessen Qualität.

Grüßle
Elvis
Hallo,

ich habe ja gar nicht bestritten, dass die ES05 für Weichenantriebe ausreichen. Nur um die anzusteuern, braucht man sich wirklich keine große Mühe geben. Langsamlauf, das kriegen die gar nicht mit - wird ultradigital.

Ich habe nur festgestellt, dass das Welten zu einem FS100 (gute Wahl IMHO) oder Graupner C25(?, gibt es glaube ich gar nicht mehr) sind. Und das ist nicht die Edelklasse.

Grüße, Axel
Hallo,

auch ich habe meinen Weichenantrieb mit einem ES05 vom C* entwickelt. Für diese Anwendung ist er mehr als ausreichend. Das kurze "Zucken" beim einschalten hält sich in Grenzen. Ein Zittern des Stellhebels konnte ich nicht feststellen. Bei mir liegt immer das Servosignal an, die Spannungsversorgung schalte ich nicht ab - der Ruhestromverbrauch liegt bei ca. 2,7 mA.

Das sind "meine" Erfahrungen.
lg Gernot
@Axel:
Kein Problem. Erfahrungen können ja sehr unterschiedlich sein!

Das die Edelklasse sooo edel ist wird bei uns im Modellsportverein auch von so manchem erfahrenen Piloten angezwelfelt. Und wer weiß schon was da im Osten in der nächsten möglichst noch billigeren Charge verbaut wird?

Meine "Funtana" jedenfalls fliegt immer noch wunderbar mit den ES-05. Das ist ein 80cm 3D-Flieger mit Brushless-Motor und 1,2kg Schub. Da treten ordentliche Belastungen auf und die Rückstellgenauigkeit ist erstaunlich gut...


Grüßle
Elvis

@Elvis:

Das ist sehr interessant. Ich habe hier welche, das würde ich nicht als Rückstellgenauigkeit bezeichnen. Wer weiß, was so alles als ES05 verkauft wird. Am Ende ist es möglicherweise Glückssache...

Grüße, Axel
Die Servos haben möglicherweise dasselbe Problem wie vieles andere in der Geiz-Ist-Geil Abteilung: Streuung das sich die Balken biegen!

In der Funtana hab ich die Klappen auf 45° angelenkt. Also 90° Weg wird von etwa 100° Stellweg des Servos angesteuert. Und trotzdem muss ich schon sehr genau kucken. Auf 7cm Klappe vielleicht 0,5-1mm.

Auf der anderen Seite sind mir schon einige 20EUR Servos kapput gegangen. Zahnfrass...

Grüßle
Elvis
Was mich ganz konkret an meinen ES-05 gestört hat: Wenn man die Weiche langsam stellen will, und ein entsprechendes PWM-Signal erzeugt, dann ruckelts ein paar Mal beim Umstellen und das war es. Das Servo macht nur wenige Schritte, was grausig aussieht. Mit meinen alten Graupner-Standardservos gibt es eine recht glatte Bewegung. Das FS100 werde ich demnächst noch genauer testen.

Zahnfrass beim Weichen stellen scheint mir andererseits unwahrscheinlich, um auf die Modellbahn zurückzukommen.

Grüße, Axel

PS. 1mm auf 7cm sind 0,8°. Oder anders: Gerade 125 Schritte auf den gesamten Stellweg.
Naja... Die Frage ist natürlich auch wie man den Stellweg der Servos ausnützt. Diese Direktanlenkung mit wenigen Grad Servoweg ist schon sehr suboptimal. Da gibt es bedeutend besseres.

Mit einem kleinen Trick kommt man schon auf fast den doppelten Servoweg:
http://www.modellweltmueller.de/ES05/index.htm
(Vermutlich geht noch mehr wenn das Servo unterlegt wird und damit weiter weg von der Platte entfernt liegt)

Eine andere Variante ist der umbau via Besenhard, er verwendet U-Federdraht zur Anlenkung der Stellschwelle. Den kann man dann unter der Anlage mit dem Servo bewegen. Skywalkerin hat das mal perfekt umgesetzt:
http://www.spassbahner.com/forum/index.php?page...ID=2836&pageNo=2
(Bilder Beitrag 42)

Grüßle
Elvis

@19 Peter,
eine gute Quelle in Ö für Servos ist Modellbau Schweighofer in Deutschlandsberg
http://www.der-schweighofer.at/wg/176/servos__zubeh%25F6r_und_ersatzteile
ThomasK
PS: ich habe mit der Firma nichts zu tun, außer, daß ich zufriedener Kunde bin.
Hallo,

Danke für den Tipp. Das Geschäft sieht ja toll aus! Leider war ich schon seit ein paar Jahren nicht mehr in der Gegend, daher kannte ich es noch nicht. Als ich das letzte Mal in DL war hat grade der örtliche Spielwarenladen abverkauft und zugesperrt. So lange ist das jetzt schon wieder her. Mich freut jedenfalls sehr, dass es so ein Geschäft in der Region gibt.

Grüße, Peter W.


Nur registrierte und eingeloggte User können Antworten schreiben.
Einloggen ->

Noch nicht registriert? Hier können Sie Ihren kostenlosen Account anlegen: Neuer N-Liste Account





Zum Seitenanfang

© by 1zu160.net;