BeneluxSpoor.net forum
Wat zijn we aan het bouwen? => Al het andere! => Topic gestart door: AP3737 op 08 October 2023, 20:02:32
-
Hallo allemaal
Voor mijn modelbaan wil ik armseinen plaatsen. Ik heb de afgelopen tijd via meerdere kanalen een voldoende aantal gebruikte Viessmann en Schneider signalen kunnen kopen. Een aantal zijn daarvan in uitstekende toestand, maar een aantal zijn van wat mindere kwaliteit of hebben een kapotte aandrijving.
Omdat de standaard Viessmann 4551 aandrijving niet erg betrouwbaar schijnt te zijn, wil ik ze verwijderen en door iets anders vervangen. Op dit forum, maar ook elders, zie ik dat veel mensen hiervoor servo motoren nemen, zoals de SG90.
Op een aantal plaatsen zie ik echter ook dat mensen micro steppers inzetten om wissels om te zetten. Goede voorbeelden die mij geïnspireerd hebben, zijn:
- Langsamer Weichenantrieb für C-Gleis mit Schrittmotor und DCC Steuerung: https://www.stummiforum.de/t213531f7-Langsamer-Weichenantrieb-fuer-C-Gleis-mit-Schrittmotor-und-DCC-Steuerung.html (https://www.stummiforum.de/t213531f7-Langsamer-Weichenantrieb-fuer-C-Gleis-mit-Schrittmotor-und-DCC-Steuerung.html)
- Langsamer Unterflur Weichenantrieb für Roco Line mit Schrittmotor: https://www.stummiforum.de/t213617f195-Langsamer-Unterflur-Weichenantrieb-fuer-Roco-Line-mit-Schrittmotor.html#msg2537173 (https://www.stummiforum.de/t213617f195-Langsamer-Unterflur-Weichenantrieb-fuer-Roco-Line-mit-Schrittmotor.html#msg2537173)
- Micro-Schrittmotoren und die MobaLedLib: http://www.erich-wedeking.de/Modellbahn/Anleitung%20Micro-Stepper%20und%20MobaLedLib.pdf (http://www.erich-wedeking.de/Modellbahn/Anleitung%20Micro-Stepper%20und%20MobaLedLib.pdf)
- Microsteppers voor bewegende pantograaf: https://forum.beneluxspoor.net/index.php?topic=105407.msg3222400193#msg3222400193 (https://forum.beneluxspoor.net/index.php?topic=105407.msg3222400193#msg3222400193).
Ik wil nu deze micro stappers zelf gaan gebruiken voor het omzetten van armseinen.
Misschien nog even voor de volledigheid. Omdat armseinen op de modelbaan relatief kwetsbaar zijn, wil ik ze uiteindelijk met een variant van de Wattenscheider Signalschacht (https://www.fremo-net.eu/index.php?id=339 (https://www.fremo-net.eu/index.php?id=339)) uitrusten, om ze relatief makkelijk uitneem- en verwisselbaar te maken. De schacht moet het liefst wat kleiner uitvallen dan bovengenoemde Fremo variant, en zal ik met behulp van mijn 3D printer drukken.
Maar eerst terug naar de Micro stepper motoren. Deze zijn bij Ali in vele varianten te koop. Ik heb voor mijn steppers €0,97 per stuk betaald bij de "Classic motor Store”. Daarbij komen nog de kosten voor verzending. Alleen bij deze winkel tel ik al 10 verschillende types, die allemaal een net iets andere vorm hebben en anders geprijsd zijn. Wat precies de verschillen zijn, weet ik niet; wat ik wel weet, is dat deze steppers door camera fabrikanten voor de auto-focus van lenzen worden gebruikt. Wat ik in ieder geval eenieder kan aanraden, is meteen voldoende motoren te kopen, want er is geen garantie dat je later van hetzelfde type nog genoeg kan bijbestellen.
De maten van de door mij gebruikte motoren zijn in onderstaande foto weergegeven. Met bijna 16mm breedte heeft de motor een duidelijk groter inbouwgat nodig dan Viessmann's 4551 "Stellantrieb". Op Aliexpress heb ik (later) echter ook smallere varianten gevonden.
(https://images.beneluxspoor.net/bnls_2023/Microstepper-bovenkant-afmetingen-6522ecd0bede2.jpg) (https://images.beneluxspoor.net/bnls_2023/Microstepper-bovenkant-afmetingen-6522ecd0bede2.jpg)
De motor kan een beweging van ongeveer 8,7 mm maken; dat is dus ruim meer dan de ruwweg 3,5 mm beweging die we nodig hebben voor de Viessmann armseinen. Om de hele 8,7 mm te overbruggen, maakt de motor ongeveer 1740 stappen. Dus per mm 200 stappen. Voor 8,7 mm zijn bijna 22 omwentelingen nodig. Na 1 omwenteling zijn 0,4 mm afgelegd, dus 80 stappen. Per stap is de draaing dus 4 graden, en de verplaatsing 5 micrometer. Net als bij normale stappenmotors, is het in theorie zelfs mogelijk door microstappen een 2, 4, 8 of 16 maal hogere precisie te halen. Dat lijkt me echter niet nodig.
Opgemerkt moet worden dat door speling in de lagers in de praktijk een precisie van 5 micrometer nooit gehaald zal worden. Voor het aansturen van armseinen is de precisie echter meer dan voldoende, en zeker beter dan we met servo motoren kunnen bereiken.
De gelijkstroomweerstand van de motoren is ongeveer 14 Ohm. Op een aantal plaatsen lees ik dat sommige mensen deze motoren rechtstreeks op een Arduino aansluiten en met 5V aansturen. Alhoewel dat in een aantal gevallen vast wel zal lukken, is dat volgens mij een slechte methode. Ten eerste kan de Arduino kapot gaan door de spanningspieken die ontstaan als de motor wordt aangestuurd. Ten tweede is de benodigde stroom van tientallen mA duidelijk hoger dan een Arduino kan leveren. En als door een programmeerfout of wat dan ook de puls niet tijdig wordt uitgezet, dan zal er een stroom van 5 (Volt) gedeeld door 14 (mA) is 350mA gevraagd worden. Geen enkele Arduino overleeft dat.
Het is (volgens mij) dus belangrijk dat er tussen de Arduino en de motor een driver komt. Die bestaan in vele vormen, maar ik heb gekozen voor de wel bekende A4988 drivers, die je voor ongeveer 80 cent al bij Ali kan kopen. Deze zogeheten Stepstick printjes worden veel gebruikt voor CNC freesmachines en 3D printers. De A4988 driver is al lang op de markt en er zijn duidelijk betere drivers te koop (DRV 8825, TMC2209). Deze nieuwere drivers zijn echter wat duurder, en hebben voor de aansturing van de microsteppers geen extra voordelen.
De drivers hebben een voedingsspanning nodig van minimaal 8V. Ik heb gekozen voor ongeveer 16V, zodat ik het (gelijkgerichte) DCC signaal kan gebruiken. Voor de niet-elektrotechnici lijkt 16V misschien erg veel voor dit soort kleine motortjes, maar men moet weten dat de drivers ervoor zorgen dat de motoren niet gestuurd worden door er een bepaalde spanning op te zetten (spanningsbron), maar door er een bepaalde hoeveelheid stroom door de sturen (stroombron). Door het verhogen van de spanning op de drivers, kan er kortstondig meer stroom door de motoren lopen, zodat ze meer kracht kunnen ontwikkelen. Over kracht gesproken, deze motoren hebben meer dan voldoende kracht voor allerlei andere modelbaan toepassingen, zoals het omzetten van wissels.
Op de A4988 stepper drivers printjes heb ik de maximale stroom beperkt tot 400mA. Dat lijkt veel, maar voor ieder stapje wordt slechts kort stroom benodigd. Als de motoren in beweging zijn, is de gemiddelde stroom iets als 60mA.
Zoals hierboven al is geschreven, wil ik de stepper motoren gebruiken ter vervanging van de Viessmann 4551 aandrijving. Ik heb daarom een 3D houder ontwikkeld, die op de voet van de Viessmann seinen past. Hieronder een foto van een eerste versie van deze houder, met daarnaast de Viessmann aandrijving.
(https://images.beneluxspoor.net/bnls_2023/Foto-Houder-vs-Viessmann-1-6522ecfaefb21.jpg) (https://images.beneluxspoor.net/bnls_2023/Foto-Houder-vs-Viessmann-1-6522ecfaefb21.jpg)
Om te voorkomen dat het sein kapot gaat, moet ervoor worden gezorgd dat de beweging nooit meer is dan 3,5mm. Op onderstaande foto is goed te zien dat er daarom een nokje op de houder zit die deze beweging tot 3,5mm beperkt. Ook is het schroefje te zien waarmee de steldraad voor het bewegen van het sein gefixeerd wordt. Dat gaat erg makkelijk: als de motor tegen het bovenste nokje aanloopt, heeft het zijn maximale positie bereikt. Op die positie moet het sein in rust zijn, en kan de steldraad eenvoudig worden vastgeschroefd. Verdere afstelling is niet nodig; volgens mij is dat (naast de prijs) één van de grootste voordelen van deze aanpak!
(https://images.beneluxspoor.net/bnls_2023/Foto-Aandrijving-AP-6522ed1d01731.jpg) (https://images.beneluxspoor.net/bnls_2023/Foto-Aandrijving-AP-6522ed1d01731.jpg)
Misschien ten overvloede: deze stepper motoren kan je zonder problemen korte tijd tegen de mechanische begrenzing aan de onder- dan wel bovenkant laten aanlopen. Er gaat daarbij niets kapot. Het is dus ook niet nodig om aan het einde van een treinsessie de positie van de seinen te onthouden; tijdens een volgende sessie kan je ze gewoon even heen en weer bewegen, waarna je ze weer in een gedefinieerde stand hebt staan.
Alle files om de houder zelf met een 3D drukker te maken heb ik op Printables.com gezet: https://www.printables.com/model/607339-microsteppers-for-model-train-signals-version-1
Opgemerkt moet worden dat dit een eerste versie is, die ik al wel enige dagen getest heb, maar het is nog niet de uiteindelijke versie is. Ik wil namelijk nog een kleine decoder print maken met daarop een "Arduino-achtige" processor (AVR DxCore) en een A4988 driver IC. Daarvoor zal ik tzt een tweede versie maken, en de printplaat voor geïnteresseerden via OSHWLab beschikbaar stellen. Ook zal ik dan een kleinere variant van de Wattenscheider Signalschacht moeten maken. Maar voordat dat zover is. wil ik eerst nog wat andere projecten afronden. Wordt dus vervolgd.
Voordat ik het vergeet: ik heb ook een video gemaakt waarin ik (nou ja, een door AI gegenereerde stem) alles nog een keertje vertel: https://youtu.be/WzQ2PCh7Bec
https://www.youtube.com/v/WzQ2PCh7Bec
Dat was het voor vandaag. Ik hoop dat ik hierdoor weer anderen inspireer om ook zelf met dit soort micro-steppers te gaan experimenteren.
Aiko
...
-
Hartelijk dank voor het uitgebreid delen van jouw ervaringen met dit alternatief voor een servo aandrijving. Interessant! Ik ga mij er in verdiepen.
Tom
-
Interessant verhaal, mss heb ik ook nog wel zo'n ding liggen uit een gesloopte compactcamera.
-
Het is dus ook niet nodig om aan het einde van een treinsessie de positie van de seinen te onthouden
Misschien niet, maar het kan wel dus waarom ook niet? Ik denk dat je met 100.000 write cycles van je EEPROM nooit tegen de lamp zal lopen. En anders bestaan er nog simpele truukjes om dat over meer bytes te smeren. Met 1.000.000x onthouden zit je zeker weten wel goed.
unused memory is wasted memory
Bas
-
Mooi gemaakt (y)
-
Mooie toepassing en duidelijk filmpje!
-
Aiko,
Geweldig.
Jij hebt gewoon gedaan wat ik zou willen.
Klasse. Ik ga dit ook proberen.
Het lost mijn inbouwhoogte probleem op.
Als ik tenminste de micro stepper gebruik waarbij de motor niet achter de schroefdraad maar naast de schroefdraad is geplaatst.
(https://images.beneluxspoor.net/bnls_2023/S9189b2a081a94440b280db87c8b79af8S-6523e10a246ad.jpg) (https://images.beneluxspoor.net/bnls_2023/S9189b2a081a94440b280db87c8b79af8S-6523e10a246ad.jpg)
en de link https://de.aliexpress.com/item/4001186825999.html (https://de.aliexpress.com/item/4001186825999.html)
Dank voor de inspiratie en het delen van je kennis.
Eric (y) (y) (y)
-
Beste allemaal
In de eerste plaats dank voor jullie positieve reacties. Dat motiveert altijd weer om verder te gaan (y)
@Bas: Ik ben het met je eens dat 100.000 schrijf operaties waarschijnlijk nooit gehaald worden. Ik vermoed ook dat ik in mijn code later de positie wel gewoon zal opslaan, maar het is altijd goed te weten dat je de steppers gewoon "door kan laten lopen", ook al komen ze tegen de begrenzer aan.
anders bestaan er nog simpele truukjes om dat over meer bytes te smeren.
Ik ben benieuwd of die truukjes ook werken als je maar 1 (binaire) byte waarde hoeft op te slaan?
@Eric
Het lost mijn inbouwhoogte probleem op.
Als ik tenminste de micro stepper gebruik waarbij de motor niet achter de schroefdraad maar naast de schroefdraad is geplaatst.
Ik denk dat je inderdaad heel weinig diepte nodig hebt. De door jouw getoonde steppers zijn een stuk minder lang dan die ik heb gebruikt, maar zouden ook prima moeten werken.
Omdat je daarvoor (misschien) een nieuwe houder gaat ontwerpen, hierbij nog een tip. Ik heb zelf veel tijd verloren met mijn pogingen om met de digitale schuifmaat de precieze maten op te nemen. Na meer dan een uur realiseerde ik mij dat ik in het 3D teken programma (ik gebruik Fusion 360) ook een foto op de achtergrond (Canvas) kan leggen. Die kan je heel makkelijk calibreren, waarna het vooral "overtrekken" van vormen is.
Misschien zijn er mensen die denken dat de programmering van de Arduino vast heel moeilijk zal zijn. Voor hen hieronder een stukje "demo code"
// Test for microsteppers
// No external libraries are used
// Adjust pins, steps and time as needed
const byte stepPin = 2; // GRBL X-steps
const byte dirPin = 5; // GRBL X-Dir
const byte enablePin = 8; // GRBL Enable
const unsigned int delayOn = 2000; // in microseconds
const unsigned int delayOff = 2000;
void run(long NumberOfSteps, byte Direction) {
digitalWrite(dirPin, Direction);
digitalWrite(enablePin, LOW);
for (long i = 0; i < NumberOfSteps; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(delayOn);
digitalWrite(stepPin, LOW);
delayMicroseconds(delayOff);
}
digitalWrite(enablePin, HIGH);
}
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
run(2000, HIGH);
delay(4000); // waits for 4 second
}
void loop() {
run(700, LOW);
delay(4000); // waits for 4 second
run(710, HIGH);
delay(10000); // waits for 10 seconds
}
Bovenstaande code is vooral ter illustratie hoe simpel het kan. Ik zal het later zeker anders doen, zodat ik ook "nawippen" en andere ongein kan doen. Ook gebruik ik in mijn "productie code" nooit zaken zoals "delayMicroseconds" en "delay", die de rest blokkeren. Voor wat betreft het "nawippen" zal ik de aanpak van het OpenDCC forum overnemen (https://www.opendcc.de/elektronik/opendecoder/opendecoder_sw_segment.html (https://www.opendcc.de/elektronik/opendecoder/opendecoder_sw_segment.html)).
Groet, Aiko
-
Aiko,
ik kom met specifieke vragen (via een PB) op de lijn bij je .
Mooi dat je zo uitgebreid op dit forum informeert. (y)
Zo kunnen we meer mensen profiteren.
Eric
-
Dag Aiko, zeer geïnteresseerd, dus ga ik je volgen. Vraagje; ik zie naar mijn idee Duitse seinen maar kan dit ook met Nederlandse seinen ( in hO)? Alvast dank voor je antwoord, groet, NS2408
-
Dag NS2408
Dank :)
Vraagje; ik zie naar mijn idee Duitse seinen maar kan dit ook met Nederlandse seinen ( in hO)?
Dat zou volgens mij geen probleem moeten zijn. Alle armseinpalen die ik ken zou je ermee kunnen bedienen.
Groet, Aiko
-
Top Aiko (y)
Zeer interessante informatie.
-
Aiko,
Fijn dat je je ervaring en kennis hier deelt. Ik kijk graag mee en laat me graag inspireren.
Ik heb al een tijd deze motortjes liggen met het idee om er ooit iets mee te doen, maar als iemand er al mee begint, blijft er meer tijd over voor andere projectjes. :-)
Henk
-
Zou je dit ook kunnen gebruiken met 'normale' digitale componenten (denk hierbij aan ESU of YaMorC)? Mogelijk zelfs ook mbv loc- of functiedecoders (dan denk ik aan het openen van duren in goederenwagens, bewegen van pantografen ect.).
En zo ja, welke aansturing gebruik je dan?
-
Wij doen dat met DCCnext van Arcomora net als de wissels en veel meer, €gunstig
-
Zou je dit ook kunnen gebruiken met 'normale' digitale componenten (denk hierbij aan ESU of YaMorC)? Mogelijk zelfs ook mbv loc- of functiedecoders (dan denk ik aan het openen van duren in goederenwagens, bewegen van pantografen ect.).
En zo ja, welke aansturing gebruik je dan?
Ik was tijdje geleden begonnen met zelfde soort motor voor gebruik voor pantografen. Zou ook in een goederenwagon passen voor een deur.
https://forum.beneluxspoor.net/index.php?topic=105407.msg3222400193#msg3222400193 (https://forum.beneluxspoor.net/index.php?topic=105407.msg3222400193#msg3222400193)
Mijn 1e variant kan je aansluiten op een Lok pilot of op een schakelaar of een stationaire decoder. De nieuwe die ik maak, geef ik ook DCC. Dan kan die alles en heb je geen andere apparatuur nodig. Een DCC interface kost ook een cent ofzo als je weerstandjes gebruikt.
Wij doen dat met DCCnext van Arcomora net als de wissels en veel meer, €gunstig
Heb jij het niet over servo's? DCCnext heeft geen software voor stappenmotoren. Het kan, maar die moet je er zelf in programmeren. Je kan wel met de pinnen direct een stepper driver aansturen. Maar m.i. zou dat de verkeerde tool voor de job zijn. Als je toch al een printje maakt, kost het heel weinig (~€1,-) om er een microcontroller op te zetten.
Ik denk dat als je ongeveer 20 van deze printjes besteld, dat je op een fabricage prijs uitkomt van tussen de €3,- en €4,- per stuk. En voor dat geld hoef je niet te klooien met een losse DCC next en losse stepper drivers. Gewoon 2 DCC draden aansluiten en klaar.
Bas
-
Heb jij het niet over servo's?
Je hebt gelijk Bas, was even in de war, inderdaad gebruik ik het met name voor servo’s.
Aansturing van de draaischijf stepper met Nano’s, DCC gestuurd.
Bewegingen die fraai moeten zijn: steppers. Microcontrollers lijkt me interessant maar daar weet ik nog niet genoeg van. Kun jer er in detail op terug komen, schema…. ::)
???
Ik kom nu nog niet verder dan Arduino of wellicht ESP8266 ( heb er net een aantal besteld om in te bouw in de eigen car systeem vrachtwagentjes, lijkt me goed te kunnen, kleiner dan een Nano)
-
Voor diegenen die het vervolg willen lezen kijk op deze link
https://forum.beneluxspoor.net/index.php?topic=113837.msg3222549512#msg3222549512 (https://forum.beneluxspoor.net/index.php?topic=113837.msg3222549512#msg3222549512)
-
Zeer goede informatie. Ik heb ook overwogen om deze motortjes te gebruiken. Dus deze informatie is zeer welkom.