1zu160 - Forum



Anzeige:


THEMA: Servo Controller Projekt

THEMA: Servo Controller Projekt
Startbeitrag
dustpuppy - 30.05.11 01:06
Hi,
nachdem ich ueberall schon mal angedeutet habe, was ich grade so bastel, hab ich mich mal entschieden einen eigenen Thread auf zu machen, damit ich nicht immer Alles doppelt und dreifach schreiben muss

Wodrum geht's? Ich baue/programiere grade ein Servo-Controller-Board. Das Teil hat folgende Funktionen:

On Board:
1. 6 Schalter fuer die Servos
2. 12 LEDs fuer die Anzeige der Servo-Positionen
3. 6 Relais fuer Polarisation oder andere Schaltaufgaben
4. 1 Schalter fuer Reset
5. 1 Schalter fuers Programieren
6. 2 LEDs fuer den I2C-Bus

Anschluesse :
1. 6 x Schalter
2. 12 LEDs
3. 6 x Relais 2 fach
4. I2C-Bus
5. 9-30Volt fuer die Elektronik
6. Spannungsversorgung fuer die Servos
7. 6 Servoanschluesse

Was kann das Teil?
Umstellen von 6 Servos.
Rueckmelden der Servo-Endlage ueber 12 LEDs.
Pro Servo 1 Relais schalten.
Verbindung als I2C-Slave.

Fuer jeden Servo lassen sich folgende Parameter einstellen:
1. Endlage links und rechts
2. Stellgeschwindigkeit nach links und rechts
3. Hoehe des Nachwippens links und rechts
4. Festlegen, wann die LEDs und Relais umgestellt werden

Durch die Moeglichkeit alle Schalter und LEDs nach aussen zu fuehren, kann man einfach 6 externe Schalter und 12 LEDs in ein analoges GBS einbauen und anschliessen. Ausserdem kann man Weichen mit den Relais polarisieren.
Desweiteren kann jede Funktion und jede Einstellung auch per I2C-Bus durchgefuehrt werden. An einer zweiten Platine, die diese Aufgabe uebernimmt und eine Verbindung zum PC bereitstellt arbeite ich noch.

Zur Zeit muss ich leider eine kleine Pause einlegen, bis ich neue CPUs habe, da der im Moment verwendete Atmega8 mit seinen 8k Programspeicher etwas ueberlastet ist mit der aufwendigen Programierung. Das Layout wird sich aber nicht mehr aendern, da ein Atmega328 ebenfalls passt und mit 32k Speicher voll ausreichend ist.

Wer noch Anregungen hat, kann mir das gerne mitteilen. Ich schau dann, was sich noch so realisieren laesst.

Hier nochmal das Video vom Test.
http://www.youtube.com/watch?v=KGBIK6x1RXo

Und selbstverstaendlich der komplette Schaltplan. Die Software bearbeite ich noch und stell sie dann gerne zur Verfuegung. Also, immer mal rein gucken lohnt sich

Gruesse

Dusty


Tante Edit: Schreibfehler Wer noch mehr findet, darf sie behalten.


Die von dustpuppy zu diesem Beitrag angefügten Bilder können nur von registrierten Usern gesehen werden - Login




Hi Dusty

Wie berechnest Du die Impulslängen während der Verstellzeit von STARTPOS nach ENDPOS?
Zwischenpositionen gibt es nicht?


Gruß
Thomas
Hi Thomas,
ich verwende fuer die Ansteuerung der Servos diese Library.
http://derjulian.net/mikrocontroller#library
Da es nicht noetig ist dort etwas zu aendern (never change a running system), bediene ich mich folgendem Trick um die Geschwindigkeit zu regulieren.
Ich habe einen Zaehler. Wenn dieser den vom Benutzer eingestellten Wert erreicht hat, dann stelle ich die Servoposition um einen Schritt weiter und starte den Zaehler neu. Das Ganze wiederhole ich so oft, bis ich die eingestellte Endlage erreicht habe. Wenn der eingestellte Wert also 0 ist, dann wird der Servo bei jedem Durchlauf der Schleife positioniert, wenn der Wert 65535 ist, wird der Servo eben nur bei jedem 65535sten Durchlauf neu positioniert und ich geh ins Kino, waehrend er von ganz Rechts nach ganz Links faehrt.
Das mit den Zwischenpositionen, also einer einstellbaren Bewegungskurve, hab ich noch vor, aber wie bereits erwaehnt, sind 8k nicht genug Programspeicher fuer solche Sachen, da ich noch die I2C-Datenuebertragung hab. Ich muss halt im Moment warten, bis ich die anderen CPUs hab.

Wenn du schon mal ins Code-Chaos gucken willst : http://www.carr-ireland.com/moba/antrieb/servo-board.zip

Gruesse

Dusty

Tante Edit: Der Source und der Schaltplan stehen unter GPL. Sollte also ein komerzieller Controller auftauchen, der so aussieht und nicht Alle Infos frei zugaenglich sein, dann fliesst Blut


....und wer ist der I2C Master?
Achso, arbeitest Du noch dran, alles klar.
Aber wieso noch einen zweiten Bus, wenn der DCC Bus alles erledigen kann?
Deine Zentrale ist doch sicher auch mit dem PC verbunden?

Gruß
Thomas
Die Fragen die sich mir stellen:
Soll ein bereits in vielen Projekten gelöstes MoBa-Problem erneut gelöst werden ?
Dient die MoBa dem Projekt-Entwickler nur als ein mögliches Objekt für Problemlösungen bei denen das Programmieren und die Hardware im Focus steht ?

Dem MoBahner, der an Planungssicherheit interessiert ist, sollte bewusst sein, dass viele derartige Projekte in der Vergangenheit mehr oder weniger schnell in einer Sackgasse landeten, wegen Interessenänderungen beim Entwickler eingeschlafen sind oder in einer nicht mehr der Sache angemessenen Hardware-Lawine mündeten.

Eine Master/Slave-Hardware-Architektur mit I2C-Bus dient jedenfalls kaum der hier gefragten trivialen UND kostengünstigen Aufgabenstellung.
Soll damit ein Dekoder- u. Rückmelder-System etabliert werden, ist die Sackgasse schon erkennbar.

Seriöse Projekte, die auch nach Jahren noch Bestand haben, wurden jedenfalls mit Entwürfen einer Architektur begonnen und nicht mit einzelnen Peripherie-Bausteinen.

Es grüßt RainerNRW
Servus,

ich finde solche Projekte spannend. Ist doch super das jeder Modellbahner anderst gewichtet. Und Spass an der (Micro)Elektronik gehört auch für mich definitv zur Modellbahn!

@Rainer: Da bin ich mal froh das es kreative Köpfe gibt sich nicht an das bekannte, klassische und seriöse halten. Sonst wär das vielleicht nix geworden mit dem Steinrad seinerzeit...

Manchmal ist halt einfach der Weg das Ziel...

Grüßle
Elvis

Hi Rainer,
du verstehst das Ganze irgendwie etwas falsch. Es kommt immer wieder die Frage auf, wie man Servos kostenguenstig analog stellen kann. Ich hatte auch das Problem, dass die angebotenen Loesungen entweder viel zu teuer sind, oder nicht die Moeglichkeiten bieten, die mir vorschweben. Also blieb mir nur der Selbstbau. Die Idee, die dahinter steht ist, dass man mit dem Board ohne zusaetzliche Hardware 6 Servos individuell einstellen kann und eine Rueckmeldung zur Verfuegung steht. Da ich sowieso gerne mit solchen Schaltungen bastel, war die Erstellung kein Problem.
Die Relais fuer die Polarisation hab ich nur mit rein genommen, weil die meisten Leute danach gefragt haben.
Den I2C-Bus verwende ich, weil ich damit bereits gute Erfahrungen im Bereich von Robotersteuerungen gemacht habe.
Das eigendliche Grundsystem ist aber ausgelegt, dass man das Board voellig unabhaengig und alleine benutzen kann.
Wenn ich das Ganze nur fuer meine Bahn bauen wuerde, koennte ich mir natuerlich eine Menge Arbeit ersparen, weil ich kann ja in der Software alle Einstellungen machen und einfach das jeweilige Board neu flashen. Aber, wenn ich schon sowas bau, dachte ich halt, dass auch Andere dran Interesse haben und dann muessen halt ein paar mehr Funktionen vorhanden sein.
Das Ganze soll kein Ersatz fuer Digital werden. So irre kann nicht mal ich sein
Ich wollte fuer mich selber nur nicht auf digital gehen, sondern analog bleiben, aber trotzdem die Moeglichkeit haben per PC zu schalten. Deswegen ist der Master nichts weiter, als ein Controller mit serieller Schnittstelle, der Befehle vom PC an den jeweiligen Slave weiterreicht.
Das angesprochene DCC, werde ich mit Sicherheit nicht einbauen. Der Source ist frei zugaenglich und wer unbedingt das Ganze fuer Digital umprogramieren will, soll sich bloss nicht zurueck halten.

Lange Rede, kurzer Sinn. Ich entwickel die Elektronik und Programierung fuer meine Bahn sowieso komplett selber und wollte nur Anderen die Moeglichkeit bieten so eventuell auch eine kostenguenstige Servosteuerung zu bekommen.
Im Moment lieg ich mit billigen 9g-Servos aus China bei weniger als 5.-Euro pro Weiche, oder Schranke und das bei Funktionen, wie langsamen Umschalten und Nachwippen. Wenn es nur um meine Anlage geht, bin ich bereits fertig mit Allem, aber irgendwie hat mich zur Zeit auch der Ergeiz gepackt und der Bastard will einfach nicht loslassen

Gruesse

Dusty
Hallo Dusty,

das ist genau die Richtigstellung, die ich lesen wollte, damit bei unbedarften MoBahnern nicht der Eindruck entsteht, den ich für möglich hielt.

Es grüßt RainerNRW
Hi,
hab fertig!
Die Programmierung ist soweit. Leider muss ich im Moment noch beim Compilieren festlegen, ob ich das Teil alleine, also rein Analog, oder ueber die Verbindung zum PC betreiben will, weil die Software nicht in den Atmega8 passt. Sobald die Atmega328 da sind, kann ich die CPUs austauschen und dann ist Beides moeglich.
Wenn ich soweit bin und Alles ausgiebig getestet hab, dann erstell ich eine genaue Dokumentation und stell Alles zusammen online.


Gruesse und Dergleichen

Dusty

Tante Edit: Hier noch ein Bild von der Software zum bequemen Einstellen der Parameter per PC. Die Verbindung zum PC uebernimmt ein Atmega8 mit I2C-Bus und serieller Schnittstelle, der bis zu 120 solcher Boards gleichzeitig ansprechen kann.


Die von dustpuppy zu diesem Beitrag angefügten Bilder können nur von registrierten Usern gesehen werden - Login



Hi,
langsam aber sicher entwickelt sich das Ganze zu einem Grossprojekt. Nachdem das Servo-Board und das serielle Schnittstellen-Board zum PC funktionieren, hab ich angefangen eine passende Software fuer den PC zu schreiben. Hier mal ein Bild vom Editor.

Gruesse

Dusty



Die von dustpuppy zu diesem Beitrag angefügten Bilder können nur von registrierten Usern gesehen werden - Login

Und noch mal Hi,
da ich bereits genug Boards fuer meine Bahn habe, lohnt es sich nicht fuer mich Platinen anfertigen zu lassen. Deshalb wuerde ich gerne wissen, ob Interesse an dem Servo-Controller besteht. Als Bausatz mit allen Teilen wuerde das Teil ca.35.-Euronen kosten.
Zusaetzlich zu dem bisherigen Layout habe ich das Ganze so geaendert, dass eine Erweiterung fuer z.b. Relais moeglich ist.
Hab mal ein Bild von dem Teil angehaengt, wie es aussehen koennte.

Gruesse

Dusty

Tante Edit: Die Jumper links sind fuer externe Schalter. Hab ich im Bild vergessen


Die von dustpuppy zu diesem Beitrag angefügten Bilder können nur von registrierten Usern gesehen werden - Login



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;