Steperių valdymo plokštelė

Jau senesniam straipsnyje apie solder bridge rašiau, kad litavau kelias PCB su daugybe tranzistorių ir mažu procesoriuku.
stepper yiff

Dabar biški plačiau apie tai… Viskas prasidėjo nuo fantazijos, kad reikia valdyti steperius ne tiesiogiai per kompą ar nuo MCU, bet per paprastas “dukterines” plokšteles kurios pačios turi savo menką protelį ir sugeba dirbti savarankiškai. Ta įdėja buvo labai “orinė”. Kitas faktorius buvo, kad radau kažkokius moduliukus, kuriuose buvo prilituotos ATMEGA48 mikroschemos. Tik labai iškrypusiam korpuse. Tos mikroschemos visur maišėsi ir grąsinosi pasimesti. Trečias faktorius- tai kiniškos PCB. Naudojant buitinę PCB technologiją, tokias bluseles kaip šie procesoriukai nesulituosi. Taip gimė ši PCB.

PCB
Tai beveik tas pats kas ir sename printerio geležių valdymo projekte. Tik kad panaudotos mažesnės detalės. Vienintelė didelė detalė- RS485 transiveris. Čia irgi “erotinė” fantazija- nu jei “industrinis” prietaisas, tai reikia ryšį organizuoti industriškai. Galios mosfetai- žvėriukai iš prabangių video plokščių. Iki 30V ir impulse laiko dešimtim amperų. Kitoje PCB pusėje visas kalnas didelių diodų kurie rekuperuoja energiją, kondikai, transilas.
Pati schema primityvi, net nežinau ar verta čia grūsti- MCU koja valdo npn tranziuką kuris savo ruožtu primityviai valdo mosfetus. Nors mosfetai valdosi ir 5V signalais, datasheetas rekomenduoja kiek didesnę įtampą. Todėl padariau taip- PCB maitinasi įtampa kiek didesne nei 6V, on board stabilizatorius daro 5V procesoriui ir ryšio bei indikacijos grandinėm. Tuo tarpu, nestabilizuota įtampa valdo mosfetus. Kadangi mosfetai valdo induktyvinę apkrovą, tai atjungimo trugdis rekuperuojamas į tą pačią apie 6V grandinę. Besisukant motorams įtampa netgi kiek pakyla, tačiau energijos perteklį puikiausiai sunaudoja kondensatoriai ir kitos motorų apvijos. Nepasakiau, kad motorai maitinami iš atskirų srovės šaltiniu kurie duoda max 7V (6.8V rodos) ir maksimus 1.4-1.5A srovę. Tiek kiek parašyta motoriuko etiketėje.

Kadangi naudojam prabangius mosfetus su miliominėm varžom, tai dirbantys mosfetai visiškai nekaista. Nekaista ir sustabytame režime- ko nepasakysi apie motorus.
Vienintelės detalės kurios kaista ant PCB tai npn tranzai (galbūt) ir jų apkrovos rezistoriai. Dėl mosfetų junginėjimo greičio, aš parinkau gana mažas varžas ir nors srovė neviršyja mažyčiuko tranzo ir rezistoriaus galimybių, tačiau suveikia “kumuliacinis” efektas nuo 8 rezistorių ir jaučiama šiluma.
Procesoriukas su hostu šnekasi beveik žmogiška šneka- galima nurodyti motoriuko greitį, kiek stepų padaryti, atjungti apvijas, stabdyti motorą, keisti sukimosi kryptį “on the fly”. Ir dar galima nusiskaityti plokštės būklę: kiek liko stepų padaryti, dviejų skaitmeninių daviklių būklė ir dviejų ADC reikšmes. Viskas šnekamasi ant gana didelio greičio- 115200 bitų per sekundę. Kadangi naudojam 7.3728 Mhz kvarciuką, tai jei viskas veiks, reikės gal informacinio kanalo greitį padvigubinti. Kol kas viskas veikia taip.
Hosto komandos atrodo maždaug taip:

0S0Z
0S0+10
0D1U
0D0D
0M0+5000
0M1+50
1M0+30
0GA
1GA
0Q
..
0FA

Tai maždaug reiškia: nulinės plokštės nulinio motoriuko greitis užnulinamaas, sulėtinamas per 10 punktų, pirmas motoriukas į viršų, nulinis- žemyn, nulinis motoriukas dar 5k impulsų pavažiuos, o pirmas tuo tarpu varys 50, tuo tarpu pirmos plokštės motoriukas pasisuks 30 stepų. Motorų paleidimas. Būklės skaitymas. Taškeliai nieko nereiškia. Paskutinė komanda išjungia nulinės plokštės motoriukus iš stabdymo režimo į “free run”, kad nekaistu motorai ir maitblokis. Ekologija, blin. 🙂

Visą tai valdo kompo softas:
valdymo softas
Kuris yra dar visiškoje užuomazginėje fazėje, todėl nieko apie tai dar nesakysim. Nes tai jau kito straipsnio medžiaga.

8 replies on “Steperių valdymo plokštelė”

  1. Kaip supratau tavo protokolo komandos siunciamas i viena RS485 linija ir ten pajungta kruva kontroleriu vykto tik tas komandas kurios prasideda jo identifikavimo numeriu? Nenaudoji jokiu komandos pradzios/pabaigos simboliu?
    Beja gal bandei skaiciuoti kokia savikaina sito kontrolerio?

  2. Komandos pradžia tai komandos galas. 🙂 Kiekviena komanda eina savoje eilutėje- CR/LF kodai tiksliai apibrėžia komandas. Todėl papildomų simbolių kol kas neprisireikė.
    Sistema griežtai master-slave, dukterinės plokštės savo iniciatyva neužgrobia perdavimo linijos. O ir ką nors patobulinti dar galima- čia tik pirmi bandymai. Reikia parašyti kokį nors G-kodo interpretatorių ar draiverį.
    Kaip galiu paskaičiuoti savikainą, kai PCB kogero vienintelė detalė kuria pirkau- 10 vnt. ~40Lt. Nu dar smd rezistorius pirkau. Visą kitą senas šlamštas ar šiaip nelikvidai. Pvz. npn tranzų kažkada radau visą špūlę- buitinėm sąlygom išnaudoti 5000 tranzistorių sunkoka 🙂

    KestuiL – prie galinės dalies prikabinus freza bus cnc, o jei klijų pistoletą- 3D printeris. 😛

  3. Man kažkaip freza atrodo universalesnis sprendimas. Ir kada bus kitas postas, nes jau labai nekantrauju pamatyt kas čia toks bus 🙂

  4. oj, iki galutinio produkto dar daug žolės apšikti reikės. Gali ir nesigauti, nes jau dabar pastebėjau keletą mechaninių problemų kurias reikia išspręsti.

  5. Kiek patobulintas softas:
    CNC softas
    Programinė įranga sugeba transliuoti kiek labiau suprantama “Levo kodą” į low level hardwarės valdymo bitstreemą.
    G-code dar nesupratau kaip veikia ir dar nesugalvojau kaip konvertuoti.

    O dėl “backlash” tai kol kas nėra problemų- mano “sraigtai” yra su daugiapradžiais sriegiais iš karinės technikos, ten “liufto” visiškai nėra. Užtat yra klibėjimas konstrukcijoje dėl to, kad viskas padaryta labai primityviai, be masyvių detalių. Eksperimento tikslas buvo padaryti įrenginį be sudėtingų mechaninių darbų.

Leave a Reply

Your email address will not be published. Required fields are marked *