steppermotor timing

trix

Golden Member

stoppen bij de limitswitches met deceleratie werkt nu,

eigenwijs = ook wijs
trix

Golden Member

dit oude topic opgezocht omdat ik eigenlijk nog een vraag hierover heb.

ik gebruik dat stukje programma van sparkyGSX, en dat werkt heel mooi, alleen wil ik graag hier iets aan toevoegen en ik weet niet goed hoe. ik heb al het een en ander geprobeerd, maar zoder goed resultaat tot dus ver.

ik moet een 4-kant tekenen met een X-Y as.
dus eerst X naar rechts, dan Y naar onder, dan X naar links, dan Y naar boven. en het 4-kant is klaar.
eerst benaderde ik dit door 4 apparte lijnen te tekenen met ieder een eigen acc & dec, maar dan krijg je geen soepele overgangen in de hoeken.
dus nu wil ik dit als 1 lijn benaderen.
het aansturen van de X & Y as is geen probleem, dat werkt. alleen de acc & dec in de hoeken lukt nog niet.

als ik dit probleem een beetje versimpel, en ik zie het als 1 as (niet als losse X & Y as, dat switchen van de ene naar de andere as lukt wel).

dan is de vraag:
is de code van sparkyGSX aan te passen zodat er in het vlakke stuk v/d trapezium 3 keer extra kan worden gedecelareed en geaccelereerd ?
tnx.

eigenwijs = ook wijs

Ik begrijp niet zo goed wat je nu wilt; als je een vierkant wilt maken, met een hoek van 0 graden ten opzichte van je assen, moet de ene motor stilstaan voordat de andere in beweging komt, anders wordt het geen vierkant.

Ik begrijp ook niet goed wat er nu mis gaat met de bestaande code, als je wacht tot de deceleratie van de ene as klaar is voordat je de andere begint zou het allemaal goed moeten gaan.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Ik begrijp sowieso niet wat je tekening voor moet stellen.
Zoals ik het zie gaat de X beweging eerst omhoog, dan de Y naar rechts, dan weer de X omhoog en vervolgens de y nog verder naar rechts.
Het wordt dan een trapje met twee treden, maar nooit een vierkant.
Ongeacht wel of geen acceleratie en deceleratie.

Als je in beperkte mate de start van de ene laat overlappen met de laatste stop van de andere, dan worden de hoekjes wat ronder. Beide assen worden dan parabolisch aangestuurd, volgens mij levert dat bij behoorlijke benadering een ronde vorm op.

Ik heb een trapezium vorm geprogrammeerd, voor zowel x als y. Ik heb 20 steps accelleratie en deceleratie. Eerst met geen overlap en je krijgt een haakse bocht. Dan met 10 overlap door met Y te beginnen als X nog 10 deceleratie te gaan heeft. Dan krijg je dit:

Nadat ik was begonnen met typen ook even output van de snelheid gemaakt:

Gewoon zoals verwacht.

@brainbox: Onderste grafiek (gemarkeerd "simpel") is absolute snelheid van X en Y in 1 grafiek, het was duidelijker geweest om de tweede en vierde trapezium een andere kleur te gebruiken om aan te geven dat dat beweging van de Y is.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
trix

Golden Member

Op 24 mei 2021 22:01:31 schreef SparkyGSX:
Ik begrijp ook niet goed wat er nu mis gaat met de bestaande code, als je wacht tot de deceleratie van de ene as klaar is voordat je de andere begint zou het allemaal goed moeten gaan.

er is niks mis met de bestaande code, alleen als ik de assen 1 voor 1 aanstuur met de bij behorende richting:
X naar rechts
Y naar onder
X naar links
Y naar boven
dan zit er op elke overgang (hoek) een duidelijk stop moment, en dat heb ik liever niet.
dit wou ik dus oplossen door alle 4 de bewegingen als 1 beweging te programeren met op de hoeken een dec & acc actie.

eigenwijs = ook wijs

Wat wil je op de hoeken? Dat de X as plots stopt? Dat is iets wat een stappenmotor (of iedere motor) niet kan. Wil je dat de Y as instantaan vertrekt? Dat kan niet.

Als je een zichtbare accelleratie hebt, dan kan het best zijn dat je de versnelling wat hoger kan zetten, maar instantaan stoppen en starten dat kan niet.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
trix

Golden Member

nee dat is duidelijk :), ik zou graag zien dat de deceleratie van de X-as naadloos overgaat in de acceleratie van de Y-as.
maar ik ga vrijdag of zaterdag nog eens wat proberen, kijken of ik het dan voor elkaar krijg.
tnx.

eigenwijs = ook wijs

Tja, ik weet niet hoeveel "pauze" er is tussen het stoppen X en starten Y-as. Dat kan je natuurlijk tot nul reduceren. En een heel klein beetje overlap resulteert, zoals in mijn grafiek te zien is in een licht afgerond hoekje. In mijn voorbeeld hierboven doe ik het best grof met starten met Y-accelleratie terwijl de helft van de X snelheid er nog in zit....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/