ASD, 15.4.2008 10:29:39
Tohle se takhle nedělá a řídit motory přímo z PC je slepá cesta.
Na to se použije MCU třeba se sériovou linkou, do kterého se jenom posílají souřadnice XY, kam to má dojet a MCU řídí motory sám ve vlastní režii.
skus pozriet www.c-n-c.cz, tam sa dost detailne rozobera problematika pohonov.
A dobre by bolo keby si popisal aplikaciu kde ma byt ten motor pouzity, aby ti tu nikto nenavrhoval 3-osy interpolator pre nejaku hracku.
Chcel by som postaviť JEDNODUCHÝ súradnicový zapisovač.
Ide vlastne o niečo ako študijnú verziu. Nie je kladený dôraz na efektivitu zariadenia, ale čo najjednoduchšiu komunikáciu sérivého portu so zapisovačom.
a SW na ovladanie toho celeho bude odkial?
Nie je to az tak jednoduche ako sa to zda na prvy pohlad, ked chces pouzit seriovu komunikaciu, tak v jednocipaku musi byt SW, ktory bude riesit linearnu interpolaciu medzi dvoma bodmi a generovanie impulzov. Riesenim by bolo mozno nejaky hotovy CAM software, ktory priamo posiela impulzy na LPT port. Ma to samozrejem aj svoje nevyhody (pod Win mizerne casovanie), DOS je stary.
Jeden z dôvodov (nie jediný), prečo sa chcem vyhnúť programovaniu procesoru je práve skutočnosť, že by som to na prvý a možno ani na 5. krát nerozchodil. So sériovým portom nejaké skúsenosti mám a z programovaním ako-takým tiež, ale na úrovni programovania procesorov určite nie. Posielanie jednotlivých povelov priamo z počítača mi preto príde na študium vhodné. Mohol by som tiež kúpiť hotový zapisovač, ale to by mi technický obzor nerozšírilo.
ASD, 15.4.2008 23:20:14
V tom pripade pouzijte LPT port, k tomu 8xodpor 1k, 8xNPN tranzistor, 8xdioda antiparalelne k vinuti, predpokladam 2 ks krokovych motoru se ctyrmi vinutimi. Tranzistorem se spina vinuti od 12V k zemi. Na hrani je OK, jinak je to k nicemu.
Jestli se chcete vyblbnout, udelejte si oscilator z 555 s potenciometrem, k tomu 74HCT193 a k tomu dekoder 74HCT238 a bude se to tocit i bez pocitace.
Ďakujem.
Nejaké návrhy na LPT som prezeral, v horšom prípade sa niektorého zachytím, ale LPT je dosť citlivý na manipuláciu a pokusy. Preto som hladal riešenie cez sériový port. Mal som predstavu, že sú na trhu integrované obvody ktoré sériovo prijmú byte a rozložia ho na jednotlivé bity.
No pokial trvas na pouziti seriaku, tak sa pouzitiu nejakeho procaku nevyhnes tak ci onak, lebo komunikovat budes chciet ajtak na urovni nejakych paketov s povelmi a parametrami atd. Jedine zeby si daval data fakt do nejakeho posuvneho registra, ale kedze seriak je asynchronny, tak to by chcelo kus logiky. Ale takto riadit motor je hovadina, tam casovanie nemas sancu podla mna ustrazit.
ASD, 16.4.2008 13:49:10
Obavy o LPT jsou opravnene, ale spise nez ne-MCU udelatky na seriovy port je to vhodnejsi resit optocleny, treba 2x PC847.
většinma z vás je vedle
Ano souhlasím s autorem že pomocí RS232 (COM) z PC by to ovládat šlo pomocí posuvného registru. Pro RS232 neznalé: sériový port má krom TxD a RxD taky jiné výstupní/vstupní linky které se dají programově nastavovat do log. 1 a 0. Žádná další logika krom posuvnýho registru není třeba.
2 rustymattock: Tohle co vymýšlíš je řešení opravdu si s tím jen pohrát, s tím posuvným registrem to nikam nevede. Zkus si třeba spočítat rychlost, kterou bys dokázal točit motorem. MYslím že by ses nedostal nad 20 kroků/s. To by si nudou usnul než by ten souřadnicový zapisovač něco zapsal. (nebo na co jsi to chtěl.) O něco lepší řešení s tím LPT portem. Tady už by ses mohl dostat na rychlosti trochu vyšší. Jestli máš zájem o vytvoření jednoduchého interface pro krokáče připojitelného na RS232, tak mi napiš na mail (jan(dot)16(at)seznam(dot)cz) a domluvíme se. Jinak souhlasím s ostatními že nějaké slušnější řešení se bez kontroléru neobejde. Jde jen o to, co jsi schopný zvládnout z elektroniky.. Kdyžtak písni, něco vymyslíme. Zdar Honza
vyrobenie nejakeho zariadenicka, ktore na vstupe dostane prikaz typu "urob X krokov s rychlostou V v smere D" je sice pekne, ale v okamziku ked mame take zariadenia 2 a viac, tak mame problem so synchronizaciou tychto dvoch veciciek, to by sa muselo doriesit nejak extra. Aj preto sa toto riesi vacsinou v PC a na LPT lezu signaly pre motory. a to su len priamky, s kruznicami je to este horsie.
PeterB - nějak sem tě nepochopil, a pokud jsem pochopil správně, tak asi netušíš, jak pracuje kontrolér a co všechno se dá do něj naprogramovat. Synchronizace? co si tím myslel? jako mít třeba 2 motory a navzájem synchronizovat? no problem... Do kontroléru pošleš příkaz aby motorem A udělal během x sekund y kroků, to samý zadáš pro druhý motor, a pak jen pošleš příkaz k vykonání. V tom myslím není problém. A určitě to půjde se synchronizovat líp než kdyby se to ovládalo rovnou přes PC.
PS: Už dlouhou dobu zatím konstruuju mechaniku plotteru s 2ma krokáčema ze stavebnice merkur.. tak až to dovymyslim, tak dáj vědět jak to dopadlo, a jestli to umí nakreslit kružnici :)
Jan16, nebudem ti vyhovarat ze takto sa to jednoducho nerobi, ze kontrolery jednotlivych osi "nevedia o sebe", ale to je jedno,samozrejme fantazii sa medze nekladu. Profi kontrolery pracuju trosku inak, ale v podstate je to nieco,z coho simultanne lezu signaly step/dir pre kazdu osu. A len taka malicka poznamka: 2Nm a merkur je velmi zla kombinacia.
Ja staviam svoje druhe cnc-cko btw.
ASD, 16.4.2008 16:13:45
To Jan16: Sériový port má přesně 3 výstupy a to TXD, RTS a DTR, přičemž TXD jde ovládat dost blbě. Aby během změny na novou hodnotu nebylo vidět změny na výstupech, bylo by třeba něco jako 74HCT595 a to nutně potřebuje všechny tři výstupy. Dále napětí na výstupech je mezi -12..+12V, takže je k tomu ještě třeba 3x převodník úrovní, tedy jeden MAX232 nestačí. Dále jsou třeba dost velké znalosti, jak ve WIN ovládat sériový port, například jak dostat TXD do 0 na dlouhou dobu.
Protože to má autor evidentně pouze na hraní, ať si tedy raději hraje na LPT portu přes optočleny, bude to mít jednodušší.
ASD, 16.4.2008 16:27:06
To Peterb: Kdyby se to dělalo pořádně, tak PC by do MCU poslalo příkaz: Nakresli čáru od (50;50)mm do (100;75)mm a kompletní práci by vykonal MCU. MCU poté přímo ovládá budiče motoru ve vlastní režii. Takhle to mají vyřešeno třeba v gravírovacím plotru za 100kKč a funguje to skvěle.
PeterB, 16.4.2008 19:51:03
ASD suhlasim, presne tak to je, akurat ze ten MCU dost casto byva nejaky priemyselne PC s linuxom, ma vlastny LCD panel s nejakym GUI, klavesnicou atd... :) Ale ako vravis, to uz su stroje za ine palky, avsak koncepcia je stale taka ista, pokial to ma nejak inteligentne komunikovat s nejakym nadradenym PC
PeterB, 16.4.2008 19:52:32
to Jan16: ak chces mam k LPT portu navrhnutu komplet oddelovaciu dosku s rychlymi optoclenmi, nemam problem sa o nu podelit, nie je to nic zlozite.
Nemyslim sio že je problém ke kontroléru připojit grafický dislej a klávesnici ... 2 ASD: nikdo se tu nebaví o cnc (pokud jo tak sory) autor to myslím chce na souřadnicový zapisovač. Nevim na co potřebuješ v souřadnicovym zapisovači 2Nm. :) Jinak já byh to řešil kontrolérem.. žádný blbí optočleni na LPT
ale to je věc názoru...
...mmm pozerám, že diskusia sa celkom chytila
Ako som sa "zahryzol" do internetu, došiel som k tomu, že sa asi mikroControleru nevyhnem. Zatial skúmam PIC16F84A.
Na druhú stranu nesúhlasim s názorom, že sa s RS232 nedostanem nad 20 krokov/s. Posuvný register,dekodér a 555(ako písal ASD) a rýchlosť krokov závisí na tej 555-ke. Cez RS232 by som chcel poslať iba signál ZAPNI OBVOD a v správnej chvíli VYPNI OBVOD. Tá SPRÁVNA chvíla je keď RS232 napočíta z osi "K"-krokov, napríklad cez fotoodpor (ako na koliečkovej myši). Problém je selekcia signálu ZAPNI a VYPNI pre jeden aj druhý motor+elektromagnet ako osa Z. Akékoľvek číslo (0-255) na TXD pošlem, pošle sa (logicky
) sériovo a teda až do ukončenia prenosu sa neustále mení hodnota na posuvnom registri a potažmo teda aj na dekodéri. Ideálne by bolo, keby sa hodnota z dekodéru načítala až PO ukončení prenosu byte. To by konkrétny výstup na dekodéri "prehovoril" či je motor spustený, alebo nie.
...uf snáď som sa niekde nezmýlil. A ak ano, tak preto som tu..
ASD, 17.4.2008 12:56:48
2 Rusty: Jeste jednou a naposled: Zapomente na ovladani dvou krokovych motoru pres RS232 bez MCU, patrne nemate tuseni co to obnasi. Na hrani zde mate kompletni ideu pro LPT. Paklize se dokopete k MCU, coz je ta spravna cesta, tak IMHO nejjednodussi je dneska zacit s ATmega16, 162, 32.
tak teda ďakujem za prínosné rady a slubujem, že už nebudem obťažovať
rysty, urcite to nie je obtazovanie pokial tu nie su vyslovene stupidne otazky :)
2 ASD: K čemu potřebuješ 555ku na ten posuvný registr? stále nechápu...
Montz, 18.4.2008 08:13:05
Můžeš taky použít speciální obvody pro krokáče, v Česku jsou k mání třeba od firmy Trinamic, např. k TMC222 s ovládáním po I2C je možné připojit přímo krok. motor s proudem do 0,8A. Obvody mají třeba u Spezial Electronic - www.spezial.cz