Léptetö motor rutinok
Léptetö motor rutinok
Egy uj szerkezetet kezdtem el épiteni s bizonyos feladatok optimális megoldását keresem.
A feladat:
Egy léptetömotor mozgását kell elég széles tartományban kezelni:
1. A sebességet/idöt
2. A lépések mennyiségét
3. Irányt
4. A ciklusok számát (hány beprogramozott ciklust tesz meg egymás után)
Azaz a kezelöpulton a fenti konstansokat kell beadni, majd elinditani a motort.
Ami egy kicsit fejtörést okoz a következö.
A motor nyilván nem indulhat mindjárt max sebességgel ezért egy bizonyos felfutási idö kell. Miután a berendezés amit a motor mozgat, elég érzékeny, ezért a finom mozgás nagyon fontos. Ez érvényes az indulásra is meg a megállásra is ( azaz a lépésszám az összes lépést jelenti, beleértve az indulást meg a lassulást.)
Ezért vagyok még bizonytalan, hogy mi lenne jobb a sebesség vagy az idö meghatározása az adott lépésszámhoz. ( az idö lineáris a kiválasztott lépésszámhoz, a sebesség változo. Azt hiszem az idö célravezetöbb.
A másik kérdés, hogyan lenne a legjobb a gyorsulást/lassulást meghatározni - ami nyilván a sebesség/idö és a lépésszám függvénye lesz. ( nagy sebességhez hosszabb gyorsulás kell és forditva. Kevés lépésszám viszont korlátozza a max. sebességet és a gyorsulást is,
A következö dilemmám, hogy az AT kezelje magát a motort, vagy iktassak a proci és a motor közé egy L297-s meghajtot, ami az irányváltásra és a lépés impulzusokra redukálja a motor vezérlési igényét (esetleg még a half/ full stepre).
Ötleteiteket szivesen várom ( valamelyik ATtiny vagy ATmega procira).
Kösz!
A feladat:
Egy léptetömotor mozgását kell elég széles tartományban kezelni:
1. A sebességet/idöt
2. A lépések mennyiségét
3. Irányt
4. A ciklusok számát (hány beprogramozott ciklust tesz meg egymás után)
Azaz a kezelöpulton a fenti konstansokat kell beadni, majd elinditani a motort.
Ami egy kicsit fejtörést okoz a következö.
A motor nyilván nem indulhat mindjárt max sebességgel ezért egy bizonyos felfutási idö kell. Miután a berendezés amit a motor mozgat, elég érzékeny, ezért a finom mozgás nagyon fontos. Ez érvényes az indulásra is meg a megállásra is ( azaz a lépésszám az összes lépést jelenti, beleértve az indulást meg a lassulást.)
Ezért vagyok még bizonytalan, hogy mi lenne jobb a sebesség vagy az idö meghatározása az adott lépésszámhoz. ( az idö lineáris a kiválasztott lépésszámhoz, a sebesség változo. Azt hiszem az idö célravezetöbb.
A másik kérdés, hogyan lenne a legjobb a gyorsulást/lassulást meghatározni - ami nyilván a sebesség/idö és a lépésszám függvénye lesz. ( nagy sebességhez hosszabb gyorsulás kell és forditva. Kevés lépésszám viszont korlátozza a max. sebességet és a gyorsulást is,
A következö dilemmám, hogy az AT kezelje magát a motort, vagy iktassak a proci és a motor közé egy L297-s meghajtot, ami az irányváltásra és a lépés impulzusokra redukálja a motor vezérlési igényét (esetleg még a half/ full stepre).
Ötleteiteket szivesen várom ( valamelyik ATtiny vagy ATmega procira).
Kösz!
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
Gondolom ASM nyelven szeretnéd - hamár abba atémába dobtad fel.... ![Vicces :P](./images/smilies/icon_razz.gif)
Bascom illetve Arduino azonban amit javasolnék.
Léptetőből mekkora feszültségű? Milyen teljesítményő? Mit lehet a motorról tudni? Ettől függ a járulékos hardware.
Tiny-t felejtsd el nagyon gyorsan:
- kis memória
- nincs bővítési lehetőséged felfele
- korlátozott debug/sorosport
Mi a motor max gyorsulása/sebessége? A motorral fullstep/halfstep avgy microstep-t kell tudnod?
Motor és mechanika konyogása hány fokos motorelfordulásnak felel meg?
![Vicces :P](./images/smilies/icon_razz.gif)
Bascom illetve Arduino azonban amit javasolnék.
Léptetőből mekkora feszültségű? Milyen teljesítményő? Mit lehet a motorról tudni? Ettől függ a járulékos hardware.
Tiny-t felejtsd el nagyon gyorsan:
- kis memória
- nincs bővítési lehetőséged felfele
- korlátozott debug/sorosport
Mi a motor max gyorsulása/sebessége? A motorral fullstep/halfstep avgy microstep-t kell tudnod?
Motor és mechanika konyogása hány fokos motorelfordulásnak felel meg?
Re: Léptetö motor rutinok
Már többször irtam, hogy az ASM valamivel közelebb áll hozzám, habár nemrégen végigrágtam magam egy C fejtágiton is.
Az Arduinoval még nem foglakoztam, és szivesen maradnék a meglevö fejlesztési környezetben (Atmel studio, Dragon + az egész fejlesztési környezet).
A léptetömotor kis teljesitményü 5-10v-ra. Ez fontos, mert ceruzaelemekröl kell müködnie a szerkezetnek. A mozgatando dolog sem nehéz, 1-2 kg körüli. Az áttételek már megvannak, a motor tengelyröl számitva 1:80. ( egy 48 lépéses motor esetén, ha jol számolom 4840 full lépés, ami lehet, hogy még sok és nem tud a motor ilyen gyorsan forogni, de ez nem vészes, akkor lassabban fog menni és kész, ezen nem mulik).
Még nem tudom pontosan, de a legnagyobb sebesség egy fordulatra kb. 10 sec. Ettöl gyorsabb nem hiszem, hogy fog kelleni, lassubb viszont nagyon ( akár egy nap/fordulat), de ezen még gondolkodom, hogy szükség lesz-e ilyen lassu folyamatos mozgásra, vagy elég, ha a mozgás szegmensek közé változtathato szüneteket (delay) rakok. Ezt majd a tapasztalat fogja eldönteni.
( azaz mondjuk 10 percenként lép 3 foknyit, ebben az esetben talán mindegy, hogy milyen sebességgel).
A motor egyszerü bipoláris 4 kivezetéssel.
Külsö kapcsolatra nincs nagyon szükség legfeljebb manuális mozgatásra (beállitani a kezdöpontot magán a szerkezeten 2 nyomogombbal. Egy harmadikkal meg a programozást képzeltem el, amivel az egyes programozando jellemzöket ki lehet választani - 2 nyomogombbal meg meghatározni ( pl. Ciklusidö, lépésszám, irány, delay, ciklusszám stb.)
Természetesen a belsö SPI kell.
Az Arduinoval még nem foglakoztam, és szivesen maradnék a meglevö fejlesztési környezetben (Atmel studio, Dragon + az egész fejlesztési környezet).
A léptetömotor kis teljesitményü 5-10v-ra. Ez fontos, mert ceruzaelemekröl kell müködnie a szerkezetnek. A mozgatando dolog sem nehéz, 1-2 kg körüli. Az áttételek már megvannak, a motor tengelyröl számitva 1:80. ( egy 48 lépéses motor esetén, ha jol számolom 4840 full lépés, ami lehet, hogy még sok és nem tud a motor ilyen gyorsan forogni, de ez nem vészes, akkor lassabban fog menni és kész, ezen nem mulik).
Még nem tudom pontosan, de a legnagyobb sebesség egy fordulatra kb. 10 sec. Ettöl gyorsabb nem hiszem, hogy fog kelleni, lassubb viszont nagyon ( akár egy nap/fordulat), de ezen még gondolkodom, hogy szükség lesz-e ilyen lassu folyamatos mozgásra, vagy elég, ha a mozgás szegmensek közé változtathato szüneteket (delay) rakok. Ezt majd a tapasztalat fogja eldönteni.
( azaz mondjuk 10 percenként lép 3 foknyit, ebben az esetben talán mindegy, hogy milyen sebességgel).
A motor egyszerü bipoláris 4 kivezetéssel.
Külsö kapcsolatra nincs nagyon szükség legfeljebb manuális mozgatásra (beállitani a kezdöpontot magán a szerkezeten 2 nyomogombbal. Egy harmadikkal meg a programozást képzeltem el, amivel az egyes programozando jellemzöket ki lehet választani - 2 nyomogombbal meg meghatározni ( pl. Ciklusidö, lépésszám, irány, delay, ciklusszám stb.)
Természetesen a belsö SPI kell.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
ASM miatt és a könnyebb vezérlés miatt L293D chipet javaslom.
A bipoláris motor miatt a H-hidas rendszerek szükségesek.
A külső kapcsolat a debug/hibakeresés miatt gondoltam - a fejlesztés alatt.
Tippek:
http://www.avr-asm-tutorial.net/avr_en/ ... epper.html
http://avrstmd.com/
A bipoláris motor miatt a H-hidas rendszerek szükségesek.
A külső kapcsolat a debug/hibakeresés miatt gondoltam - a fejlesztés alatt.
Tippek:
http://www.avr-asm-tutorial.net/avr_en/ ... epper.html
http://avrstmd.com/
Re: Léptetö motor rutinok
A külsö motormeghajtokat én is elönyben részesitem, sokkal könnyebb azt ott megoldani egyébb nuanceokkal ( pl. áramcsökkentés, ha áll a motor - ez fontos hiszen korlátozott a táp.)
Akkor maradok a lépés- impulzus és az irány parancsoknál.
Azaz a procirol csak az impulzusok és az irány - esetleg a standby jön, ha szünet van.
Akkor maradok a lépés- impulzus és az irány parancsoknál.
Azaz a procirol csak az impulzusok és az irány - esetleg a standby jön, ha szünet van.
A hozzászólást 1 alkalommal szerkesztették, utoljára etwg 2013. július 1. hétfő, 18:21-kor.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
Sajnos más elfoglaltság miatt csak most jutottam tovább a projekttel, s mindjárt bele is botlottam egy akadályba. A barátom unszolásara, egy nagyobb procit keresek a feladathoz. Az egyik ilyen az ATMEGA128 lenne, de ahhoz nem igen találok foglalatot pedig a fejlesztéshez ez jo lenne. A kérdésem, hogy milyen más proci lenne jo hasonlo tulajdonságokkal mint a fenti, de elönyben lenne a DIL tokozás és SPI valamint JTAG ( debug wire) interface. Kösz a segitséget. ( a 162-snek sajnos kevés a memoriája). ![Mr. Zöld :mrgreen:](./images/smilies/icon_mrgreen.gif)
![Mr. Zöld :mrgreen:](./images/smilies/icon_mrgreen.gif)
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
ATMega1284P - DIP40 tokos, JTAG, SPI ![Mosoly :)](./images/smilies/icon_smile.gif)
Elég?:)
![Mosoly :)](./images/smilies/icon_smile.gif)
Elég?:)
Re: Léptetö motor rutinok
Kösz, ez elég jonak néz ki, valahogy nem találtam rá, pedig ott voltam a 162-k körül... ![Zavarban levő :oops:](./images/smilies/icon_redface.gif)
Elérhetö ez valahol egyszerü uton DIL tokozással, ahol most utánnanéztem csak TQFP tokal voltak?
![Zavarban levő :oops:](./images/smilies/icon_redface.gif)
Elérhetö ez valahol egyszerü uton DIL tokozással, ahol most utánnanéztem csak TQFP tokal voltak?
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
Pl. nálam ![Mosoly :)](./images/smilies/icon_smile.gif)
Mondjuk ha van, akkor 5-10 db-t spejzolok...
De az utóbbi időben van sokfele...
De ha ez nagy, nézd meg a kistestvért:
ATMega644PA vagy ATMega324PA
Általában a szokásos AVR-es helyeken vannak....
![Mosoly :)](./images/smilies/icon_smile.gif)
Mondjuk ha van, akkor 5-10 db-t spejzolok...
De az utóbbi időben van sokfele...
De ha ez nagy, nézd meg a kistestvért:
ATMega644PA vagy ATMega324PA
Általában a szokásos AVR-es helyeken vannak....
Re: Léptetö motor rutinok
Kösz, közben már találtam és már uton vannak. Még megnézem a masik kettöt is.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
Egy két példára lenne szükségem:
Van 6 nyomogombom.
Az 1. meg 2. gomb funkcio gombok, azaz megnyomásuk más más irányba viszi a kodot. Ha egyik sincs megynomva akkor a maradék 4 iránygomb fel/le ill. jobbra/ balra mozditja el egy-egy lépéssel a 2 motort.
A motorokon már ott a meghajto, azaz 3 jel megy mindegyik motorra:
ENH, DIRH és StepH az egyik motorra
ENV, DIRV és StepV a másikra
Azaz Enable, Direction és lépés
A gombok egy porton (A) vannak a motorok meg egy másikon (D)
Nem okvetlenül a kod kellene azt talán sikerül megirni, inkább az optimális megoldás ilyen esetekre.
Kösz
Van 6 nyomogombom.
Az 1. meg 2. gomb funkcio gombok, azaz megnyomásuk más más irányba viszi a kodot. Ha egyik sincs megynomva akkor a maradék 4 iránygomb fel/le ill. jobbra/ balra mozditja el egy-egy lépéssel a 2 motort.
A motorokon már ott a meghajto, azaz 3 jel megy mindegyik motorra:
ENH, DIRH és StepH az egyik motorra
ENV, DIRV és StepV a másikra
Azaz Enable, Direction és lépés
A gombok egy porton (A) vannak a motorok meg egy másikon (D)
Nem okvetlenül a kod kellene azt talán sikerül megirni, inkább az optimális megoldás ilyen esetekre.
Kösz
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
Gomboknál prell kivédése trimerrel.
a főprogramban ha gomb1=, akkor alrutin 1 és így tovább....
Alprogramokban gondolkodva.
Végállás?
Tévesztés?
Automata nullpozíció?
a főprogramban ha gomb1=, akkor alrutin 1 és így tovább....
Alprogramokban gondolkodva.
Végállás?
Tévesztés?
Automata nullpozíció?
Re: Léptetö motor rutinok
Kösz ugy látszik csak ketten vagyunk...Robert írta:Gomboknál prell kivédése trimerrel.
a főprogramban ha gomb1=, akkor alrutin 1 és így tovább....
Alprogramokban gondolkodva.
Végállás?
Tévesztés?
Automata nullpozíció?
![Nagyon boldog :D](./images/smilies/icon_biggrin.gif)
Az egész gombkezelést egy extra alprogramban képzelem el.
Az elsö két gomb állapota döntené el, hogy milyen modusba megy a program:
Ha az 1-s aktiv akkor a 3-6 gombokkal az eepromban tervezem a változokat beirni. ( eeprom alprogram)
Ha a 2-s aktiv akkor automatikus rezsimbe megy és nincs a 3-6 gomboknak funkcioja ( automatikus üzem alprogram)
Ha egyik gomb sem aktiv akkor manuális üzemmodban van és a 3-6 gombok a motorokat mozgatják és gyakorlatilag a kiindulo pontokat hivatottak beállitani, ahonnan majd az automata üzemmodban indul a szerkezet.
Szerencsére sem végállás sem tévesztés ( pillantanyilag) nem téma.
Éljenek a vonatok!
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Re: Léptetö motor rutinok
Többen is vagyunk, csak az ASM mindenkitől messze van ....
Akkor egy automata tanítható mozgatógép lesz....
Tipp:
- EEPROM vége honnan tudod?
- mi van induláskor/áramszünet után?
- vészleállítás esete?
Akkor egy automata tanítható mozgatógép lesz....
Tipp:
- EEPROM vége honnan tudod?
- mi van induláskor/áramszünet után?
- vészleállítás esete?
Re: Léptetö motor rutinok
Szevasz!
Mivel fordítod a programodat?
Jó pár éve nekiálltam kiegészíteni az avra tudását, m4 makrókkal.
Pár funkciót meg is valósítottam, timer funkciók, crc, osztás/szorzás 8-16-32 biten, string kezelések, adc, benbus, stb.
Ha érdekel előkeresem, valahol megvan még.
Írtam egy alap disassemblert is anno, sokat tanultam/loptam a bascom által fordított programokból.
Azt kell hogy mondjam hogy egész tömör, gépközeli programot kreál.
És ha arra gondolsz hogy bele lehet szúrni assembler mnemonikot is a basic forrásba, meg van debugger is, meg hw szimulátor is...
Mivel fordítod a programodat?
Jó pár éve nekiálltam kiegészíteni az avra tudását, m4 makrókkal.
Pár funkciót meg is valósítottam, timer funkciók, crc, osztás/szorzás 8-16-32 biten, string kezelések, adc, benbus, stb.
Ha érdekel előkeresem, valahol megvan még.
Írtam egy alap disassemblert is anno, sokat tanultam/loptam a bascom által fordított programokból.
Azt kell hogy mondjam hogy egész tömör, gépközeli programot kreál.
És ha arra gondolsz hogy bele lehet szúrni assembler mnemonikot is a basic forrásba, meg van debugger is, meg hw szimulátor is...