Auteur Topic: Aandrijving inbouwen in handdraaischijf  (gelezen 37115 keer)

0 leden en 1 gast bekijken dit topic.

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #50 Gepost op: 1 februari 2022, 20:14:00 »
De 3D printer is voorlopig druk:

https://www.thingiverse.com/thing:1837520

Dan ga ik Rob fijn even na-apen:)
Maak er wel een separaat draadje van

Offline iTom

  • Super Modelspoorder
  • ******
  • Berichten: 5.276
  • Thanked: 143 times
  • Geslacht: Man
  • Blijf braaf, gezond en modelbouwen.
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #51 Gepost op: 2 februari 2022, 08:15:39 »
Bert, die url werkt hier niet.
ROCO Proline zonder bedding: DR5000 DIGIKEIJS/LocoNet, DCC: iTrain 5 pro:Rosoft s88: h0

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #52 Gepost op: 2 februari 2022, 09:01:27 »
Dank Tom, heb hem aangepast

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #53 Gepost op: 14 februari 2022, 15:34:59 »
Met Rob al even van gedachte gewisseld, voor een ieders vermaak hier verder.

Wat heb ik:
Proefopstelling met een stepper+driver en Arduino nano. Ik gebruik de standaard Arduino SW.
Met een simpel voorbeeld programma gaat de stepper draaien, dus stepper en Arduino zijn ok lijkt me.

Met de sketch van Rob komt de stepper niet in beweging, ook niet het zoeken naar de 0 positie.
Bij het uploaden de eerste keer had ik een fout, accellstepper was niet geladen, gedaan en vervolgens geen error.
Ik heb een oscilloscoop. Op alle 4 de driver ingangen geen pulsen (2 zijn constant hoog, 2 laag), de 4 aangesloten ledjes gaan wel knipperen totdat het in alarm gaat (rode led op de nano)

Wat kan dit zijn? Is de geladen AccelStepper ok? Ik zie by Patrick Wasp versie 1,61.0 staan.

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.628
  • Thanked: 156 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #54 Gepost op: 14 februari 2022, 17:21:27 »
Hoi Bert,

Misschien een open deur, maar je hebt de stappenmotor(controller) aangesloten op pinnen D2, D3, D4 en D5 van de Arduino?
Zo niet, dan de aansluiting of de definitie in de sketch aanpassen.

Dat laatste doe je met deze definities in de sketch:
// motor pins
#define motorPin1  2   // Blue   - 28BYJ48 pin 1
#define motorPin2  3   // Pink   - 28BYJ48 pin 2
#define motorPin3  4   // Yellow - 28BYJ48 pin 3
#define motorPin4  5   // Orange - 28BYJ48 pin 4

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #55 Gepost op: 14 februari 2022, 17:32:06 »
Gut wat stom. Ik had ergens in jouw draadje D9-D12 gelezen. De trackleds zitten op 2-5 ipv 9-12
Vandaar dat de leds fanatiek knipperen
Ff Aanpassen/proberen straks

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #56 Gepost op: 14 februari 2022, 19:32:38 »
Nou dat gaat een stuk beter…. ;D
Hij draait heel langzaam totdat ik even startpin 8 even een 0 geef. Dan draait hij een stukje terug en gaat wachten. Vervolgens bij kiezen van een track loopt hij er keurig naartoe. Ben er blij mee.
Morgen verder. In ieder geval de speed een stuk hoger, denk dat hij nu 10 minuten over een rondje doet door de vertraging. Denk ongeveer 1 minuut voor 360 graden?
Rob:
Ik zie max speed op 55 staan. Eerst maar naar 300?
Startturnspeed evenredig omhoog?

En wat is turnacceleration? Is dat een tijdsfactor of het aantal stappen dat hij op lage snelheid gaat?

Verder liggen bij mij door de vertraging de trackposities veel verder uit elkaar.

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.628
  • Thanked: 156 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #57 Gepost op: 15 februari 2022, 08:31:22 »
Hoi Bert,

Mooi.
Rob:
Ik zie max speed op 55 staan. Eerst maar naar 300?
Startturnspeed evenredig omhoog?

En wat is turnacceleration? Is dat een tijdsfactor of het aantal stappen dat hij op lage snelheid gaat?

De instellingen heb ik allemaal proefondervindelijk vastgesteld. Het mooie van de accelstepper bibliotheek is dat hij (vrij) nauwkeurig het aantal stappen bepaalt, onafhankelijk van acceleratie, snelheid en vertraging. Dus ik zou gewoon wat met de snelheid instellingen pielen tot het naar tevredenheid is.
Verder zijn de hoeken tussen de sporen (= aantal stappen vanaf de nulpositie) per spoor in te stellen. Dat kun je uitrekenen en/of uitproberen. (Bij mij was het uitrekenen, en dan precies op de stap juist krijgen door te proberen).

En als je wat verder bent, is ook de speling (slack) nog in te stellen. De motor maakt wat extra stappen bij het wisselen van de draairichting om eerst de speling "op te vullen" tussen motor-as en brug.

Ik ben wel benieuwd naar wat foto's :)

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #58 Gepost op: 15 februari 2022, 08:46:20 »
Dank je Rob!
Ga vandaag er nog verder mee.

Zal ook foto’s plaatsen.
Het is nog wel van een testopstelling. Houten balkje met tandwielen en deel van de brug.
Voor de schijf moet nog wat van tante Ali landen.

Ik heb tevens een schema gemaakt van de aansluitingen. Post ik ook


Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.628
  • Thanked: 156 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #59 Gepost op: 15 februari 2022, 08:57:36 »
Hoi Bert,

Prima. En testopstellingen laten vaak goed zien hoe het werkt (alle aandrijvingen en draden liggen meestal bloot) :)

Ik heb tevens een schema gemaakt van de aansluitingen. Post ik ook
Ah top. Zo'n aansluitschema ontbreekt inderdaad nog.

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #60 Gepost op: 15 februari 2022, 14:23:45 »
Eerst het schema:


Indien er verduidelijking / aanpassingen gewenst zijn hoor ik dat graag!
Kennelijk heb ik de weerstanden iets anders in elkaar gezet dan Rob, in de sketch de posities verschoven:
int buttonBoundary[] {1000, 800, 600, 400}; // voltage divider boundary values between buttons on buttonsPin initieel:800, 500, 400, 200


En de proefopstelling:

Hij loopt erg fraai, precies kan ik het later zien zodra de echte schijf gebouwd wordt over een paar weken.

Snelheid in de sketch heb ik met een factor 10 verhoogd ivm de vertraging, idem de posities.
~26.500 stappen is 1 omwenteling. Bij een schijf van ruim 30cm doorsnede kom ik dan op ruwweg 27 stappen per mm verplaatsing.

Ik gebruik nu een IR tunnel voor de 0 positie, daarom heb ik 'high' in 'low' veranderd in de sketch.

Verder moet ik uiteindelijk het aantal track posities nog flink uitbreiden, dat komt later.

Nog 1 dingetje Rob: door de vertraging duurt het zoeken naar de 0 positie erg lang, kan nog niet vinden waar de zoeksnelheid staat.
Dacht dat ik het gevonden had maar hier aanpassen maakt geen verschil:
 stepper1.setMaxSpeed(10);// verhoogd van 1 naar 10
  stepper1.setAcceleration(500.0);
  stepper1.setSpeed(10); // verhoogd van 1 naar 10


??





Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #61 Gepost op: 15 februari 2022, 14:53:27 »
Schema wordt nog aangepast, heb de library van de nano gevonden, maakt het nog wat beter denk ik

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #62 Gepost op: 15 februari 2022, 16:44:57 »
Hierbij het aangepaste schema, er zat ook een foutje in, de 0 detectie zat op een verkeerde poort getekend
Tevens de 4 led weerstanden vervangen door 1, Rob merkte terecht op dat er toch maar 1 led tegelijk aan is

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.628
  • Thanked: 156 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #63 Gepost op: 15 februari 2022, 17:05:55 »
Ziet er goed uit, Bert.

En bedankt voor het aansluitschema, dat maakt het allemaal wat duidelijker.
Over die "0 positie" pin: in de eerdere versie van de sketch zat deze inderdaad op een andere (analoge) poort; ik heb dat later omgezet naar een digitale (D8).

Nog 1 dingetje Rob: door de vertraging duurt het zoeken naar de 0 positie erg lang, kan nog niet vinden waar de zoeksnelheid staat.
Dacht dat ik het gevonden had maar hier aanpassen maakt geen verschil:
 stepper1.setMaxSpeed(10);// verhoogd van 1 naar 10
  stepper1.setAcceleration(500.0);
  stepper1.setSpeed(10); // verhoogd van 1 naar 10

??

Daar is niet zo heel veel aan te doen, Bert. De sketch werkt nu zo dat de stappenmotor steeds een klein stukje (1 stap) draait, en dan wordt gekeken of de 0-positie sensor al iets doet. Zo niet, weer een stukje draaien, enzovoorts. Dus dat is inherent traag.
Daar is vast ook wel iets met een interrupt te programmeren, of zo, maar dat heb ik (nog) niet gedaan.

Wat je eventueel kunt doen is meerdere stappen tegelijk nemen; met 27 stappen in een mm is 3 of 4 stappen nauwkeurig genoeg, denk ik.  Dat heb ik niet in een definitie opgenomen, maar het staat in dit stukje code
  // now keep turning the table slowly until start point sensed
  do {
    stepper1.runToNewPosition(x);
    x++;
  } while ( (digitalRead (startPin) == HIGH) && (x < maxSteps) ); //run until sensor active, or until max steps done (error)

Deze gaat 3x zo snel door
x++;
te vervangen door
x=x+3;

Het beste is om de draaischijf weer vlak bij die 0-positie te zetten voor je de stroom er af haalt. En anders moet je de volgende keer wat langer wachten.... ;)

Of een wat slimmer algoritme bedenken met grote stappen richting 0 positie, en zodra gevonden nog met wat kleine stappen heen-en-weer om de precieze 0 te vinden. Bijvoorbeeld eerst met 30 stappen tegelijk draaien. Zodra de ongeveer de 0 positie gevonden is, eenmaal 30 stappen terug, en dan weer per stap vooruit tot de echte 0 positie.

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #64 Gepost op: 15 februari 2022, 17:38:42 »
Bedankt voor het meedenken Rob!
Ga dat stukje code proberen. Aan jouw andere optie had ik ook even gedacht, snel naar 0 positie en dan ff langzaam heen en weer. Misschien iets voor later maar wellicht laat ik het zo, tiedzat

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #65 Gepost op: 15 februari 2022, 18:57:45 »
Hoi Rob,
Ik zit alvast naar meerdere tracks te kijken. De sketch erop aanpassen lijkt me niet al te ingewikkeld. Wel loop ik tegen de limiet aan wat betreft
D-uitgangen, alleen D6 en D7 zijn nog over.

Kunnen er daarvoor ook analoge uitgangen gebruikt worden?

Anders kan ik er wellicht wat logische poorten tussen planten

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #66 Gepost op: 15 februari 2022, 21:59:51 »
Mooi goedkoop printje gevonden, 16 kanaals (de)multiplexer:


Wordt wel wat gepiel met de code

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #67 Gepost op: 16 februari 2022, 10:38:42 »
Rob: Indien je liever een separaat draadje ziet laat het dan even weten!

Op de brug moeten nog 2 sperseinen komen.
Schema erop aangepast. Met 1 nano uitgang moet rood en wit geschakeld kunnen worden. Klein nadeel: 4 draadjes naar elk sein ipv 3. Denk nog een Mosfet ertussen of een relais om de nano niet teveel te belasten.
Tevens de sleepring erbij getekend.


Klussen te gaan wat betreft de sketch:
Aantal tracks verhogen naar ~8
Multiplexen van de track leds
Schakelen van de sperseinen. Gedachte: commando bewegen, sein op rood, wachttijd, schijf naar volgende positie, wachttijd, sein weer op wit.

Of me dat allemaal gaat lukken weet ik niet, met wellicht een beetje hulp vast wel. Vanuit mijn jonge jaren heb ik een beetje ervaring met Basic, daar lijkt C wat op

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.628
  • Thanked: 156 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #68 Gepost op: 16 februari 2022, 16:35:28 »
Hoi Bert,

Lekker bezig!

Ik zit alvast naar meerdere tracks te kijken. De sketch erop aanpassen lijkt me niet al te ingewikkeld.
Klopt, als het goed is hoef je alleen maar de definities naar de sporen uit te breiden:
#define numberOfTracks      4              // number of tracks on turntable
                                           // arrays below must correspond with number of tracks:
int track[]        {-37, -207, -473, -643}; // positions for 4 turntable tracks (motor steps from 0)

En natuurlijk het aantal knoppen in de spanningsdeler en de daarbij behorende grenswaarden.
int buttonBoundary[] {800, 500, 400, 200}; // voltage divider boundary values between buttons on buttonsPin
(Al had jij al andere waarden, volgens mij)

Wel loop ik tegen de limiet aan wat betreft D-uitgangen, alleen D6 en D7 zijn nog over.

Kunnen er daarvoor ook analoge uitgangen gebruikt worden?
Ja, volgens mij kun je ook gewoon een digitalWrite() naar analoge uitgangen doen met laag en hoog. Maar je kunt ook overwegen om op een andere manier de terugmelding te doen dan een led per spoor. Misschien met een segmentdisplay of slechts één led die aangeeft of er een commando bezig is of niet (en dat je zelf onthoud waar-ie heen gaat, of je ziet dat als de draaischijf klaar is met draaien).
Het eenvoudigste om met minder dan 8 leds iets te doen is om deze Array de LEDS te hergebruiken. Bijvoorbeeld zo
int ledPins[] {trackled1 ,trackled1, trackled2, trackled2, trackled3 ,trackled3, trackled43, trackled4};   // array for light track moving to or pointing at
Op deze manier zijn de sporen per 2 gebundeld op 1 led. Wel zo simpel, toch?

Rob: Indien je liever een separaat draadje ziet laat het dan even weten!
Nee hoor, wat mij betreft is dit een aardige uitbreiding, hoor.


Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #69 Gepost op: 16 februari 2022, 17:32:48 »
Wederom dank Rob!

Mij valt overigens op dat de simpele stepper zeer weinig geluid maakt.
Tracks is duidelijk!
Tevens de spanningsdeler.
Weet je wat de resolutie is van de deler, maw hoeveel weerstanden max? 10 zal zeker kunnen, alleen nieuwsgierigheid.

Wat betreft de trackleds. Prima zo’n array! Denk nog een typo te zien, 43 zal denk ik 4 moeten zijn.
Wel overweeg ik toch 1 led per track. Ben van plan een bedieningspaneel te maken met de schijf erop en in een cirkel schakelaars met trackleds. Daarnaast schakelaars/leds voor de wissels (aansturing via DCC Next

En dan nog de seinen.

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #70 Gepost op: 16 februari 2022, 17:40:09 »

Deze gaat 3x zo snel door
x++;
te vervangen door
x=x+3;


Ik merk geen verschil in snelheid. Is ook onbelangrijk, de eerste positie staat nu net een stukje naast de 0 detectie. Inderdaad prima om vanaf daar in te schakelen

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #71 Gepost op: 16 februari 2022, 19:11:05 »
Kreeg nav jouw suggestie om de leds dubbel te gebruiken een idee, kan niet vinden of dit kan.

Jouw voorstel:

int ledPins[] {trackled1 ,trackled1, trackled2, trackled2, trackled3 ,trackled3, trackled4, trackled4};   // array for light track moving to or pointing at

Is zoiets te doen:

int ledPins[] {0000, 0001, 0010, 0011 enzovoort}; 
Dus op index 0 alle leds uit, op index 1 led1 aan, dan led2, dan led 1 plus2 enzovoort.
Wordt dan (t=trackled):
{,t1, t2, t1+t2, enz}

Eigenlijk 2 vragen:
1: kun je springen in een array met een “,” (index 0 overslaan)
2: kun je op 1 index 2 leds aanzetten. En zo ja met welk scheidingsteken, ik gebruikte de “+”

Indien dit werkt kan ik eenvoudig de-muxen van 4 naar 16


Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #72 Gepost op: 16 februari 2022, 20:21:00 »
Dit wordt gecompileerd, dus syntax is ok, morgen kijken wat het doet:
int ledPins[] {trackled1 ,trackled2 & trackled3, trackled3, trackled4};   // array for light track moving to or pointing at

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #73 Gepost op: 16 februari 2022, 21:42:04 »
excuus voor alle vragen Rob:)
Hoe werkt de analoge read?
Stel de weerstanden hebben een hoge tolerantie (niet bij mij, gebruik 1% exemplaren)
Stel een range is als (100, 200, 300, 400, 500, 600) ingesteld en de schakelaar waarde is 540. Wat gebeurt er dan? is er een vangbereik? In de sketch kan ik het niet vinden.
Misschien wat het dichtste bij zit?

Offline Bert

  • Stationchef
  • ***
  • Berichten: 196
  • Thanked: 13 times
  • Geslacht: Man
Re: Aandrijving inbouwen in handdraaischijf
« Reactie #74 Gepost op: 16 februari 2022, 22:13:44 »
Dit wordt gecompileerd, dus syntax is ok, morgen kijken wat het doet:
int ledPins[] {trackled1 ,trackled2 & trackled3, trackled3, trackled4};   // array for light track moving to or pointing at

Volgens mijn zoon gaat het niet werken met "&"
Hij is IT-er, gaat de sketch ombouwen, resultaat plaats ik tzt wel