Tartalomjegyzék:
- 1. lépés: A projekt futtatásához használt anyagok, eszközök, eszközök
- 2. lépés: El kell végezni a hardveres dolgokat
- 3. lépés: Arduino kódolás
- 4. lépés: Visual Studio C# szoftver
- 5. lépés: Eredmények
Videó: CNC előtolásmérő eszköz hulladékból: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
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
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
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:
- ellenőrzi a soros fogadási puffert a bejövő adatok tekintetében
- ha vannak bejövő adatok, ellenőrizze, hogy az "1" vagy sem
- ha '1', az azt jelenti, hogy a PC szoftver kéri a számláló értékét
- soron keresztül küldje el a számláló értékét a PC -nek
- 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
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:
Nincs pisilés, kisállat viselkedését beállító eszköz, amely megakadályozza a macskák pisilését otthonában: 4 lépés
Pisilj most, háziállat viselkedést szabályozó eszköz, amely megakadályozza, hogy a macskák pisiljenek az otthonodban: Annyira zavarta a cicám, hogy szeret pisilni az ágyamon, mindent megnéztem, amire szüksége van, és elvittem az állatorvoshoz is. Miután mindent elhárítottam, amit csak tudtam gondolni, és meghallgattam az orvos szavát, rájöttem, hogy rossz viselkedése van. Tehát a
Versano: multifunkcionális praktikus eszköz (arduino Nano): 6 lépés
Versano: multifunkcionális praktikus eszköz (arduino Nano): Szükségem volt egy praktikus multiméterre, amely bárhová könnyen hordozható. Azt akartam, hogy kicsi és miniatűr legyen a camparisonban a normál multiméterekkel. Órákig tartó kódolással és áramkör -tervezéssel végül olyan eszközt készítettem, amely képes mérni a feszültséget
ASS eszköz (antiszociális szociális eszköz): 7 lépés
ASS eszköz (antiszociális szociális eszköz): Tegyük fel, hogy Ön az a fajta ember, aki szereti az emberek közelében lenni, de nem szereti, ha túl közel kerülnek hozzájuk. Te is népkedvelő vagy, és nehezen mondasz nemet az embereknek. Tehát nem tudod, hogyan mondd meg nekik, hogy vonuljanak vissza. Nos, lépjen be - az ASS eszköz! Y
DIY elektromos motor az e-hulladékból: 6 lépés
DIY elektromos motor az E-Waste-ból: Ol á Pessoal, Eu tinha visto na internet um video em que a pessoa monta um motor desses, fiquei muito interessado e resolvi montar um tamb é m para ver se realmente funciona, e ….. Funciona! belefoglalni a
Napenergiával működő Power Bank hulladékból: 3 lépés
Napenergiával működő Power Bank hulladékból: A napelemes Power Bank régi laptop akkumulátorból készül. Ez nagyon olcsó, és napelemmel tölthető. Ezen kívül van egy kijelző, amely jelzi az áramszázalékot az energiabankban. Lássunk neki