RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#26 von Der Ruinenbaumeister , 25.08.2015 07:31

Zitat von MicroBahner
Hallo Clemens,
Zu deinen Konzepten: einen pneumatischen Doppelspulenantrieb kann man wohl kaum selbst bauen. Hast Du da Beschaffungsquelllen?
Der Memorydraht war mal eine Zeit bei der Moba sehr 'In' für langsame Bewegungen, ist aber irgendwie aus der Mode gekommen. Könnte an den Beschaffungsproblemen liegen, die Du ja auch ansprichst.



Den Doppelspulenantrieb gibt es von Viessmann unter der Nummer 4550V, z.B. bei Conrad. Man kennt den Antrieb ja schon von den Signalen.


Gruß
Clemens

Mein Blog.


 
Der Ruinenbaumeister
EuroCity (EC)
Beiträge: 1.191
Registriert am: 01.04.2011


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#27 von MicroBahner , 25.08.2015 09:31

Hallo Ulli,
ja, es geht schon ordentlich rund hier und es sind schon eine ganze Reihe Ideen zusammengekommen.
Der Servo ist von Blue Bird, Typ BMS-371DD. Den gab's mal beim 'C' günstig im Angebot. Da ist er aber derzeit wohl ausverkauft. Wenn man im Internet schaut schwanken die Preise für das Ding erheblich .
Dein Verfahren mit einem 'virtuellen' Referenzpunkt für den Schrittmotor ist hochinteressant, und lässt diese Lösung gleich in einem anderen Licht erscheinen. Die Mechanik ist dann ja genauso einfach wie beim Servo und der von dir verlinkte Schrittmotor ist preislich kaum zu toppen. Ob ein Servo in der Preislage für unseren Zweck taugt muss sich erst noch zeigen .

Zitat von garti62
Leider kann ich zu Deinem Projekt nichts wirklich konstruktives beitragen, ich mach meine Sachen in Basic

Das sehe ich jetzt überhaupt nicht so. Man muss sich ja hier nicht mit Codezeilen einbringen, gute Ideen sind noch viel wichtiger.

Hallo Lars,

Zitat von Eisenhorn
du vielleicht nicht, aber ich

Hochinteressant , dein Link. Ich werde auf jeden Fall ausprobieren, ob das noch was bringt. 2 Servos reichen für unsere Anwendung ja aus.
Was die 20ms angeht: Ich hatte durchaus schon analoge Billig-Servos, bei denen die Position auch vom Wiederholzyklus abhing und nicht nur von der Impulslänge.

Hallo Clemens,

Zitat von Der Ruinenbaumeister
Den Doppelspulenantrieb gibt es von Viessmann unter der Nummer 4550V

Den Antrieb kenne ich natürlich. Ich muss aber zugeben, dass ich nicht auf die Idee gekommen bin, den auch für einen Schrankenantrieb zu verwenden. Den besten Ruf hat er ja nicht gerade, und die Schranke bewegt sich dann halt wie ein Signalflügel . Aber prinzipiell ist es wohl möglich.

@all:
Jetzt werde ich erstmal den Schaltplan (Portzuordnung) so anpassen, dass es auch für die von Lars vorgeschlagene Lib passt. Dann werden wir sehen, ob die Hardwareerzeugung der Servoimpulse noch was bringt.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#28 von Bremser47 , 25.08.2015 09:40

Hallo Franz- Peter,

ich habe vor ca. 3 Wochen mir einen Arduino Uno beim Chinesen gekauft, nur, ich kriege den einfach nicht an meiner USB-Schnittstelle angeschlossen. Immer wieder habe ich deinstalliert und auf ein Neues versucht. Aber immer wieder kommt die Mitteilung Code 10. Leider ist mein technisches Englisch gleich null, so dass ich nicht im Arduinoforum weitergekommen bin. Grundsätzlich habe ich keine Ahnung vom Programmieren, aber GROSSES Interesse dies mal zu versuchen. Also ich bin dabei!!


Herzliche Grüße


Michael


Hart in den Grundsätzen, flexibel in der Anwendung.

Bei mir könnt Ihr hier vorbei schauen!

https://www.stummiforum.de/viewtopic.php?f=64&t=94523


Bremser47  
Bremser47
InterCity (IC)
Beiträge: 695
Registriert am: 03.12.2012
Gleise C- und M-Gleise
Spurweite H0
Stromart AC, Digital


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#29 von rmayergfx , 25.08.2015 10:01

Hallo Michael,

bitte mal hier nachlesen, es ist ein einfaches Treiberproblem. Die originalen Arduino haben einen FTDI Chipsatz verbaut, da wird der Treiber meist vom Betriebssystem erkannt...
Nachdem aber auch viele FTDI Fakes http://www.heise.de/make/meldung/Treiber...ck-2435079.html verkauft wurden und diese per Treiberupdate gesperrt wurden, wird nun ein anderer Weg eingeschlagen.
http://blog.sengotta.net/arduino-nano-wi...rkannt-was-tun/

Es wird ein Chipset der Fa Winchiphead verbaut. Treiber: http://wch.cn/download/CH341SER_ZIP.html

FTDI Treiber für alle Betriebssysteme WHQL zertifiziert gibt es hier:
http://www.ftdichip.com/Drivers/VCP.htm

mfg

Ralf


Der Computer soll die Arbeit des Menschen erleichtern und nicht umgekehrt!
Neue Kupplungen für Faller OHU Selbstentladewagen: viewtopic.php?f=27&t=82863
Kein Support per PN !


 
rmayergfx
ICE-Sprinter
Beiträge: 5.391
Registriert am: 07.07.2008
Gleise C-K-Flex-M-Gleis
Spurweite H0, Z, 1
Steuerung MS2, 6021, 60213
Stromart AC, Digital, Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#30 von MicroBahner , 25.08.2015 20:53

Hallo Michael,
willkommen an Bord . Zu deinem Treiberproblem hat dir Ralf ja schon geschrieben, ich hoffe das hilft Dir. Da ich auch die China-Klone einsetze kenne ich das Problem, dass man da eigentlich immer einen eigenen USB-Treiber braucht, weil der vom Arduino nicht funktioniert.
Ich hoffe, du bekommst das jetzt hin. Wenn Du beim Programmieren noch ganz unbeleckt bist, empfiehlt es sich, erstmal ein Einsteiger-Tutorial durchzumachen. Die gibt es auch in deutsch - z.B. hier. Da bekommst Du die ersten Grundlagen mit, auf die Du dann weiter aufbauen kannst. Fragen kannst Du natürlich auch hier stellen.

@all:
Wie angekündigt, habe ich mein Testprogram auf die von Lars verlinkte Lib umgestellt, um zu sehen, ob das noch eine Verbesserung bringt. Leider ist diese Lib offensichtlich schon etwas älter und wohl für das Wiring-System geschrieben. So wie ich das sehe, ist Wiring der Vorgänger vom Arduino. Jedenfalls gab's mit der Lib erstmal fatale Compilerfehler. Es war also doch etwas Handarbeit angesagt .

Jetzt läuft sie aber, und ich habe sie noch etwas ergänzt, so dass im Sketch selber fast keine Änderungen im Vergleich zur Standard-Servolib nötig sind.
Das Ergebnis seht ihr wieder im folgenden Video:


Riesig ist der Unterschied wohl nicht. Für die Bü-Steuerung reichen aber 2 Servos aus, und die Lib erzeugt definitiv stabilere Impulse. Am auffälligsten ist der Unterschied in der Ruhelage: Auch ohne Abschalten des Impulses steht das Servo wie festgenagelt, da es keinerlei Jitter gibt.

Die Schaltung habe ich etwas verändert, da die Servoports nicht mehr flexibel sind. Wer das mal mit seinen eigenen Servos probieren will, hier sind Sketch [attachment=1]HWServoV1.0.zip[/attachment] und Library. [attachment=0]ServoTimer1.zip[/attachment] Die Lib kann man über die Arduino IDE installieren:
Sketch-> Include Library->Add .ZIP Library... (Zip vorher nicht auspacken, das macht die IDE)

In der Testversion wird die Auf/Ab Bewegung mit den Justiertastern gestartet, Der Schalter 'SchrankeZu' schaltet die Bewegungsgeschwindigkeit um (ist ja erstmal nur für den Test der Bewegung)
Ich habe es mit 2 verschiedenen Servos probiert. Die Unterschiede sind gewaltig

Mit dieser Servoansteuerung will ich jetzt ins Rennen gehen, und wir können uns daran machen Schritt für Schritt mit der Ablaufsteuerung anzufangen.

Fortsetzung folgt ...


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#31 von Bremser47 , 25.08.2015 22:25

Hallo zusammen,

ich habe es tatsächlich geschafft, den Treiber zu installieren und habe auch schon ausprobiert, wie eine LED (Nr.9) das Blinken verändert. Danke an ALLE!!!!

Jetzt werde ich mir das Handbuch, welches ich auch schon runtergeladen habe, gründlich durchlesen und dann mich ans Programmieren begebe.Jedenfalls bleibe ich hier am Ball.

Schöne Urlaubsgrüße aus dem Allgäu sendet


Michael


Hart in den Grundsätzen, flexibel in der Anwendung.

Bei mir könnt Ihr hier vorbei schauen!

https://www.stummiforum.de/viewtopic.php?f=64&t=94523


Bremser47  
Bremser47
InterCity (IC)
Beiträge: 695
Registriert am: 03.12.2012
Gleise C- und M-Gleise
Spurweite H0
Stromart AC, Digital


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#32 von digi_thomas2003 , 25.08.2015 22:33

Hallo Franz-Peter,

ich bin eben auf Dein Projekt hier gestoßen: Gute Sache!

Warum aber eine "eigene" Servo-Lib? Sind die Unterschiede so deutlich?
Ich werde in den nächsten Tagen mal meinen eigenen Aufbau machen, damit ich fleißig mittesten kann.

Freundliche Grüße
Thomas


Thomas
------------------
Anlage H0: U-Form, im kreativen Bau
Fahren: Tams MC
Schalten: IB
Melden: HSI 88
Steuern: TrainController 9.0 Gold
Denken: Brain 4.1


 
digi_thomas2003
InterRegioExpress (IRE)
Beiträge: 305
Registriert am: 03.05.2005
Gleise sind vorhanden
Spurweite H0
Steuerung TrainController
Stromart AC, Digital


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#33 von Eisenhorn ( gelöscht ) , 25.08.2015 22:50

[quote="MicroBahner"]

@all:
Wie angekündigt, habe ich mein Testprogram auf die von Lars verlinkte Lib umgestellt, um zu sehen, ob das noch eine Verbesserung bringt. Leider ist diese Lib offensichtlich schon etwas älter und wohl für das Wiring-System geschrieben. So wie ich das sehe, ist Wiring der Vorgänger vom Arduino. Jedenfalls gab's mit der Lib erstmal fatale Compilerfehler. Es war also doch etwas Handarbeit angesagt .
/quote]

Das ist ja blöd, es sollte ja die API nur nachbilden, und eigentlich sollte das auch alles in der Standart lib enthalten sein.


Gruß,
Lars


Eisenhorn

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#34 von Moba Seba , 27.08.2015 10:49

Hallo Franz-Peter,

ich finde dein Projekt fantastisch. Habe gerade selbst mit dem Arduino und einem Motor-Shield angefangen ein bisschen herumzuexperimentieren... Ich werde das hier mit höchstem Interesse weiter verfolgen.

LG, Sebastian


Gruß, Sebastian


Moba Seba  
Moba Seba
S-Bahn (S)
Beiträge: 18
Registriert am: 28.04.2015
Spurweite H0
Stromart DC, Digital


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#35 von MicroBahner , 27.08.2015 11:58

Hallo an alle MoBa+Arduino Fans
Danke für Euer Interesse an meinem kleinen Projekt.

@Michael:

Zitat von Bremser47
ich habe es tatsächlich geschafft, den Treiber zu installieren und habe auch schon ausprobiert, wie eine LED (Nr.9) das Blinken verändert. Danke an ALLE!!!!

Super, dann kanns ja losgehen . Einen schönen Urlaub noch.

@Thomas:

Zitat von digi_thomas2003
Warum aber eine "eigene" Servo-Lib? Sind die Unterschiede so deutlich?

Mmh, gute Frage .... vor allem, wenn man mal die Gänsefüßchen weglässt . Wenn wir in unserem Moba-Bereich Servos einsetzen - sei es als Weichen- oder Signalantrieb, für Schuppentore , Schranken oder sonstwas - eigentlich wollen wir immer, dass das Servo sich langsam bewegt. Das kann bisher aber keine (oder Lars?) der Arduino Libs bieten. Wir müssen da immer mühsam was mehr oder weniger komplexes drumrumstricken. Für Arduino-Einsteiger ist das kaum ordentlich zu stemmen.
Deshalb hast Du mich mit deiner Frage eigentlich darauf gebracht: Es ist viel einfacher und effektiver, wenn die Lib selbst für die langsame Bewegung sorgt. Dann ist der Unterschied zur Standard-Lib auch entsprechend deutlich

@Lars: So blöd war es letztendlich nicht. Dadurch musste ich in die Lib reinschauen und zusammen mit der Frage von Thomas ....

@Sebastian: Willkommen im Club - je mehr dabei sind, umso größer ist der Ansporn aus dem Projekt was ordentliches zu machen .


@all:
Thomas hat mich ja auf eine Idee gebracht, auch wenn seine Bemerkung wohl eher nicht in diese Richtung gedacht war . Vor allem für alle, die in der Arduino Programmierung noch nicht so sattelfest sind, ist es eben am einfachsten, wenn die Servo-Lib selbst für die langsame Bewegung sorgt. Dann gibt man einfach die neue Position vor, und das Servo bewegt sich schön gemütlich dorthin.
Ich habe mit das schonmal angeschaut, und es ist letztendlich sogar einfacher und ressourcenschonender wenn die langsame Bewegung direkt in die Lib integriert wird. Zunächst werde ich das mit der von Lars ausgegrabenen Lib machen, da die intern etwas einfacher gestrickt ist als die Standardlib. Für unser Projekt hier reichen ja auch 2 Servos aus. Aus dem Sketch heraus kann man das dann genauso einfach ansprechen wie die Standardlib, nur das sich das Servo eben langsam bewegt. Eine erste Testversion werde ich wohl schon bald vorstellen können.
Die Ablaufsteuerung muss halt noch ein klein wenig warten .

Die Standardlib für mehr Servos lässt sich aber auch entsprechend erweitern. Das könnte man dann später z.B. in einem Projekt für eine Weichensteuerung angehen.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#36 von MicroBahner , 27.08.2015 12:55

Hallo Roberto,
in der Lib, die ich gerade überarbeite, lässt sich die Pulslänge in Schritten von 0,5µs verändern. Ich hatte noch keinen Servo, der mechanisch überhaupt in der Lage ist, so fein zu positionieren. Das Ruckelproblem liegt definitiv nicht in der Ansteuerung, sondern in der mechanischen/elektrischen Qualität des Servos.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#37 von Eisenhorn ( gelöscht ) , 27.08.2015 14:38

Moin,

Zitat von MicroBahner
Das kann bisher aber keine (oder Lars?) der Arduino Libs bieten. Wir müssen da immer mühsam was mehr oder weniger komplexes drumrumstricken. Für Arduino-Einsteiger ist das kaum ordentlich zu stemmen.
Deshalb hast Du mich mit deiner Frage eigentlich darauf gebracht: Es ist viel einfacher und effektiver, wenn die Lib selbst für die langsame Bewegung sorgt. Dann ist der Unterschied zur Standard-Lib auch entsprechend deutlich



Also mir ist nichts bekannt,auf die lib bin ich auch nur gestossen, da wir eine Drehscheibe ansteuern müssen, die per Servo bedient wird.
Da aber viele von uns nicht die leuchte sind wollte ich da auch eine entsprechende lib zimmern so wie du jetzt, mangels zeit bin ich dazu jedoch noch nicht gekommen.

Also bin ich einmal gespannt auf deine Lib, und werde mir sie sehr genau anschauen.

Zitat von Roberto

Zitat von MicroBahner
Hallo Roberto,
in der Lib, die ich gerade überarbeite, lässt sich die Pulslänge in Schritten von 0,5µs verändern. Ich hatte noch keinen Servo, der mechanisch überhaupt in der Lage ist, so fein zu positionieren. Das Ruckelproblem liegt definitiv nicht in der Ansteuerung, sondern in der mechanischen/elektrischen Qualität des Servos.



Diese 0.5us hängen von der eingestellten Frequenz und der Auflösung ab. Bei 500hz = 2ms würde eine Auflösung von 0.5us ein Verhältnis von 1:4000 bedeuten. Das würden 12 Bit breite Daten erfordern.




Wird überhaupt ein PWM Modul benutzt? Ich dachte das läuft über einen Hardware Timer der den entsprechenden pin direkt toggeln kann. Bei PWM gebe ich durch nur den Zyklus und das Tastverhältnis an, und habe damit ein Symmetrisches Signal, das PPM Signal ist aber Assymmetrisch und somit auch kein PWM.




Grüße Lars


Eisenhorn

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#38 von MicroBahner , 27.08.2015 15:52

Hallo,
also um diese Diskussion abzuschliessen: Das Servosignal wird über einen 16-Bit Timer erzeugt, der bei 16MHz Taktfrequenz und einem Vorteiler von 8 eine Auflösung von 0,5µs hat. Aufgrund der 16Bit deckt er auch den kompletten Zyklus des Servosignals von 20ms in dieser Auflösung ab. Die Servoausgänge werden über 16Bit Vergleichsregister von der HW ein- bzw. ausgeschaltet. Die Pulslänge ist daher unabhängig von der parallel ablaufenden Software auf 0,5µs genau.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#39 von Eisenhorn ( gelöscht ) , 27.08.2015 16:05

Zitat von Roberto
Natürlich ist ein PWM Signal Assymetrisch. PWM heisst ja auch "Pulsweiten Modulation". Ob dieses von der Internen Hardware des Prozessors erzeugt wird, oder Softwaremässig, spielt keine Rolle. Es müssen ja immer Werte für die Pulsweite festgelegt werden. Deren Auflösung nun mal von der Anzahl der Bits abhängt.

Das, was du beschreibst wäre Fsk Frequenz Modulation. Ist etwas ganz anderes.




Moin,

Upppps stimmt da war ich gerade etwas durcheinander.
Aber PPM und PWM sind ja trozdem verschiedene Signal Typen.


Eisenhorn

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#40 von digi_thomas2003 , 27.08.2015 16:47

Hallo Franz-Peter,

das freut mich, wenn meine Frage was angestoßen hat.
Meine Frage war zwar in der Tat so nicht gedacht, aber - prima!

Ich bin auch auf den weiteren Fortschritt gespannt: Ich teste dann mit 2 äußert preiswerten China-Servos und einen Nano.

Herzliche Grüße
Thomas


Thomas
------------------
Anlage H0: U-Form, im kreativen Bau
Fahren: Tams MC
Schalten: IB
Melden: HSI 88
Steuern: TrainController 9.0 Gold
Denken: Brain 4.1


 
digi_thomas2003
InterRegioExpress (IRE)
Beiträge: 305
Registriert am: 03.05.2005
Gleise sind vorhanden
Spurweite H0
Steuerung TrainController
Stromart AC, Digital


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#41 von Wolfgang181 , 27.08.2015 18:15

Hallo Franz Peter und Freunde der Stummirunde,

Ich muss sagen, eine super Idee.
ich habe auch schon darüber nachgedacht meine Schranken mit einem Servo zu steuern, zumal ich mit Servos sehr gute Erfahrungen gemacht habe was das Schalten von Weichen angeht, ich habe alles auf die ESU umgebaut.
So ganz langsam komt ja auch wieder die Zeit wo man etwas mehr ans Hobby denken kann un d auch wirklich mal wieder dazu kommt ( jedenfalls bei mir).
Leider bin ich nicht der PC Experte und habe von Programmierung so gut wie keine Ahnung, ich müsste mal mit meinem Neffen sprechen, der ist auf dem Gebiet ein Ass und hat schon so einiges gemacht.
Ich würde mich freuen wenn hier Lösungsvorschläge, oder sogar eine ausführliche Bau und Programmieranleitung entsteht und somit noch etwas mehr Leben auf jeder Anlage einziehen kann.
Danke schon mal an alle Programmierer und jeden der sich hier einbringt.
Viele Grüße

Wolfgang


Wolfgang181  
Wolfgang181
InterCity (IC)
Beiträge: 657
Registriert am: 09.02.2014
Ort: im schönen MV in der Nähe von Greifswald
Gleise Piko A Gleis bei Anlage 1 & Fleischmann Profigleis bei Anlage 2 mit IB II bzw IB com und TC Silber
Spurweite H0
Stromart DC, Digital


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#42 von garti62 , 27.08.2015 21:35

Hallo Franz-Peter, hallo Stummis,

Zitat von MicroBahner
Das Ruckelproblem liegt definitiv nicht in der Ansteuerung, sondern in der mechanischen/elektrischen Qualität des Servos.



ich hab mal alle noch so in der Bastelkiste vorhandenen (Analog-!)Servos ausprobiert. Aufbau ähnlich wie Franz-Peter. HW-PWM mit 50Hz, Taktfrequenz allerdings 1MHz, d.h. ein Tick ist nicht 0,5µs wie oben, sondern 1µs. Alle 20ms das Servosignal um einen tick erhöht. Das Ergebnis ist ernüchternd :
- modelcraft RS 2 deutlich erkennbares "ruckeln"
- hitec HS-55 genau das gleiche
- hitec HS-311 deutlich besser, aber leichtes ruckeln mit bloßem Auge noch zu erkennen
- modelcraft es-05 mit bloßem Auge wirkt die Bewegung schon fast wie auf Franz-Peters Video, wenn man es filmt, sieht man aber doch recht
deutlich, daß es nur "fast" so ist

Fazit: Für einen Schrankenantrieb mit Servo ist wirklich nur ein qualitativ hochwertiger Servo zu gebrauchen. Bleibt die Frage: welcher? Aber das herauszufinden ist ja auch eine Aufgabe für alle, die hier mitmachen.

Schönen Abend noch
Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#43 von MicroBahner , 28.08.2015 11:11

Zitat von MicroBahner
Die Ablaufsteuerung muss halt noch ein klein wenig warten .


Hallo an alle Interessierten ,
Komando zurück - die Ablaufsteuerung muss nicht warten. Sie ist schliesslich das perfekte Testobjekt für die neue Lib. D.h. es wird beides parallel entstehen. Deshalb gibt es jetzt auch die erste Version der Ablaufsteuerung, inkl. der neuen Lib .
Vorher stehen aber noch ein paar Antworten aus:
@Thomas:

Zitat von digi_thomas2003
das freut mich, wenn meine Frage was angestoßen hat.
Meine Frage war zwar in der Tat so nicht gedacht,

Tja, manchmal kann eine simple Frage ungeahnte Auswirkungen haben . Auf die Erfahrungen mit deinen Servos bin ich auch mal gespannt. Ulli hat ja auch schon ernüchternde Tests gemacht, was einfache Servos angeht.

@Wolfgang:
Auch dir ein herzlich Willkommen im Club. Ich hoffe schon, dass am Ende etwas brauchbares rauskommt .

@Ulli: Deine Ergebnisse decken sich mit meinen Erfahrungen. Ich habe mir in der Bucht mal digitale Micro-Servos von Blu Bird bestellt. Sind zwar nicht der gleiche Typ wie meins, aber auch digital, und sogar mit einem Kugellager. Das 3er Set gab's für 12€. Wenn das kein Fake ist, wäre es ein super Preis. Ich werde berichten, wenn ich sie ausprobiert habe - sie sollen schon unterwegs sein .


@all:
Nun zum Stand der Dinge . Wie angekündigt, habe ich die Servolib so umgebaut, dass sie sich selbst um die langsame Bewegung der Servos kümmert. Da sie die Signale per HW erzeugt, kann sie nur 2 Servos an D9 und D10 ansteuern. Dafür sind die Impulse extrem stabil und genau.
Genutzt wird sie genau so wie die Standardlib, es gibt aber 2 zusätzliche Funktionen bezüglich der Servogeschwindigkeit. z.B:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 

SlowServoT1 Schranke; // SlowServoT1 ist der neue Name der Servoansteuerung und
// entspricht dem 'Servo' in der Standardlib

Schranke.attach(9); //Servo an Pin 9 ( Wie Standard Lib )
Schranke.write( 1500 ) ; // Wie Standardlib, entweder als Winkel ( 0-180 ) oder in µs
// als Pulslänge ( Werte > 700, <2300 )
Schranke.setSpeed( 3 ); // Die Geschwindigkeit ist der Wert, um den sich die Impulslänge alle 20ms ändert,
// in 0,5µs Einheiten. 3 bedeutet also, dass sich die Pulslänge alle
// 20ms um 1,5µs ändert bis die vorgegebene Lage erreicht ist
// bei 0 (default) verhält es sich wie die Standardlib.
Weg = Schranke.moving; // Der Rückgabewert zeigt an, wie weit der Servo noch vom Ziel entfernt ist, und
// zwar in % des Weges vom vorherigen write.
// 0 bedeute also, dass der Servo an der Zielposition steht.
 
 

Ich habe erstmal nur diese Funktionen im Rahmen der Ablaufsteuerung getestet. Es sind meiner Meinung nach auch die wichtigsten. Die weiteren Funktionen der Lib habe ich gar nicht verändert.

Die Lib enthält noch eine weitere Funktionalität, mit der man Leds weich an- und ausschalten kann. Auch dafür wird der Timer 1 genutzt.

1
2
3
4
5
6
 
SoftLedT1 Wblinker;
Wblinker.attachLed(6); // muss ein PWM-fähiger (analogWrite) Port sein
Wblinker.riseTime(400); // Zeit in ms für Auf - Abblenden
Wblinker.ledOn(); // Led geht langsam an
Wblinker.ledOff; // Led geht langsam aus
 
 

Beim Bue kann man das für einen recht realistisch wirkenden Wechselblinker nutzen.
Tja, und dann gibt es noch eine kleine 'mini-Lib', mit der man sich Zeitfunktionen einrichten kann, die wie eine Eieruhr funktionieren: Über einen Funktionsaufruf wird die Uhr 'aufgezogen', und mit einer 2. Funktion kann man abfragen, ob sie inzwischen abgelaufen ist. Damit kann man im loop sehr einfach Verzögerungen realisieren, ohne den delay() nutzen zu müssen. Der delay() blockiert den loop während der Ablaufzeit, die 'Eieruhr' nicht.

1
2
3
4
5
6
7
8
9
 
EggTimer blinkerT;          // Eine Eieruhr einrichten
:
// im loop:
blinkerT.setValue ( 1000 ); // Uhr für 1sec aufziehen
:
if ( !blinkerT.laeuft ) {
// wird nur ausgeführt, wenn der Blinker abgelaufen ist
}
 
 

Wie man das genau nutzt, kann man im Sketch sehen

Jetzt während der Entwicklung der Software sind auch die Lib-Dateien mit im Sketch-Directory gespeichert. Wer möchte, kann sich die also auch ansehen, und gegebenenfalls auch Verbesserungsvorschläge machen.
Wem die Libs 'zu hoch' sind, und die nur nutzen möchte, schaut halt nur ins Hauptprogramm ( 1.Tab in der IDE ).

Die Ablaufsteuerung ist als kleiner Zustandsautomat realisiert. Jetzt am Anfang gibt es erstmal nur 4 Zustände, in denen sich der Bue befinden kann:

  1. Die Schranke ist offen
    Hier sind die Ausgänge (Blinker/Glocke) inaktiv. Es wird nur der Schalter abgefragt, der das Schließen der Schranke einleiten soll. Wird dieser Schalter betätigt, wird Wechselblinker und Glocke aktiviert, und das Senken der Schranke gestartet. Der Zustand wechselt dann zu:
  2. Die Schranke schliesst sich.
    Hier wird darauf gewartet, dass sich beide Schrankenbäume in der unteren Position befinden. Ist das der Fall, wird die Glocke abgeschaltet, und der Zustand wechselt zu
  3. Die Schranke ist zu
    Der Wechselblinker ist weiterhin aktiv. Ansonsten wird wieder nur der Schalter abgefragt, der bestimmt, dass die Schranke wieder geöffnet werden soll. Wird der Schalter betätigt, wird der Wechselblinker abgeschaltet, und die Aufwärtsbewegung der Schrankenbäume gestartet. Der Zustand wechselt zu
  4. Die Schranke öffnet sich
    Hier wird wieder nur abgefragt, ob beide Schrankenbäume die Endposition 'offen' erreicht haben. Wenn ja wechselt der Zustand wieder zu 'Die Schranke ist offen' und das Spiel beginnt von vorn.
Der Zustandsautomat ist so programmiert, das - je nach aktuellem Zustand - im loop immer nur die Programmteile ausgeführt werden, die zu dem entsprechenden Zustand gehören. Im Laufe der Entwicklung werden wir noch weitere Zustände hinzufügen, um den Ablauf realistischer zu gestalten.

So, und hier nun der zugehörige Sketch: [attachment=0]BueSteuerung_V0.1-150828b.zip[/attachment] Edit: neues Zip-File, PaSchu hat noch einen Fehler entdeckt, danke

Bei Fragen, Problemen oder Vorschlägen --- nur zu, es soll ja jeder die Chance haben, das Programm auch zu verstehen und mitzugestalten.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#44 von MicroBahner , 28.08.2015 16:41

Hallo,
noch ein kleiner Nachschlag. Das Video zum Sketch mit den jeweils im loop aktiven Zustanden:



@Lars: sorry, durch die Diskussionen ist deine Antwort soweit hochgerutscht, dass ich sie übersehen habe ops:

Zitat von Eisenhorn
Also mir ist nichts bekannt,auf die lib bin ich auch nur gestossen, da wir eine Drehscheibe ansteuern müssen, die per Servo bedient wird.

Drehscheibe und Servo? interessant, war das eine Segmentdrehscheibe?

Zitat von Eisenhorn
... und werde mir sie sehr genau anschauen.

ist das jetzt eine Drohung? - nein Spass beiseite, ein Software Review ist immer gut, gehört zu jeder ordentlichen Programmentwicklung


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#45 von PaSchu ( gelöscht ) , 28.08.2015 20:22

Zitat
Hier darf jeder seinen Senf dazu geben, solange man die Regeln einhält. .



Irgendwo wurde mal erwähnt das man PN nicht öffentlich macht.

Zitat

Übrigens ich weiss, was ich beim Programmieren tue. Kannst du dies auch von dir behaupten?



Weißt Du auch das Du ziemlich arrogant bist?

Entschuldigung Microbahner für diese Erwiderung in deinem Thread. Ich zieh mich hier jetzt zurück.


PaSchu

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#46 von Eisenhorn ( gelöscht ) , 28.08.2015 20:40

Zitat von PaSchu

Ich wollte den Sketch testen, bekomme aber leider folgende Fehlermeldungen:

1
2
3
4
 
In file included from BueSteuerung_V0.1.ino:9:
..DocumentsArduinolibrariesServoTimer1a/ServoTimer1a.h:46: error: ISO C++ forbids initialization of member 'brightStep'
..DocumentsArduinolibrariesServoTimer1a/ServoTimer1a.h:46: error: making 'brightStep' static
..DocumentsArduinolibrariesServoTimer1a/ServoTimer1a.h:46: error: ISO C++ forbids in-class initialization of non-const static member 'brightStep'
 



Was ist falsch?





Moin, versuch mal das File nicht als Arduino libraries zu öffnen sondern einfach als Arduino Sketch.
Ansonsten konnte ich deine Fehler meldung nicht nach vollziehen.


Gruß
Lars


Eisenhorn

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#47 von PaSchu ( gelöscht ) , 28.08.2015 20:52

Hab ich getan, ohne Erfolg.

Danke für deinen Tip, ist aber auch nicht mehr so wichtig. Ich nutze dann eben mein eigenes Programm, erschaffen durch meine Unfähigkeit.


PaSchu

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#48 von spielbahn ( gelöscht ) , 29.08.2015 20:00

Dieser Beitrag wurde von mir gelöscht.

Stattdessen:

Liebe Moderatoren,
in diesem Thread wurde eine ganze Sequenz von Beiträgen gelöscht - nicht einmal ein Hinweis, dass gelöscht wurde, ist übrig geblieben.
Es ist euer Forum und ihr könnt löschen und zensieren, wie ihr wollt. Es ist aber auch unser Forum und da hat eine solche Bevormundung für mich einen schalen Beigeschmack. Meiner Auffassung nach passt ein solches Vorgehen nicht zu einem offenen und freien Forum.


spielbahn

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#49 von PaSchu ( gelöscht ) , 30.08.2015 22:00

Hallo, ich habe den Sketch getestet, läuft super.

In den nächsten Tagen, werde ich mir den Code genauer ansehen.

Franz-Peter: Ich hab dir noch eine Idee per PN geschickt. Wenn sich da etwas machen ließe wäre das toll.


PaSchu

RE: Arduino: Schrankensteuerung - DCC-Ansteuerung für Betrieb und Justage

#50 von Bodo , 31.08.2015 07:49

Hallo zusammen,

Zitat von MicroBahner


@Ulli: Die Ansteuerung mit einem Schrittmotor ist sicher eine interessante Alternative. Was mich ein wenig abschreckt, ist der hohe Bedarf an IO's. Sollen beide Schrankenbäume unabhängig angesteuert werden, braucht man allein dafür 8 IOs. Gut - ist kein grundsätzliches Problem, gegebenenfalls müsste man die IO_s über I2C oder Schieberegister erweitern.



nachdem ich diesen Thread zunächst mit großem Interesse verfolgt habe, habe ich am WE mal einen Schrittmotor an ein Schieberegister gehängt - funktioniert einwandfrei. Mit zwei Schieberegistern und zwei ULN2803 lassen sich über drei Leitungen z.B. vier Motoren ansteuern.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.471
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


   

CAN-Stellpult oder analoges Stellpult mit LEDs für Weichen
Viessmann 5552 Umschaltrelais gehen ständig kaputt

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz