Obsah:

CNC nástroj na meranie rýchlosti posuvu vyrobený zo šrotu: 5 krokov
CNC nástroj na meranie rýchlosti posuvu vyrobený zo šrotu: 5 krokov

Video: CNC nástroj na meranie rýchlosti posuvu vyrobený zo šrotu: 5 krokov

Video: CNC nástroj na meranie rýchlosti posuvu vyrobený zo šrotu: 5 krokov
Video: Григорий Хайтин: сложность, метабиология, Гёдель, холодный синтез 2024, Júl
Anonim
CNC nástroj na meranie rýchlosti posuvu vyrobený zo šrotu
CNC nástroj na meranie rýchlosti posuvu vyrobený zo šrotu

Chcel niekto niekedy zmerať skutočnú rýchlosť posuvu na CNC stroji? Pravdepodobne nie, kým frézy nie sú po práci CNC neporušené … ale keď sa začnú pravidelne lámať, je načase to preskúmať. V tomto návode môžete sledovať úlohu pri určovaní skutočného posuvu CNC stroja. Pokryje časť reverzného inžinierstva tlačiarne, firmvér arduino, počítačový softvér a výsledky, ktoré som dosiahol s pomocou svojich kolegov, a odpadky sa zmenia na poklad.

Krok 1: Materiály, nástroje, zariadenia používané na spustenie projektu

Keď som na tom začal pracovať, vymyslel som krátky zoznam vecí, ktoré budeme potrebovať:

  • demontovaný mechanizmus vozíka tlačiarne
  • ručné nástroje, ktoré to vyladia
  • spájkovačka, spájkovačka, drôty
  • multimeter
  • osciloskop alebo logický analyzátor - to nie je úplne nevyhnutné
  • Zdroj
  • mikroskop
  • Arduino nano + pinout
  • PC s nainštalovanými nástrojmi Arduino IDE, Visual Studio 2008 Express + MS Charting
  • (MPU6050 - nakoniec som to nepoužíval)
  • ochotní vyhľadať všetko, čo neviete, ako urobiť

Na začiatku som si myslel, že doska MPU6050 mi umožní merať posuv na všetkých troch osiach naraz. Keď som mal v sebe akcelerometer, bol som si istý, že súčet dát akcelerometra mi poskytne požadovanú hodnotu - rýchlosť na každej osi. Po stiahnutí a úprave útržku Arduino, ktorý zobrazoval nespracované údaje na sériovom monitore, som napísal malý počítačový program vo Visual Studio, ktorý údaje spracoval a zakreslil do grafu pre jednoduchšiu interpretáciu. Na to som musel stiahnuť Visual Studio C# Express 2008 a nástroje na vytváranie grafov.

Po chvíli kódovania a vyhľadaní všetkých vecí, ktoré som potreboval pre sériovú komunikáciu, som skončil s vykreslenými hodnotami, ale nech som robil čokoľvek, nebolo to použiteľné. Malé, ale náhle pohyby by mali za následok obrovské hroty, zatiaľ čo dlhšie cesty sa na grafoch ani nezobrazia. Po dvoch dňoch kladenia MPU6050 som to konečne vzdal a obrátil som sa na niečo iné - demontovaný mechanizmus spätnej väzby polohy tlačiarne.

Krok 2: Hardvérové položky, ktoré je potrebné vykonať

Hardvérové veci, ktoré je potrebné vykonať
Hardvérové veci, ktoré je potrebné vykonať
Hardvérové veci, ktoré je potrebné vykonať
Hardvérové veci, ktoré je potrebné vykonať
Hardvérové veci, ktoré je potrebné vykonať
Hardvérové veci, ktoré je potrebné vykonať
Hardvérové veci, ktoré je potrebné vykonať
Hardvérové veci, ktoré je potrebné vykonať

Reverzné inžinierstvo

Mechanizmus tlačiarne samozrejme nemal číslo dielu, ktoré by som mohol použiť na určenie jeho presných vlastností, bolo potrebné trochu spätného inžinierstva, aby sme sa dostali tam, kam sme chceli. Po podrobnom preskúmaní mechanizmu a elektroniky som sa rozhodol, že prvá vec musí byť identifikácia pinov optického senzora. To sa muselo urobiť, aby sa celá vec prepojila s Arduinom. Demontoval som čiernu plastovú časť, vybral som DPS a preskúmal senzor: bolo na ňom napísané ROHM RPI-2150. To ma potešilo, nádej bola veľká, že nájdem datasheet. Toto je bohužiaľ buď stará alebo vlastná časť - nikde na internete sa nenašiel žiadny list s údajmi. To znamenalo, že som musel zobrať veci do vlastných rúk: vediac, že tieto senzory majú vo vnútri spravidla infračervenú diódu LED a dva foto-tranzistory, chytil som multimetr, prepol som ho do režimu merania diódy a začal som merať medzi kolíkmi.

Napájacie kolíky sa zvyčajne dajú ľahko nájsť - budú mať kondenzátory a na doskách plošných spojov sa zvyčajne spájajú so širokými stopami. Pozemné stopy sú často spojené s viacerými podložkami, aby lepšie potlačili hluk.

Vstupné a výstupné piny však nie sú také triviálne. Pri meraní cez diódu merač ukáže svoje predné napätie v jednom smere a preťaženie (nekonečné) v druhom. Bol som schopný identifikovať štyri diódy medzi kolíkmi a dospel som k záveru, že štvrtá dióda musí byť nejaký druh zenerovej alebo TVS diódy, pretože to bolo priamo medzi napájacími kolíkmi komponentu. Lokalizácia infračerveného žiariča bola jednoduchá, v sérii s ním bol odpor 89R. Zostali mi dve merania diód na zvyšných dvoch kolíkoch, museli to byť dva prijímače.

Poznámka: Tieto senzory majú dva prijímače, aby okrem určovania polohy počítaním impulzov mohli určiť aj smer pohybu. Tieto dva výstupné priebehy sú 90 ° mimo fázy, čo sa používa na vytvorenie impulzu odpočítavania alebo odpočítavania. Sledovaním počtu týchto impulzov je možné určiť presnú polohu tlačovej hlavy.

Keď bol vysielač a dva prijímače umiestnené, spájkoval som drôty na ich kolíky, aby som mohol prepojiť snímač s Arduinom. Predtým som to dodal senzoru s napätím 3,3 V, niekoľkokrát som potiahol pás medzi snímačom a pozoroval štvorcovú vlnu na výstupoch. Frekvencia štvorcovej vlny sa menila s rýchlosťou pohybu a dospel som k záveru, že merací systém je teraz pripravený na pripojenie k Arduinu.

Pripojenie Arduina

Pripojenie tohto nového „senzora“je veľmi jednoduché. Stačí pripojiť výstupy senzora k D2 a D3 (kolíky s možnosťou prerušenia!), K napájaciemu káblu a kódovanie sa môže začať.

Krok 3: Kódovanie Arduino

Arduino kódovanie
Arduino kódovanie

Kód Arduino je pomerne jednoduchý. Priradil som funkciu, ktorá sa vykonáva zakaždým, keď D2 vidí stúpajúcu hranu, toto je funkcia uplynutia z kódu Arduino, ktorý som pripojil. Ak sa pozriete na signály kvadratického kodéra, uvidíte toto:

  • v jednom smere je fáza A logicky vysoko na každej stúpajúcej hrane fázy B.
  • v opačnom smere je fáza A logicky nízka na každej stúpajúcej hrane fázy B.

Toto je vlastnosť kodéra, ktorý som využil: pretože funkcia uplynutia sa spustí vždy, keď má D2 rastúcu hranu, napísal som iba, či to zvýši čítač, keď je D3 vysoký, a zníži ho, keď je D3 nízky. Na prvý pokus to fungovalo, poslal som hodnotu počítadla na sériový monitor a sledoval som, ako sa zvyšuje/znižuje, keď som pohyboval hlavou tlačiarne na hriadeli.

Stručne povedané, firmvér vo funkcii slučky robí nasledujúcu vec:

  1. kontroluje vyrovnávaciu pamäť sériového príjmu pre všetky prichádzajúce údaje
  2. ak existujú prichádzajúce údaje, skontrolujte, či ide o „1“alebo nie
  3. ak je to „1“, znamená to, že počítačový softvér požaduje hodnotu počítadla
  4. odošlite hodnotu počítadla do počítača sériovo
  5. začať od 1.

Vďaka tomu je lopta teraz na ihrisku softvéru PC. Poďme do toho!

Krok 4: Softvér Visual Studio C#

Účelom programu VS C# bolo presunúť výpočtovú záťaž z Arduina na PC. Tento softvér prijíma údaje, ktoré Arduino poskytuje, vypočítava a zobrazuje rýchlosť vo forme grafu.

Ako prvé som urobil googlenie, ako vykonávať sériovú komunikáciu v C#. Na MSDN.com som našiel veľa dobrých informácií spolu s dobrým príkladom, potom som vyhodil, čo som nepotreboval - v podstate všetko okrem čitateľskej časti. Nastavil som port COM a rýchlosť tak, aby zodpovedali rýchlosti Arduina, potom som to párkrát vyskúšal a všetko, čo prišlo na sériový port, som zahodil do viacriadkového textového poľa.

Po prečítaní hodnôt som mohol použiť funkcie readto a split na izoláciu jedného merania od seba navzájom a od oddeľovačov. Tieto boli zakreslené do grafového ovládača a hodnoty sa začali zobrazovať na obrazovke.

Ak sa vám v súbore nástrojov VS nezobrazuje ovládací prvok Graf, môžete problém vygoogliť a nájsť riešenie tu (hľadajte odpoveď č. 1): odkaz

Princíp merania

Aby sme našli súvislosť medzi počtom počítaní a vzdialenosťou, ktorú hlava prejde, vynulovali sme hodnotu počítania, rukou sme posunuli hlavu tlačiarne o 100 mm a pozorovali sme zmeny v počtoch. Nakoniec sme prišli s nasledujúcim pomerom: 1 počet = 0,17094 mm.

Pretože sa môžeme pýtať na vzdialenosť a môžeme merať čas medzi vzorkami, môžeme vypočítať rýchlosť, s akou dochádza k posunu polohy - dokážeme vypočítať rýchlosť!

Vďaka TMR0 existuje hrubé načasovanie softvéru 50 ms, ale zistili sme, že tieto načasovania neboli príliš presné. V skutočnosti sme po niekoľkých meraniach rýchlosti softvéru zistili, že načasovaných 50 ms nie je vôbec 50 ms. To znamenalo, že vzorky neboli odobraté v pevnom intervale, takže na výpočet rýchlosti nebolo možné použiť ani pevnú časovú základňu. Keď sme našli tento problém, bolo ľahké pokračovať ďalej: vzali sme rozdiel vo vzdialenosti a rozdiel v čase a rýchlosť sme vypočítali ako D_distance/D_time (namiesto D-distance/50ms).

Pretože naša rovnica vráti rýchlosť v jednotkách mm/50 ms, musíme to vynásobiť 1 200, aby sme získali vzdialenosť, ktorú by hlava prekonala za jednu minútu, v [mm/minútu].

Poznámka: Softvér na ovládanie CNC frézy Mach 3 definuje posuvy v jednotkách [mm/minútu]

Filtrovanie

Od tohto bodu sa merania zdali byť celkom presné, ale na meranom signáli bol určitý šum. Mali sme podozrenie, že je to kvôli mechanickým nezrovnalostiam v hriadeli, spojke hriadeľa atď., Preto sme sa rozhodli to odfiltrovať, aby sme získali peknú priemernú hodnotu toho, čo sa meria.

Jemné úpravy softvéru

Aby bolo možné zmeniť vzorkovaciu frekvenciu a rýchlosť filtrácie počas behu, boli pridané posúvače - pre každý jeden. Tiež bola zavedená schopnosť skryť pozemky.

Krok 5: Výsledky

Výsledky
Výsledky
Výsledky
Výsledky
Výsledky
Výsledky
Výsledky
Výsledky

Potom, čo boli hardvérové a softvérové časti pripravené, sme vykonali tri sady meraní pomocou softvéru mach 3 + my, výsledky môžete vidieť na priložených obrázkoch. Neskoršie experimenty ukázali lepšiu presnosť, pričom sa zvýšili filtračné aj vzorkovacie rýchlosti. Grafy znázorňujú nameranú rýchlosť neprerušovanou červenou farbou a priemer prerušovanou modrou bodkou.

Ako sa hovorí, zdá sa, že Mach 3 zvláda tieto nastavenia rýchlosti pomerne presne, ale teraz to vieme s istotou:)

Dúfam, že sa vám páčil tento krátky návod na reverzné inžinierstvo a premenu vody na víno!

Na zdravie!

Odporúča: