Léptetö motor rutinok

Rendszerközeli nyelv(ek) tippjei, alkalmazásai
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Léptetö motor rutinok

Hozzászólás Szerző: etwg »

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!
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: Robert »

Gondolom ASM nyelven szeretnéd - hamár abba atémába dobtad fel.... :P

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?
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: etwg »

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.
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: Robert »

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/
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: etwg »

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.
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
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: etwg »

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). :mrgreen:
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: Robert »

ATMega1284P - DIP40 tokos, JTAG, SPI :)

Elég?:)
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: etwg »

Kösz, ez elég jonak néz ki, valahogy nem találtam rá, pedig ott voltam a 162-k körül... :oops:

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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: Robert »

Pl. nálam :)
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....
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: etwg »

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
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: etwg »

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
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: Robert »

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ó?
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: etwg »

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ó?
Kösz ugy látszik csak ketten vagyunk... :D

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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: Robert »

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?
Avatar
irak
Biztosítékgyilkos
Hozzászólások: 73
Csatlakozott: 2005. november 2. szerda, 7:00

Re: Léptetö motor rutinok

Hozzászólás Szerző: irak »

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...
Válasz küldése