HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


Arduino



 

Időrend:
Oldal 2 / 28 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   1  2  3  4  5  6   Következő ►  Utolsó ►|

  Fórum főoldal  |  A lap aljára

kymco1 | 1038    2018-12-31 23:39:01 [1317]

Sziasztok
Szeretném magam kicsit jobban beleasni ebbe az arduino rendszerbe. Hol és merre erdemes elindulni? Nulláról kezdenem semmilyen ilyen irányú eloeletem nincs.


zozo | 4022    2018-12-18 21:59:36 [1316]

Nálam ez régen linuxcnc-ről ment, asztali PC LPT portjáról. Nem volt vele probléma.

  

Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]


Varga Ferenc | 168    2018-12-05 14:48:07 [1315]

Ok. Én erre gondoltam

  

Előzmény: cree2, 2018-12-05 13:12:00 [1314]


cree2 | 2917    2018-12-05 13:12:00 [1314]

Pedig rajta van ez a lehetöség is... reset allati tüs csatik arduino lapot meg elhagyos ugyis!

Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]


dtb | 378    2018-12-05 12:40:48 [1313]

Hát ha jól értettem amit telefonon beszéltünk, akkor ez kell neked:

  

Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]

dezsoe | 1432    2018-12-05 12:20:46 [1312]

Szerintem semmi akadálya, ha a lábakat jól kötöd be. Leírás van a neten bőven, például itt. Egy dologgal lehet bajod: ha a printer port nem ad elég határozott jelet, de ez gépfüggő.

Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]


dtb | 378    2018-12-05 11:46:47 [1311]

Kicsit pontosíthatnál a kérdésen, mi nélkül akarod bekötni (és pontosan mit is)? Arduino nékül, csak a shield-del? Az szerintem nem megy. Csak az ardiuno-val akarod vezérelni a stepper drivert? Annak semmi akadálya, rengeteg leírást találni hozzá a neten.

Előzmény: Varga Ferenc, 2018-12-05 11:25:01 [1310]


Varga Ferenc | 168    2018-12-05 11:25:01 [1310]

Sziasztok. Az lenne a kérdésem, van egy cnc shield v3 van hozzá arduinó, is de e nélkül szeretném bekötni.A Mac3 step dyr jelét szeretném használni, mi a véleményetek meg oldható?


Robsy | 806    2018-11-26 12:22:47 [1309]

A szöggyorsulás kapcsán nem pontosan arról beszélsz, amiről én írtam.
Egyéb állításid, feltételezéseid se igazak szerintem.
Kérlek, gondold át miket is írtál, és azoknak mennyi köze van a TÉNY-ekhez.

Előzmény: docs, 2018-11-24 21:51:05 [1308]


docs | 99    2018-11-24 21:51:05 [1308]

Nem nagyon értem mi a baj a szögsebesség és a szöggyorsulás szavakkal...

Túl csicsavilágos? Félsz hogy túl sokan értenék?

Ha ismeretet akarsz terjeszteni írhatnád pl. így:
"szöggyorsulás (a szögelfordulásának az idő szerinti második deriváltja) "

Hidd el, ettől a tudományoskodó fogalmazási stílustól nem fogsz okosabbnak látszani...

Előzmény: Robsy, 2018-11-21 20:19:04 [1292]


cree2 | 2917    2018-11-22 19:31:36 [1307]

Néz bele (Marlin_main.cpp) tele van jó ötletekel függvényekkel!

Előzmény: Devecz Miklós, 2018-11-22 13:18:29 [1306]


Devecz Miklós | 2182    2018-11-22 13:18:29 [1306]

Jó lesz a 10/100-as osztás is, csak be kell szorozni a motor lépésével (200), és a vezérlő mikrolépésével (16-32)
Így már nem is olyan lassú.

Előzmény: frob, 2018-11-22 08:22:29 [1304]


frob | 1370    2018-11-22 08:23:49 [1305]

ezen a fideón jól látszik hogy az arduino bizony csak úgy tolja kifele a jeleket, szinte folyamatosan világítanak a step jelek...

Előzmény: VViktor, 2018-11-22 05:48:15 [1303]


frob | 1370    2018-11-22 08:22:29 [1304]

Gondoltam hogy ez lesz az amit szeretnél
nos akkor kicsit másképp állnék hozzá
először is a motorok, eleve nagy osztással kell menjenek, netán áttétellel
hogy a felbontás minél finomabb legyen
és akkor kijön hogy míg a csévetest fordul pl 1/8-ot akkor a drót helyező motor pedig csak 10et lép
most csak mondtam valamit...

lényeg jó felbontással elérhető az amit szeretnél
de 100/10 lépés mennyiségnél nem
100 000 /10 000 lépésnél már igen

és jó lesz a sima if es szerkezeted is

Előzmény: Devecz Miklós, 2018-11-21 20:08:42 [1291]


VViktor | 1033    2018-11-22 05:48:15 [1303]

Szia.


Ezt nézd meg ,van hozzá forráskód is

Előzmény: Devecz Miklós, 2018-11-21 20:08:42 [1291]

PSoft | 12342    2018-11-21 23:47:07 [1302]

Köszönöm az "én szerencsém"-ről írt "fölmagasztaló" eszmefuttatásodat.
Mindig is tudtam olvasni a sorok között.
Pontosan ezt vártam Tőled, erre számítottam.

"Nem lepődök én meg már semmin." -írod.
Én sem.

Előzmény: Robsy, 2018-11-21 22:32:39 [1301]


Robsy | 806    2018-11-21 22:32:39 [1301]

Nem lepődök én meg már semmin.
Köszi, de a Robsy CNC vezérlő rendszerekben épp eleget foglalkoztam már ezekkel a feladatokkal, annyira ismerhetsz, imádom a villamos motorok lelkivilágát, hajtásdinamikai kérdéseit.
Építettem már 3D nyomtatót is, igaz saját vezérlővel a cs. világ, és G kód nélküli verzióban.

A te szerencséd ezeknél a kütyüknél pedig az, hogy a fejlesztőmérnökök helyetted már megoldották ezeket a mozgásdinamikai feladatokat, és neked csak pár ikon klikkelgetéssel kell törődnöd a deriválási örömök nélkülözése mellett, amikor átküldöd a G kódokat a kis kütyüdbe.
Mondjuk még egy kicsit a virtuális grafikákon én csiszolnék ezeknél a programoknál, túl sokat "füllentenek" a csodálatos síklapú nyomtatott felületek mutogatása kapcsán, pedig mint tapasztalhattad a valóság mindig más ezeknél a kinyomtatott dolgoknál. A lényeg az, hogy ez se zavar téged, van aki viszont nem szereti, ha sokat hazudnak neki.

Előzmény: PSoft, 2018-11-21 22:04:15 [1298]


cree2 | 2917    2018-11-21 22:16:45 [1300]

Nagyon preciz vagy mind mindig!
Egy bemutató videót majd munka közben is dobjál fel róla!

Előzmény: Devecz Miklós, 2018-11-21 20:08:42 [1291]


Robsy | 806    2018-11-21 22:06:16 [1299]

Így igaz!

Csak ugyen itt a feladat kapcsán két motort kell egyidejúleg, szinkronban kezelni, és borulnak ezek az egész számos arányú egyszerű programozási lehetőségek a gyorsulási rámpa szakaszoknál.

Előzmény: J-Steel, 2018-11-21 21:57:07 [1297]


PSoft | 12342    2018-11-21 22:04:15 [1298]

Javaslom, építs, vagy vegyél egy pár tízezer forintos "mezei" 3D nyomtatót,és kezd el használni a maga nemes egyszerűségében.
Meg fogsz lepődni, mire képes manapság pld. az "Arduinós virtuális valóság, vagy...csicsavilág".(ha már őt említetted)

Előzmény: Robsy, 2018-11-21 21:51:23 [1296]


J-Steel | 1388    2018-11-21 21:57:07 [1297]

Ha tehát a programozó hozzátesz a programhoz egy gyorsító/lassító rámpát, amit tesztekkel ellenőriz, akkor még jól is működhet.

Előzmény: Robsy, 2018-11-21 21:51:23 [1296]


Robsy | 806    2018-11-21 21:51:23 [1296]

Majdnem jó, amit írtál csak lehagytál egy fontos szócskát, a "szög"-et. Egy léptető motornak szögsebessége, és szöggyorsulása van, nincs neki sebessége, és gyorsulása, ezeket a kifejezáseket egyenes vonalú mozgásra értelmezhetők.

A következtetésed is majdnem jó, csak erre is van egy szakkikfejezés, az adott léptetőmotor start/stop szögsebessége a döntő.
Ha ezalatt szórakozunk egy motorral, lehet olyan egyszerűen programozgatni, hogy sebesség egységugrasztva indítom.
Egyébként meg kell a szöggyorsulással is foglalkozni, mert az a szerencsétlen léptetőmotor csak forgás nélkül visítva jelzi, az Ardunió gazdája virtuális valóságban él, és azt hiszi, amit lát a csicsavilág felprogramozáskor, az a valóságban is úgy lesz.

Előzmény: J-Steel, 2018-11-21 21:14:24 [1295]


J-Steel | 1388    2018-11-21 21:14:24 [1295]

Ezt nem értem...
" ha a gyorsabban forgó motor szögelfordulásának az idő szerinti első deriváltja nagyobb egy a motorra jellemző értéknél"
= Ez lenne a sebesség (RPM) ugye?

"akkor foglalkozni kell a második deriválttal is a programozás kapcsán"
= Ez lenne a gyorsulás

Tehát magyarán ha az első motor fordulatszáma nagyobb a névlegesnél (vagy amit el tud érni?), akkor a gyorsulását is figyelembe kell venni a programozáshoz. Jól fordítottam le?
De ezzel mit akartál mondani?

Előzmény: Robsy, 2018-11-21 20:19:04 [1292]


Robsy | 806    2018-11-21 20:32:47 [1294]

Azért a deriválási feltétel elágazást vizsgáld meg, mert nagy csalódások fognak érni, ha ezzel nem foglalkozol.

Előzmény: Devecz Miklós, 2018-11-21 20:21:38 [1293]


Devecz Miklós | 2182    2018-11-21 20:21:38 [1293]

Ebben a felállásban túl egyszerű lett volna.

Előzmény: Robsy, 2018-11-21 20:19:04 [1292]


Robsy | 806    2018-11-21 20:19:04 [1292]

Ez így nem elég információ a feladat korrekt megoldásához, ugyanis ha a gyorsabban forgó motor szögelfordulásának az idő szerinti első deriváltja nagyobb egy a motorra jellemző értéknél (ez a 2. eset), akkor foglalkozni kell a második deriválttal is a programozás kapcsán.
Csak halkan jegyzem meg, az első esetben 2 db 20 forintos IC-vel is megoldható a feladat pl. 1:1 ... 255 tetszés szerinti n arány beállítási lehetőséggel.

Előzmény: Devecz Miklós, 2018-11-20 17:44:42 [1269]


Devecz Miklós | 2182    2018-11-21 20:08:42 [1291]

Nem árulok zsákbamacskát, csak egy tekercselő gépet akarok összehozni.
A saját kútfejemből már megírtam egy progit, ami működik is, de bíztam benne, hogy létezik egy ennél jobb megoldás is.
Az én progim "for-next" és "if" utasításokkal működik.




  


PSoft | 12342    2018-11-21 18:13:30 [1290]

Ez igaz, de Miklós eddig még, nem írt a "környezetről".
Én nem értek hozzá, de szerintem biztos megoldható PC nélkül is, egy zsebben lapuló okos telóról.
(ha nem, majd a hozzáértők...megmondod)

Előzmény: morvfer7, 2018-11-21 18:00:48 [1289]


morvfer7 | 959    2018-11-21 18:00:48 [1289]

Szerintem a megoldandó feladatnak csak egy része a kérdés, az meg arduino esetében ritkán feltételezhető, hogy valaki a pici arduino panel mellé magával cipel egy számítógépet, amin ki tudja adni azt a parancsot.

Előzmény: PSoft, 2018-11-21 17:56:25 [1288]


PSoft | 12342    2018-11-21 17:56:25 [1288]

Lehet, túl...egyszerű?

Előzmény: vjanos, 2018-11-21 16:48:06 [1287]


vjanos | 5058    2018-11-21 16:48:06 [1287]

Ezzel a megoldással mi a gond, benéztem valamit?
Szerintem a GRBL megoldana minden ilyen időzítési gondot...

Előzmény: vjanos, 2018-11-20 22:11:04 [1279]


cree2 | 2917    2018-11-21 15:33:20 [1286]

Eben ott van amit keresel 2 motor kötöti fordulat osztás ...

https://www.youtube.com/watch?reload=9&v=fHAO7SW-SZI

Előzmény: Devecz Miklós, 2018-11-21 13:58:18 [1283]


cree2 | 2917    2018-11-21 15:07:06 [1285]

Mivel egy rutin fut csak egymás után sorba igy követik egyást de nem egyszer igy azért látszik a kapcsolási késés (fordulat) a két művelet kötöz!
Ha több művelet lehet egy idöbbe futtatni párhuzamosan multitask millis fügvényel

Előzmény: Devecz Miklós, 2018-11-21 13:58:18 [1283]


morvfer7 | 959    2018-11-21 14:55:37 [1284]

Amit írsz, az nem szerepel a kódban.
Itt csak annyi van, amit írtam.
Kap 10 impulzust az X motor, 1-et az Y motor.
Az 1-et nem lehet jobban darabolni.
A mikrolépések pedig ettől függetlenek, valamint a 200lépés/ fordulat is.

Ha betennéd azt a kódot, amivel próbálod, talán jobban át lehetne nézni, hogy hol a probléma.

Előzmény: Devecz Miklós, 2018-11-21 13:58:18 [1283]


Devecz Miklós | 2182    2018-11-21 13:58:18 [1283]

Kipróbáltam, de van egy kis hibája.

Ez csak egész lépéseknél használható, ha 16 mikrolépést, és a motor 200 lépés/fordulatot is beállítom, akkor már nem igen használható, mivel egyik motor mozgatása után kezdi a másik motor mozgatását.
Nekem a szinkron mozgás lenne elfogadható.

Előzmény: morvfer7, 2018-11-21 03:28:19 [1282]

morvfer7 | 959    2018-11-21 03:28:19 [1282]

itt van egy 3 motoros kód UNO pinekkel, CNCshield panellal A4988 vagy DRV8825, mindegy.
Ebben a beállításban x 10x többet fordul mint y, z pedig nem forog



//dir pinek definialasa
#define X_DIR 5
#define Y_DIR 6
#define Z_DIR 7

//step pinek definialasa
#define X_STP 2
#define Y_STP 3
#define Z_STP 4

#define EN 8 //enable

//driver - lepesek
int delayTime=500; //szunet
int stpx=10;// lepesek x motor
int stpy=1;// lepesek y motor
int stpz=0;// lepesek z motor

void step(boolean dir, byte dirPin, byte stepperPin, int steps)

{

digitalWrite(dirPin, dir);

for (int i = 0; i < steps; i++) {

digitalWrite(stepperPin, HIGH);

delayMicroseconds(delayTime);

digitalWrite(stepperPin, LOW);

delayMicroseconds(delayTime);

}

}

void setup(){

pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT);

pinMode(Y_DIR, OUTPUT); pinMode(Y_STP, OUTPUT);

pinMode(Z_DIR, OUTPUT); pinMode(Z_STP, OUTPUT);

pinMode(EN, OUTPUT);

digitalWrite(EN, LOW);

}

void loop(){

step(false, X_DIR, X_STP, stpx); //X forog jobbra, ha balra kell, akkor true
step(false, Y_DIR, Y_STP, stpy); //Y forog jobbra, ha balra kell, akkor true
step(false, Z_DIR, Z_STP, stpz); //Z forog jobbra, ha balra kell, akkor true

delay(10); // sebességet itt lehet állítani

}


Előzmény: Devecz Miklós, 2018-11-20 22:39:52 [1281]


Devecz Miklós | 2182    2018-11-20 22:39:52 [1281]

Igen, ez kimaradt.

DRV8825, és step-dir vezérléssel kell megoldani.

Előzmény: morvfer7, 2018-11-20 22:24:22 [1280]


morvfer7 | 959    2018-11-20 22:24:22 [1280]

Természetesen, igazad van, de nem ismerem, hogy milyen meghajtás van tervezve, így csak a megvalósításhoz való elképzelésemet vázoltam.
Összedobhatok egy kódot is, ha kell, szerintem DRV8825 érdemes, ha már arduinorol beszélünk, és step dir megoldással.

Előzmény: frob, 2018-11-20 21:21:43 [1276]


vjanos | 5058    2018-11-20 22:11:04 [1279]

Nem felel meg a célnak egy GRBL meg a G1X100Y10 kód?
Vagy G1X1000000Y100000... vagy tetszőleges, az arányt megtartva, lépésszámot figyelembe véve...

Előzmény: Devecz Miklós, 2018-11-20 15:52:11 [1266]


dtb | 378    2018-11-20 21:42:11 [1278]

Szerintem egy timerrel nem tudja megoldani.
Amit belinkeltem, azért nézzetek rá.

Előzmény: frob, 2018-11-20 21:19:51 [1275]


Devecz Miklós | 2182    2018-11-20 21:29:56 [1277]

Előzmény: frob, 2018-11-20 21:19:51 [1275]


frob | 1370    2018-11-20 21:21:43 [1276]

ebben a módiban, nincs stepper driver, tehát valami tranyó mező vagy tranyók kellenek a meghajtáshoz, de az elv rendes step dir jelet fogadó meghajtóknál is így néz ki, csak akkor a step lábakat kell csak birizgálni

Előzmény: morvfer7, 2018-11-20 17:55:38 [1272]


frob | 1370    2018-11-20 21:19:51 [1275]

4 timer? csak a mega boardokon van 3 nál több, amiből eleve a rendszer lekap 2 őt!azokat közvetlen nem is éred el csak alányúkálva de a timer1 re direkt van lib és mindent szépen meg lehet vele oldani

1 nek kell lennie, aminek olyan időt kell beállítani hogy mindent végre tudjon hajtani

Előzmény: dtb, 2018-11-20 21:07:42 [1273]


Devecz Miklós | 2182    2018-11-20 21:16:09 [1274]

Köszönöm a segítségeket.

Most egy kicsit gyakorolok.


dtb | 378    2018-11-20 21:07:42 [1273]

Amennyiben mindkét motor csak egy irányban kell hogy forogjon, akkor 4 timert kell definiálnod. Egy lesz az A motor indítója (STEP ON, PIN HIGH), 1 a B motot indítója, 1-1 pedig a motorok impulzushosszát vezérli a step jel megfelelő kikpacsolásával (STEP OFF, PIN LOW)
A timerek ről itt (is) találsz egy tutorialt, de ezen kívül is van sokmillió
Link: Arduino 101: Timers and Interrupts

Előzmény: Devecz Miklós, 2018-11-20 15:52:11 [1266]


morvfer7 | 959    2018-11-20 17:55:38 [1272]

Részemről így oldanám meg:

Mellékelt képen a stepper motor:

"A" motor:
1a
2a
1b
2b
"B" motor:
1a
"A" motor:
1a
2a
1b
2b
"B" motor:
2a
"A" motor:
1a
2a
1b
2b
"B" motor:
1b
"A" motor:
1a
2a
1b
2b
"B" motor:
2b

Így "A" motor 4-et fordul, mire "B" motor 1-et, nem akartam hosszabban írni, ha más arány kell, arányosan osztanám el.

Bizonyára van más megoldás is, részemről egy saját elképzelést írtam le.

  

Előzmény: Devecz Miklós, 2018-11-20 17:44:42 [1269]


Nagy Zoli | 402    2018-11-20 17:55:30 [1271]

Igy is lehet, de ha valaki nem annyira jártas a dologban az jobban jár ha keres egy stepper library-t, van arduinohoz egy pár, azokhoz mindjárt van mintapélda is.

Előzmény: frob, 2018-11-20 17:48:24 [1270]


frob | 1370    2018-11-20 17:48:24 [1270]

Kell egy timer, hogy viszonylag pontos legyen a dolog.
pl a timerone.h egy jó lib erre

majd beállítod hogy mennyire legyen gyors a 100 at forduló, és miközben billegeted a lábon a lépés jelet a motor meghajtójának szépen elszámolsz 10 ig és akkor billented a másikét is....

stb

Előzmény: Devecz Miklós, 2018-11-20 17:44:42 [1269]


Devecz Miklós | 2182    2018-11-20 17:44:42 [1269]

Nincs sem kapcsoló, sem potméter.
A feladat, hogy az "A" motor, mondjuk fordul 100-at, ez idő alatt a "B" motor fordul 10-et.

Ennyi.

Előzmény: morvfer7, 2018-11-20 17:08:28 [1268]


morvfer7 | 959    2018-11-20 17:08:28 [1268]

Úgy szeretnéd, hogy a programban fixen legyen a kód megírva, hogy melyik motor mennyit menjen, milyen sebességgel? Vagy van más paraméter is hozzá, mondjuk potméterek, vagy kapcsolók?

Előzmény: Devecz Miklós, 2018-11-20 15:52:11 [1266]


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 2 / 28 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   1  2  3  4  5  6   Következő ►  Utolsó ►|


 ◊