Tartalomjegyzék:

CNC előtolásmérő eszköz hulladékból: 5 lépés
CNC előtolásmérő eszköz hulladékból: 5 lépés

Videó: CNC előtolásmérő eszköz hulladékból: 5 lépés

Videó: CNC előtolásmérő eszköz hulladékból: 5 lépés
Videó: Mitutoyo digitális tolómérő elemcsere 2024, Július
Anonim
CNC előtolásmérő eszköz hulladékból
CNC előtolásmérő eszköz hulladékból

Valaki akarta valaha megmérni a tényleges előtolást egy CNC gépen? Valószínűleg nem, amíg a marószerszámok épségben vannak egy CNC -munka után … de amikor rendszeresen elkezdenek törni, talán itt az ideje, hogy vizsgálja meg. Ebben az utasításban követheti a küldetést egy CNC gép tényleges előtolásának meghatározásához. Ez egy nyomtató, az arduino firmware, a PC szoftver fordított tervezési részét, valamint a kollégáim segítségével kapott eredményeket és a kincsé vált szemetet foglalja magában.

1. lépés: A projekt futtatásához használt anyagok, eszközök, eszközök

Amikor elkezdtem ezen dolgozni, kitaláltam egy rövid listát azokról a dolgokról, amelyekre szükségünk lesz:

  • szétszerelt nyomtatókocsi -mechanizmus
  • kéziszerszámokat, amelyekkel ezt módosítani lehet
  • forrasztópáka, forrasztópáka, vezetékek
  • multiméter
  • oszcilloszkóp vagy logikai elemző - ez nem feltétlenül szükséges
  • tápegység
  • mikroszkóp
  • Arduino nano + pinout
  • PC Arduino IDE, Visual Studio 2008 Express + MS Charting eszközökkel
  • (MPU6050 - végül nem ezt használtam)
  • hajlandó böngészni mindent, amit nem tud, hogyan kell csinálni

Az elején azt gondoltam, hogy az MPU6050 kártya lehetővé teszi, hogy egyszerre mérjem az előtolást mind a három tengelyen. Miután benne volt a gyorsulásmérő, biztos voltam benne, hogy a gyorsulásmérő adatainak összegzése megadja a kívánt értéket - a sebességet minden tengelyen. Miután letöltöttem és módosítottam egy Arduino -töredéket, amely nyers adatokat jelenített meg a soros monitoron, írtam egy kis PC -programot a Visual Studio -ban, amely feldolgozta az adatokat, és a könnyebb értelmezés érdekében diagramra rajzoltam. Ehhez le kellett töltenem mind a Visual Studio C# Express 2008 programot, mind a diagramkészítő eszközöket.

Miután egy ideig kódoltam, és megkerestem a soros kommunikációhoz szükséges összes dolgot, végül az ábrázolt értékeket kaptam, de bármit is tettem, nem volt használható. A kicsi, de hirtelen mozdulatok óriási tüskéket eredményeznének, míg a hosszabb utazások a listákon sem jelennének meg. Két nap kalapálás után az MPU6050 -et végül feladtam, és valami máshoz fordultam - egy szétszerelt nyomtató helyzetvisszajelző mechanizmusához.

2. lépés: El kell végezni a hardveres dolgokat

El kell végezni a hardveres dolgokat
El kell végezni a hardveres dolgokat
El kell végezni a hardveres dolgokat
El kell végezni a hardveres dolgokat
El kell végezni a hardveres dolgokat
El kell végezni a hardveres dolgokat
El kell végezni a hardveres dolgokat
El kell végezni a hardveres dolgokat

Visszafejtés

Természetesen a nyomtatómechanizmusnak nem volt alkatrészszáma, amellyel pontos tulajdonságait meghatározhattam volna, szükség volt egy kis fordított tervezésre, hogy elérjük a kívánt helyet. Miután alaposan megvizsgáltam a mechanizmust és az elektronikát, úgy döntöttem, hogy az első dolog az optikai érzékelőcsapok azonosítása. Ezt meg kellett tenni annak érdekében, hogy az egészet össze lehessen kapcsolni az Arduino -val. Szétszedtem a fekete műanyag részt, kivettem a NYÁK-t, és megvizsgáltam az érzékelőt: ROHM RPI-2150 volt ráírva. Ez boldoggá tett, nagy volt a remény, hogy találok egy adatlapot. Sajnos ez egy régi vagy egyedi rész - az adatlapot nem lehetett megtalálni a weben. Ez azt jelentette, hogy saját kezébe kell vennem a dolgokat: mivel tudtam, hogy ezekben az érzékelőkben általában infravörös LED és két fototranzisztor van, fogtam egy multimétert, dióda mérési módba állítottam, és elkezdtem mérni a csapok között.

A tápcsapokat általában könnyű megtalálni - kondenzátorok vannak rajtuk, és általában széles nyomokkal vannak összekötve a NYÁK -on. A talajnyomok gyakran több párnához vannak csatlakoztatva a jobb zajszűrés érdekében.

A bemeneti és kimeneti csapok azonban nem olyan triviálisak. A diódán keresztüli méréskor a mérő az egyik irányban az előremenő feszültséget, a másikban a túlterhelést (végtelen) mutatja. Négy diódát tudtam azonosítani a tüskék között, arra a következtetésre jutottam, hogy a negyedik dióda valami zener vagy TVS dióda kell, hogy legyen, mivel az alkatrész tápcsatlakai között volt. Az infravörös sugárzó megtalálása egyszerű volt, 89R ellenállás volt vele sorban. Két dióda -mérésem maradt a fennmaradó két érintkezőn, ezeknek a két vevőnek kellett lenniük.

Megjegyzés: Ezeknek az érzékelőknek két vevője van, hogy a mozgás irányát a pozíció meghatározása mellett az impulzusok számlálásával is meg tudják határozni. Ez a két kimeneti hullámforma 90 ° -on kívül esik a fázistól, ezt visszaszámláló vagy visszaszámláló impulzus előállítására használják. Ezen impulzusok számának követésével meghatározható a nyomtatófej pontos helyzete.

Amikor az emittert és a két vevőt megtalálták, a vezetékeket forrasztottam a csapjaikra, így csatlakoztathatom az érzékelőt az Arduino -hoz. Mielőtt ezt megtenném, 3,3 V feszültséget szállítottam az érzékelőre, néhányszor meghúztam a csíkot az érzékelő között, és figyeltem a négyzethullámot a kimeneteken. A négyzethullám frekvenciája a mozgási sebességtől függően változott, és arra a következtetésre jutottam, hogy a mérőrendszer készen áll az Arduino -hoz való csatlakoztatásra.

Az Arduino csatlakoztatása

Az új „érzékelő” csatlakoztatása nagyon egyszerű. Csak csatlakoztassa az érzékelő kimeneteit a D2 és D3 (megszakításra képes csapok!), És a tápvezetékekhez, és kezdődhet a kódolás.

3. lépés: Arduino kódolás

Arduino kódolás
Arduino kódolás

Az Arduino kód meglehetősen egyszerű. Hozzárendeltem egy funkciót, amely minden alkalommal végrehajtódik, amikor a D2 lát emelkedő élét, ez az elapse függvény az általam csatolt Arduino kódból. Ha megnézi a másodfokú jeladó jeleit, ezt fogja látni:

  • egy irányban az A fázis logikai magas minden B fázis emelkedő élén
  • a másik irányban az A fázis logikailag alacsony minden B fázis emelkedő élén

Ez volt az a kódoló tulajdonsága, amelyet kihasználtam: mivel az elapse függvény minden alkalommal végrehajtódik, amikor a D2 -nek emelkedő éle van, csak annyit írtam, hogy ha ez növeli a számlálót, ha D3 magas, és csökkenti, ha D3 alacsony. Ez első próbálkozáskor működött, elküldtem a számláló értékét a soros monitorra, és figyeltem, hogy növekszik/csökken, amikor a nyomtatófejet a tengelyen mozgattam.

Röviden, a firmware a következőket végzi a hurok funkcióban:

  1. ellenőrzi a soros fogadási puffert a bejövő adatok tekintetében
  2. ha vannak bejövő adatok, ellenőrizze, hogy az "1" vagy sem
  3. ha '1', az azt jelenti, hogy a PC szoftver kéri a számláló értékét
  4. soron keresztül küldje el a számláló értékét a PC -nek
  5. 1 -től kezdje elölről.

Ezzel a labda most a PC szoftver udvarában van. Menjünk bele ebbe!

4. lépés: Visual Studio C# szoftver

A VS C# program célja az volt, hogy a számítási terheket az Arduino -ról a PC -re helyezze át. Ez a szoftver fogadja az Arduino által szolgáltatott adatokat, kiszámítja és megjeleníti a sebességet grafikon formájában.

Amit először csináltam, az volt, hogy rákerestem a Google -ra, hogyan kell soros kommunikációt folytatni C#-ban. Sok jó információt találtam az MSDN.com -on egy jó példával együtt, aztán csak kidobtam azt, amire nem volt szükségem - alapvetően mindent, kivéve az olvasási részt. Beállítottam a COM portot és a sebességet, hogy megfeleljen az Arduino sebességének, majd csak néhány próbát tettem, és mindent, ami a soros porton került, többsoros szövegdobozba dobtam.

Az értékek kiolvasása után csak a readto & split függvényeket használhattam egy mérés elkülönítésére egymástól és a határoló karakterektől. Ezeket egy diagramvezérlőn ábrázolták, és az értékek elkezdtek megjelenni a képernyőn.

Ha nem látja a diagram vezérlőt a VS eszköztárában, akkor keresse meg a problémát a Google -ban, és keresse meg a megoldást itt (keresse meg az 1. választ): link

A mérés elve

Annak érdekében, hogy megtaláljuk az összefüggést a számlálások száma és a fej által megtett távolság között, nulláztuk a számlálási értéket, kézzel mozgattuk a nyomtatófejet 100 mm -rel, és megfigyeltük a számok változását. Végül a következő arányt találtuk ki: 1 szám = 0,17094 mm.

Mivel lekérdezhetjük a távolságot, és mérhetjük a minták közötti időt, kiszámíthatjuk a pozícióváltás sebességét - kiszámíthatjuk a sebességet!

A TMR0 -nak köszönhetően a szoftver időzítése körülbelül 50 ms, de azt tapasztaltuk, hogy ezek az időzítések nem voltak túl pontosak. Valójában néhány szoftveres sebességmérés után azt találtuk, hogy az időzített 50 ms egyáltalán nem 50 ms. Ez azt jelentette, hogy a mintákat nem rögzített időközönként vették, így a sebességszámítás sem használhatott rögzített időalapot. Miután megtaláltuk ezt a problémát, könnyű volt továbblépni: vettük a távolság és az időbeli különbséget, és kiszámítottuk a sebességet D_távolság/D_idő (D-távolság/50ms helyett).

Továbbá, mivel egyenletünk mm/50ms egységben adja vissza a sebességet, ezt meg kell szorozni 1200 -zal, hogy megkapjuk azt a távolságot, amelyet a fej egy perc alatt megtenné [mm/perc] -ben.

Megjegyzés: A Mach 3 CNC malomvezérlő szoftver [mm/perc] egységben határozza meg az előtolást

Szűrő

Innentől kezdve a mérések elég pontosnak tűntek, de némi zaj volt a mért jelben. Gyanítottuk, hogy ez a tengely, a tengelykapcsoló stb. Mechanikai ellentmondásaiból adódik, ezért úgy döntöttünk, hogy kiszűrjük, hogy a mért átlagos értéket megkapjuk.

Finom beállítások a szoftverben

Annak érdekében, hogy a mintavételi és szűrési gyakoriságot a futás közben megváltoztassuk, görgetősávokat adtunk hozzá - egyenként egyet. Emellett bevezették a telkek elrejtésének lehetőségét is.

5. lépés: Eredmények

Eredmények
Eredmények
Eredmények
Eredmények
Eredmények
Eredmények
Eredmények
Eredmények

Miután a hardver és a szoftver alkatrészei készen voltak, három mérési sorozatot futtattunk le a mach 3 + my software segítségével, az eredményeket a mellékelt képeken láthatja. A későbbi kísérletek jobb pontosságot mutattak, mind a szűrő, mind a mintavételi arány növekedett. A diagramok a mért sebességet egyszínű pirossal, az átlagot pedig a kötőjel-pontozott kék jelzi.

Ennek ellenére úgy tűnik, hogy a Mach 3 elég pontosan kezeli ezeket a sebességbeállításokat, de most már biztosan tudjuk:)

Remélem, tetszett ez a rövid tanulság a fordított tervezésről és a víz borrá alakításáról!

Egészségére!

Ajánlott: