Afwijkingen coördinaten 3D printer

Hallo,

Zoals in dit topic besproken (https://www.circuitsonline.net/forum/view/148169 ), heb ik de sturing van mijn 3D printer aangepast van een volledig zelf gemaakte sturing met H-bruggen naar een sturing via stepper motor drivers.

Wat nu een nieuw probleem is: vb. als ik na het printen van een éénwandige cylinder met diameter 1 cm en hoogte 1 cm (1000 punten), de printkop terug naar de nulpositie beweeg, staat de printkop 0,5 mm meer naar rechts en 0,7 mm meer naar boven.
Bij grotere objecten met meer punten, is de afwijking groter (steeds in dezelfde richting en de totale afwijking lijkt evenredig te zijn met het totaal aantal punten).

De software in de PIC is gelijkaardig met mijn oude sturing, bij mijn oude sturing was dit probleem echter niet aanwezig! Ik heb "software feedback": bij iedere puls die gegeven wordt, wordt de waarde van een variabele ook verhoogd/verlaagd, deze variabele wordt terug naar de pc gestuurd om de coördinaten van de huidige positie aan te passen.

Het probleem kan ik niet vinden, maar ik zou een "hardware feedback" willen introduceren.
Bestaan er devices om de huidige x en y coördinaten te meten met goede resolutie? Ik dacht aan iets in de aard van een analoge/digitale schuifpotentiometer met een lengte van 30 cm?

Voor wie toch nog de code zou willen zien (maar het is dus eigenlijk niet mijn vraag om dit na te kijken ;-) ):

PIC (Mikrobasic):

PIC.pdf

PC Visual basic, zenden:

zenden.pdf

PC Visual basic, ontvangen:

ontvangen.pdf

mod edit:
enorme lappen code verwijderd ivm leesbaarheid.
In PDF teruggeplaatst

[Bericht gewijzigd door GJ_ op maandag 30 maart 2020 08:06:15 (98%)

Arco

Special Member

Krijg je per letter betaald bij de variabelenamen? :)
Duidelijkheid is goed maar zulke onnodig lange namen maakt 't onleesbaar...

Ik zou trouwens niet gauw zelf aan zoiets beginnen. 3d stuurprinten kosten bijna niks en er zit uitstekende firmware in...
(waarom het wiel opnieuw uitvinden?)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Heb je suggesties voor goede stuurprinten?

Die ook compatibel zijn met wat ik reeds heb:
-stappenmotors: Nema 17: 17HS4401
-deze stepper motor drivers: https://nl.aliexpress.com/item/32828353917.html?spm=a2g0s.9042311.0.0.…
-de stappenmotors staan op M10 draadstangen, printkop wordt voortbewogen via moeren hieraan. (Dus 1 omwenteling --> verplaatsing van 1,5 mm)
-mijn constructie is ook omvormbaar tot CNC frees

bprosman

Golden Member

RAMPS en GRBL zijn je zoektermen.
Daar vind je complete besturingen.
Je mist geen stappen ?

Zelf heb ik de voorganger van jouw drivers gebruikt :
https://www.circuitsonline.net/forum/view/135366

[Bericht gewijzigd door bprosman op zondag 29 maart 2020 20:53:45 (37%)

De jongere generatie loopt veel te vaak zijn PIC achterna.

Een paar paginas code doorspitten doe ik niet voor de lol. Sorry.

Kans is dat je op de een of andere manier stappen mist. Normaliter is dat een uitspraak die het heeft over de hardware: Jij stuurt snel een paar stappen en de motor is te traag en mist uiteindelijk 1 hele stap.

Met de drivers die je hebt is het zo dat je ze normaliter instelt om aan microstepping te doen. Dan is 1 stapje missen veel minder dan een paar micrometer. Jij doet..... 200 volle stappen per 1.5mm Hmm. 7.5 um per volle stap. Misschien is microstappen dan niet nodig. Maar je moet wel uitkijken dat je dan snel stappen kan missen.

Maar zoals je het uitlegt: ik denk aan: Zou het kunnen dat je DIR signaal te laat aanpast, dus dat voor iedere "richting veranderende" commando ie de verkeerde kant op gaat?

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

Special Member

Zolang er niets slipt zou softwarematige positiebepaling prima moeten werken (zo doen alle printers het bijna.)
Ik ga die onleesbare brij niet doorspitten, dan zou ik het eerst moeten 'vertalen'... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Was ook niet de bedoeling dat jullie de code zouden ontrafelen ;-)

Aangezien de code die ik gebruikte bij mijn oude sturing zeer gelijkaardig was en het probleem daar niet aanwezig is, vermoed ik ook dat het probleem aan de hardware moet liggen.

Momenteel gebruik ik geen microstepping, maar zal dit eens proberen. Hoeveel µm per stap is gebruikelijk?
Wanneer ik de snelheid lager zet dan 4 mm/sec, maakt het enorm veel lawaai. Dit kan ook opgelost worden door microstepping te gebruiken?

Het is zeker mogelijk dat er iets misgaat bij het veranderen van richting. Het DIR signaal wordt wel steeds aangepast voordat er pulsen gegeven worden, maar er zit wel geen vertraging tussen. Zal eens proberen van er een wachttijd tussen te laten.

Arco

Special Member

Ik begrijp niet goed wat jij duidelijk vindt aan een variablenaam als: "tellerxyetegelijkaantstapealgedaan"...
(je moet al 30sec op iedere naam staren om te weten wat er staat. Gebruik op zijn minst hoofdletters bij lettergrepen)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 29 maart 2020 22:42:44 schreef elektronica:
vermoed ik ook dat het probleem aan de hardware moet liggen.

Ook? Ook??? nee! De hardware kan niet anders dan doen wat de software haar opdraagt. En je hebt NU "redelijke" hardware die door miljoenen anderen ook gebruikt wordt. Dus het MOET in de software zitten.

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

Op 29 maart 2020 21:49:44 schreef rew:
Met de drivers die je hebt is het zo dat je ze normaliter instelt om aan microstepping te doen. Dan is 1 stapje missen veel minder dan een paar micrometer. Jij doet..... 200 volle stappen per 1.5mm Hmm. 7.5 um per volle stap. Misschien is microstappen dan niet nodig. Maar je moet wel uitkijken dat je dan snel stappen kan missen.

Dit was de oplossing.
Ik heb microstepping ingeschakeld (8) en het probleem is nu verholpen! :-)

Ja, d'r zijn een aantal dingen die je je wel kan veroorloven met microstepping die anders niet kunnen. Zo kan je als je "achterloopt" gewoon drie pulsjes vrijwel tegelijk geven om weer bij te komen. Dat lukt niet in "fullstep" mode.

Marlin: Software voor het besturen van 3D printers (origineel) gebaseerd op arduino (AVR processors). Die heeft een timer interrupt lopen op 10kHz, en kan wel drie microsteps naar 1 stepper sturen op iedere interrupt (bij max snelheid).

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