Náhrada výměnných kol posuvu za krokový motor s elektronikou

Odpovědět
Uživatelský avatar
jova
Příspěvky: 2510
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

3. 11. 2019, 7:05

S tím servem jsi dobře udělal. Krokový motor je na to pomalý.
HonzaHorka
Příspěvky: 1012
Registrován: 15. 11. 2009, 2:17

3. 11. 2019, 7:24

Jj a to se tu divily že tam chci dát servo...

https://youtu.be/v9gg67Pwe1k

Ještě musím dotáhnout odvál do konce a budu spokojený.
lubbez
Příspěvky: 3154
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

3. 11. 2019, 7:27

Pokud máš oba programy pod kontrolou a oba se dají najednou zkompilovat do Arduina, tak to třeba nebude problém. Mnohem jednodušší je použít na každou věc arduino samostatně. Stejně je HW obou zařízení poměrně odlišný - dělička má pouze výstupy pro motor a třeba jeden vstup pro HOME, ale soustruh to už je jiná, motor (nebo motory), enkodér určitě nějaké dorazy?? Protože jsem stavěl obě zařízení, tak mám určitou představu co všechno tam je za elektroniku. Myslím, že stavět jednoúčelové zařízení je při současných cenách součástek smysluplnější. :-)
Uživatelský avatar
jova
Příspěvky: 2510
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

3. 11. 2019, 7:41

Já to pochopil tak, že oboje je na frézku, jen to jednou jede v režimu dělička a podruhé v režimu odvalovačka. Takže naopak je většina věcí kolem pro obě funkce společná. Alespoň tak to mám já na své děličce/odvalovačce.
Obrázek
HonzaHorka
Příspěvky: 1012
Registrován: 15. 11. 2009, 2:17

4. 11. 2019, 4:23

No právě že jsem chtěl jít cestou aby to fungovalo na jednom HW. Takže jsem program delicky upravil aby to fungovalo na Arduino mega2560, původně to bylo nayslim nanu a pozměnil piny tak že mám zapojené jiné ovládání pro druhy FW a tady je problém. Po nahrání jednoho prohru vše funguje jak má druhý program také samostatně funguje, ale všechny dosavadní pokusy o sloučení obou programu nefungují. A to to mysleno tak, že se spustí buť jeden nebo druhý program na základě stavu jednoho pinu Arduina. Bohužel je to na mě asy moc velké sousto moc se v programovani nevyznám. Pokud by někdo dokázal pomoct budu jen rád. Jinak to dopadne jak bylo napsáno výše a dám tam prostě 2 Arduina a budu je přepínat.
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

4. 11. 2019, 4:51

HonzaHorka píše: 4. 11. 2019, 4:23 No právě že jsem chtěl jít cestou aby to fungovalo na jednom HW. Takže jsem program delicky upravil aby to fungovalo na Arduino mega2560, původně to bylo nayslim nanu a pozměnil piny tak že mám zapojené jiné ovládání pro druhy FW a tady je problém. Po nahrání jednoho prohru vše funguje jak má druhý program také samostatně funguje, ale všechny dosavadní pokusy o sloučení obou programu nefungují. A to to mysleno tak, že se spustí buť jeden nebo druhý program na základě stavu jednoho pinu Arduina. Bohužel je to na mě asy moc velké sousto moc se v programovani nevyznám. Pokud by někdo dokázal pomoct budu jen rád. Jinak to dopadne jak bylo napsáno výše a dám tam prostě 2 Arduina a budu je přepínat.
Víme houby, jak to máš napsané.
Ale AVR má obecně jen jeden adresní prostor (pomiňme teď sekci bootloaderu). Takže třeba má jen jednu tabulku přerušovacích vektorů. Takže dva nezávislé programy, zavedené nějak najednou do paměti (jak?), musí tohle nějak zohlednit.

Takže aby to fungovalo, musely by být ty programy napsané jako dvě části jediného programu.
Nějaké kejkle by se asi daly udělat s boot sekcí, ale to už je vyšší dívčí, a navíc pokud to píšeš v prostředí Arduino, musel bys zohlednit i defaultní booloader.

No ale jak už je v úvodu - vím prd o tom, jak to máš udělané.
Grad
Příspěvky: 2073
Registrován: 13. 7. 2014, 9:32

4. 11. 2019, 8:57

Jak už psal Mex, nevíme jak to tam máš. Obecně bych postupoval takto:
1. Záměr testovat stav jednoho pinu a dle toho skočit na 1. či 2. program je OK, takže realizovat dle bodu 4
2. Arduino program má vždy dvě části:
A/ setup pro nastavení, volá se jen 1x ale předtím musí být definované všechny proměnné
B/ loop pro programový kód
Pokud to jsou dva programy z různých zdrojů, které samostatně fungují, tak prvni co mne napadlo když to nejde je, zda jsou dobře převzané, sladěné, definované a nazvané proměnné a piny tj. vždy ty začátky z obou původních programů - takže v novém sjednocujícím programu v oblasti před a v setupu například nemůže byt ten samý pin nazvan - definován různě atp.
4. Programy samostatně fungují, takže jejích části z původních oblasti loop nakopíruješ do větvení if ... else v novém sjednocujícím programu do oblasti loop a mělo by to fungovat :) samozřejmě pokud se v novém setupu a před ním něco změnilo aby se to nebylo, pak je toto potřebné reflektovat i v nové částí loop :wink:

Pokud se v tom moc neorientuješ, mrkni třeba sem
Pokud máš pocit, že by ten problém mohl být v bodě 2. a nevíš jak dál, pak dej sem z obou programů ty definice proměnných a uvidíme co s tím ...
HonzaHorka
Příspěvky: 1012
Registrován: 15. 11. 2009, 2:17

10. 11. 2019, 10:24

tak jsem se konečně na chvilku dostal k C:

tady dávám oba programy samostatně a potom následuje můj pokus o sloučení obou programů.
nejhorší je opravdu to, že jsem programováním nepolíbený a navýc mi to vůbec nejde do hlavy. pokud by mi s tím někdo z vás byl ochotný pomoct budu nesmírně rád a nějak bych to určitě dokázal ocenit. Popřípadě jsem ochotný funkční kus nakreslit i elektricky a tady pro ostatní publikovat.
Jinak se vydám druhou cestou kterou se mi nechtělo na začátku a to že to prostě celé HW předělám a budu provozovat 2 samostatné arduina které budu pouze přepínat.

https://uloz.to/file/uZMvqdO1040E/otocn ... -pokus-rar
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

28. 10. 2020, 8:55

Zdravím.
prošel jsem forum zde, prošel jsem část fora na https://www.chipmaker.ru/topic/118083/ a prosím o doporučení z vašich zkušeností jaký používáte enkoder na soustruhu. Redukuje se mi to na dvě cesty, první je optické kolečko z HP tiskárny na hřídeli se sklíčidlem, druhá je enkoder zakoupený na Alliexpresu a spřažený s hřídelí přes řemínek. Trochu mě zaráží, že jsem nenašel v druhém případě spřažení přes ozubený kola.
lubbez
Příspěvky: 3154
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

28. 10. 2020, 5:28

Zkoušel jsem obojí, ve výsledku je řemínek jednodušší konstrukčně, nemluvě o vůli v zubech. A to jsem to měl na mnou upravované MN80 o to jednodušší, že vřeteno má na sobě ozubení a hned pod ním je i to kolečko. Když máš enkodér s 1000 pulzů na otáčku, tak i nepatrná vůle ti rozhodí počítání. Stavěl jsem dvě verze, na první jsem vycházel z otáček vřetena a přepočítával je na posuv. Sice to fungovalo, ale bylo to takové příliš "začátečnicky překombinované". Při druhém pokusu jsem opustil otáčky úplně, sice je zobrazuji, ale jenom jako otáčkoměr a celá elektronika emuluje ozubená kola. Takže když snížím otáčky (nebo dojde ke skluzu vlivem velké špony) zpomalí se mi i otáčky pohonu suportu. Tohle chodí jak z praku. :-) Teď se chystám na upgrade SW, vysloveně drobnosti v ovládání a možná bych jako fíčurku dodělal odečet pootočení vřetene cca po 0,5 °.
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

28. 10. 2020, 6:32

To s tím ozubeným kolem vysvětluje proč se to nepoužívá. A mě se to tak líbilo - mam na svém WM210 také ozubené kolo na vřeteni a je to taková tenká šlupička, až se bojím že při sundavání praskne. Je pro mě důležité se moci vrátit, pokud mě elektronika zklame.

Jaký používáte enkoder a je lepší 1000 nebo 1024 pulzů? Připadá mě, že pokud by byl převod jedna otáčka vřetene = jedna otáčka enkoderu, tak by byl lepší 1000 kroků, přeci jen 360stupnů děleno 1000 je celé číslo a tím bez chyby zaokrouhlování.
Líbí se mi (1000 nebo 1024 pulzů) : https://www.aliexpress.com/item/32894471123.html?

Převod řemínkem jste kupoval a jaký, kde?

Elektronika je předpokládám Atmega 256:
https://aliexpress.ru/item/32909503032.html?

Krokový motor bych chtěl nejdřív použít ze šuplíkových zásob, něco z vybrakované tiskárny - pokud bude výkonově stačit.
Jaký tam máte a jaká je spokojenost?
lubbez
Příspěvky: 3154
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

29. 10. 2020, 6:06

Nejdřív je potřeba si ujasnit, co všechno to má umět. Pokud chceš i závity, pak samozřejmě musíš použít enkodér. V tu chvíli je v podstatě jedno, kolik má kroků, protože když do výpočtu promítneš stoupání posuvového šroubu a samozřejmě stoupání závitu, vždy budeš mít desetinná čísla. Ale i s tím jde docela v pohodě pracovat. Určitě je dobré mít encodér s výstupem Z, pomocí kterého pak synchronizuješ nájezd nože do závitu. (krom dalších věcí) Je potřeba si uvědomit, že IRC s 1000 pulzy na otáčku dává pulzy 1mS při 60 ot/min vřetena!! Pro 16MHz procesor je to tak akorát a nemůžeš si nijak vyskakovat a fakt musíš být na časovou režii ostražitej. Já jsem použil AT328 a proti Mega256 je jediný rozdíl a to, že u 256 můžeš použít každý pin jako ext. přerušení. Tohle pak je už čistě na tobě, co se rozhodneš použít.
Motor z tiskárny mi nepřijde jako šťastné řešení. Nejen že už je opotřebovaný, ale většinou mívá jiný úhel kroku a hlavně, potřebuješ motor s momentem cca 2-3 Nm. Dneska bych použil pouze closed loop, kterej se dá pořídit za cca 2000,-Kč vč. driveru + napájení alespoň 30V. Pokud na to máš vědomosti, lze použít i servo. V každém případě musíš mít soft plně pod kontrolou. Pokud ne, nemá smysl cokoli stavět.
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

30. 10. 2020, 10:30

Řezání závitů je pro mě klíčové. Bez toho to nemá cenu stavět.

Podle vašich odpovědí předpokládám, že jste psal program pro řízení. Nebo jste upravoval ten co používají na ruském foru?

Psát něco co už bylo napsané se mi nechce, měl jsem za to že počeštím ruskou verzi, případně ohnu nějakou fičuru podle vlastních potřeb. Jsem ale na začátku a tak se spíš učím než stavím.

Trochu mě děsí Váš jednoduchý výpočet ukazující, že času na zpracování procesor AT328, Mega256 moc nemá. Atmega nejsou mí oblíbení a tak si to budu muset nastudovat. Vše stavím na řadě PIC, kde třeba PIC16F877A (20 let starý vlajkový procesor) pro jednu instrukci potřebuje 200ns, což znamená že za 1ms zvládne 5000 instrukcí. Jasně, je to v asembleru a raději píši v C. Jen v případě nároku na rychlost nebo jistotu v kodu dělám části v ASM. Asi budou potřeba nějaká přerušení a tak je 5000 instrukcí teorie, ale i tak mi to vychází na dost prostoru. Novější PIC chodí rychleji, případně lze jít do 16bit verze a pro to jsem rychlost neřešil. Moje chyba.

Ted mi napadá, zda by šlo řízení rozdělit na dva bloky:
1) příprava dat
2) výkonná část (samotné provedení)

Připravu dat by udělal Atmel, psát neco co už existuje je opruz a provedení by mohl dělat PIC. Pak jsou de signálový procesory, alo proč jít s kanonem na vrabce.

Jaké max otáčky vřetene se stíhají při řezání závitů?
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

30. 10. 2020, 10:59

Tie su obmedzene, krokacom, res tym ze tam nemas rampu. Tak ze krokac musi nabehnut na otacky z 0 co je u krokaca problem.
Naposledy upravil(a) atlan dne 30. 10. 2020, 3:46, celkem upraveno 1 x.
Tlatoani
Příspěvky: 75
Registrován: 8. 8. 2020, 8:42

30. 10. 2020, 11:55

Dík, tomu rozumím. Krokáč bude úzké místo.

U krokáče je nějak modulován proud do vinutí, aby provedení kroku bylo rychlejší nebo pomalejší s cílem dosažení plynulého pohybu? A kdo se o tu modulaci stará?

Popisuji dál správně základní funkci?

Předem je spočítáno kolik impulsů z vřetena musí přijít abych chtěl otočit krokáčem o jeden krok. Též je spočítáno kolik impulsů od začátku musí přijít abych úlohu ukončil.
Vřeteno se otáčí předem nastavenou rychlostí a od enkoderu přicházejí impulsy, ty se načítají a po příchodu spočítaného množství dostane krokový motor povel k otočení o jeden krok, a tak se to opakuje až do příchodů všech předem spočítaných impulsů, kdy se úloha ukončí.
Na to se budou nabalovat další části programu, jako zajištění startovacího bodu, zajištění že hned první krok otočí motorem správným směrem, zda musí být krokový motor stále napájený aby se sám nepootočil, směr otáčení krokového motoru,….a jde jít ještě hlouběji na hlídání procesoru „Watchdog“ a co když je problém…. Ale jde mi o základní princip.

Nebo je někde nějaký vývojový diagram již existujícího programu či postupu řešení?
Odpovědět

Zpět na „Ostatní elektronika“