Turinys:

CNC padavimo greičio matavimo įrankis, pagamintas iš laužo: 5 žingsniai
CNC padavimo greičio matavimo įrankis, pagamintas iš laužo: 5 žingsniai

Video: CNC padavimo greičio matavimo įrankis, pagamintas iš laužo: 5 žingsniai

Video: CNC padavimo greičio matavimo įrankis, pagamintas iš laužo: 5 žingsniai
Video: Cilindrinės šlifavimo staklės Bernardo ZSM 405 2024, Lapkritis
Anonim
CNC padavimo greičio matavimo įrankis, pagamintas iš laužo
CNC padavimo greičio matavimo įrankis, pagamintas iš laužo

Ar kas nors kada nors norėjo išmatuoti faktinį padavimo greitį CNC staklėmis? Tikriausiai ne, kol frezavimo antgaliai bus nepažeisti po CNC darbo … bet kai jie pradės reguliariai lūžti, galbūt atėjo laikas ištirti. Šioje instrukcijoje galite sekti užduotį, nustatydami tikrąjį CNC staklių padavimą. Tai apims atvirkštinės inžinerijos spausdintuvo dalį, „arduino“programinę įrangą, kompiuterių programinę įrangą ir rezultatus, kuriuos gavau padedama kolegų, ir šiukšles, virtusias lobiu.

1 žingsnis: medžiagos, įrankiai, prietaisai, naudojami projektui vykdyti

Kai pradėjau dirbti, sugalvojau trumpą sąrašą dalykų, kurių mums reikės:

  • išardytas spausdintuvo vežimėlio mechanizmas
  • rankiniai įrankiai, kaip tai pataisyti
  • lituoklis, lydmetalis, laidai
  • multimetras
  • osciloskopas arba loginis analizatorius - tai nebūtinai būtina
  • maitinimo šaltinis
  • mikroskopas
  • „Arduino nano + pinout“
  • Kompiuteris su „Arduino IDE“, „Visual Studio 2008 Express + MS Charting“įrankiais
  • (MPU6050 - aš galiausiai to nenaudojau)
  • nori naršyti viską, ko nežinai, kaip daryti

Pradžioje maniau, kad MPU6050 plokštė leis man iš karto išmatuoti visų trijų ašių padavimo greitį. Turėdamas akselerometrą viduje, buvau tikras, kad susumavus akselerometro duomenis, bus gauta norima vertė - greitis kiekvienoje ašyje. Atsisiuntęs ir pakeitęs „Arduino“fragmentą, kuriame nuosekliajame monitoriuje buvo rodomi neapdoroti duomenys, „Visual Studio“parašiau nedidelę kompiuterio programą, kuri apdorojo duomenis ir nubraižiau diagramoje, kad būtų lengviau interpretuoti. Tam turėjau atsisiųsti ir „Visual Studio C# Express 2008“, ir diagramų sudarymo įrankius.

Kurį laiką kodavęs ir ieškodamas visų dalykų, kurių man reikia nuosekliam bendravimui, galų gale gavau suplanuotas vertes, tačiau nesvarbu, ką dariau, tai nebuvo tinkama naudoti. Maži, bet staigūs judesiai sukeltų didžiulius šuolius, o ilgesnės kelionės net nebūtų rodomos diagramose. Po dviejų dienų plaktuko MPU6050 galiausiai pasidaviau ir pasukau į ką nors kitą - išardytą spausdintuvo padėties grįžtamojo ryšio mechanizmą.

2 žingsnis: aparatūros dalykai, kuriuos reikėjo atlikti

Techninės įrangos dalykai, kuriuos reikėjo atlikti
Techninės įrangos dalykai, kuriuos reikėjo atlikti
Aparatinės įrangos dalykai, kuriuos reikėjo atlikti
Aparatinės įrangos dalykai, kuriuos reikėjo atlikti
Aparatinės įrangos dalykai, kuriuos reikėjo atlikti
Aparatinės įrangos dalykai, kuriuos reikėjo atlikti
Aparatinės įrangos dalykai, kuriuos reikėjo atlikti
Aparatinės įrangos dalykai, kuriuos reikėjo atlikti

Atvirkštinės inžinerijos

Žinoma, spausdintuvo mechanizmas neturėjo dalies numerio, kurį galėjau naudoti norėdamas nustatyti jo tiksliąsias savybes, reikėjo šiek tiek pakeisti konstrukciją, kad pasiektume ten, kur norėjome. Atidžiai ištyręs mechanizmą ir elektroniką, nusprendžiau, kad pirmiausia reikia nustatyti optinio jutiklio kaiščius. Tai turėjo būti padaryta, kad visa tai būtų galima prijungti prie „Arduino“. Išardžiau juodą plastikinę dalį, ištraukiau PCB ir ištyriau jutiklį: ant jo buvo parašyta ROHM RPI-2150. Tai mane nudžiugino, buvo didelė viltis, kad surasiu duomenų lapą. Deja, tai yra sena arba pasirinktinė dalis - duomenų lapo niekur internete nebuvo galima rasti. Tai reiškė, kad turėjau perimti reikalus į savo rankas: žinodamas, kad šiuose jutikliuose paprastai yra infraraudonųjų spindulių šviesos diodas ir du fototransistoriai, pagriebiau multimetrą, įjungiau diodo matavimo režimą ir pradėjau matuoti tarp kaiščių.

Maitinimo kaiščius paprastai lengva rasti - juose bus kondensatoriai ir jie paprastai yra sujungti plačiais pėdsakais ant PCB. Žemės pėdsakai dažnai yra prijungti prie kelių trinkelių, kad būtų geriau pašalintas triukšmas.

Tačiau įvesties ir išvesties kaiščiai nėra tokie nereikšmingi. Matuojant per diodą, matuoklis rodys savo priekinę įtampą viena kryptimi, o perkrovą (begalinę) kita. Man pavyko nustatyti keturis diodus tarp kaiščių, padariau išvadą, kad ketvirtasis diodas turi būti kažkoks „Zener“arba TVS diodas, nes jis buvo tiesiai tarp komponento maitinimo kaiščių. Surasti infraraudonųjų spindulių spinduliuotę buvo lengva, su juo buvo 89R rezistorius. Liko du diodų matavimai ant likusių dviejų kaiščių, tai turėjo būti du imtuvai.

Pastaba: Šie jutikliai turi du imtuvus, kad galėtų nustatyti judėjimo kryptį, be padėties nustatymo skaičiuojant impulsus. Šios dvi išėjimo bangos formos yra 90 ° ne fazėje, tai naudojama skaičiavimui arba atgaliniam impulsui generuoti. Sekant šių impulsų skaičių, galima nustatyti tikslią spausdinimo galvutės padėtį.

Kai buvo išsiųstas spinduolis ir du imtuvai, aš lituodavau laidus ant jų kaiščių, kad galėčiau prijungti jutiklį prie „Arduino“. Prieš tai darydamas jutiklį tiekiau 3,3 V įtampą, porą kartų patraukiau juostelę tarp jutiklio ir stebėjau kvadratinę bangą išėjimuose. Kvadratinės bangos dažnis kinta priklausomai nuo judėjimo greičio, ir aš padariau išvadą, kad matavimo sistema dabar yra paruošta prijungti prie „Arduino“.

„Arduino“prijungimas

Prijungti šį naują „jutiklį“yra labai paprasta. Tiesiog prijunkite jutiklio išėjimus prie D2 ir D3 (kaiščiai, galintys pertraukti), ir maitinimo linijas, ir kodavimas gali prasidėti.

3 žingsnis: „Arduino“kodavimas

„Arduino“kodavimas
„Arduino“kodavimas

„Arduino“kodas yra gana paprastas. Aš priskyriau funkciją, kuri vykdoma kiekvieną kartą, kai D2 mato kylantį kraštą, tai yra praėjimo funkcija iš pridėto „Arduino“kodo. Jei pažvelgsite į kvadratinio kodavimo įrenginio signalus, pamatysite tai:

  • viena kryptimi fazė A yra aukšta logika kiekviename B fazės kylančiame krašte
  • kita kryptimi fazėje A yra maža logika kiekviename B fazės kylančiame krašte

Tai buvo kodavimo priemonės, kuria pasinaudojau, savybė: kadangi elapse funkcija vykdoma kiekvieną kartą, kai D2 turi kylantį kraštą, aš tiesiog parašiau, jei tai padidina skaitiklį, kai D3 yra aukštas, ir sumažina, kai D3 yra mažas. Tai pavyko iš pirmo bandymo, aš išsiunčiau skaitiklio vertę į serijinį monitorių ir stebėjau, kaip ji padidėja/sumažėja, kai perkeliu spausdintuvo galvutę ant veleno.

Trumpai tariant, programinė įranga ciklo funkcijoje atlieka šiuos veiksmus:

  1. patikrina, ar nėra gaunamų duomenų nuoseklaus priėmimo buferio
  2. jei gaunami duomenys, patikrinkite, ar tai „1“, ar ne
  3. jei tai yra „1“, tai reiškia, kad kompiuterio programinė įranga prašo skaitiklio vertės
  4. nusiųskite skaitiklio vertę į kompiuterį serijiniu būdu
  5. pradėti nuo 1.

Dabar kamuolys yra kompiuterio programinės įrangos aikštelėje. Eikime į tai!

4 žingsnis: „Visual Studio C#“programinė įranga

VS C# programos tikslas buvo perkelti skaičiavimo naštą iš „Arduino“į kompiuterį. Ši programinė įranga gauna „Arduino“teikiamus duomenis, apskaičiuoja ir rodo greitį grafiko pavidalu.

Pirmiausia aš padariau „Google“, kaip atlikti serijinį ryšį C#. MSDN.com radau daug geros informacijos kartu su geru pavyzdžiu, tada tiesiog išmečiau tai, ko man nereikėjo - iš esmės viską, išskyrus skaitymo dalį. Aš nustatiau COM prievadą ir greitį, kad jis atitiktų „Arduino“greitį, tada tik keletą kartų pabandžiau ir viską, kas pateko į nuoseklųjį prievadą, sudėjau į kelių eilučių teksto laukelį.

Po to, kai buvo perskaitytos vertės, galėjau tiesiog naudoti funkcijas readto & split, norėdamas atskirti matavimus vienas nuo kito ir nuo skiriamųjų ženklų. Jie buvo nubraižyti diagramos valdiklyje, o vertės pradėjo rodytis ekrane.

Jei nematote diagramos valdiklio savo VS įrankių rinkinyje, galite ieškoti „Google“ir rasti sprendimą čia (ieškokite atsakymo Nr. 1): nuoroda

Matavimo principas

Norėdami rasti ryšį tarp skaičiavimų skaičiaus ir galvos nuvažiuoto atstumo, nulinę skaičiavimo vertę nulėmėme, ranka 100 mm perkelėme spausdintuvo galvutę ir stebėjome skaičių pasikeitimą. Pagaliau sugalvojome tokią proporciją: 1 skaičius = 0,17094 mm.

Kadangi galime užklausti atstumą ir galime išmatuoti laiką tarp mėginių, galime apskaičiuoti pozicijos poslinkio greitį - galime apskaičiuoti greitį!

TMR0 dėka programinės įrangos laikas yra apytiksliai 50 ms, tačiau pastebėjome, kad šie laikai nebuvo pernelyg tikslūs. Tiesą sakant, atlikus kai kuriuos programinės įrangos greičio matavimus, mes nustatėme, kad 50 ms laikas nėra 50 ms. Tai reiškė, kad mėginiai nebuvo imami nustatytu intervalu, todėl apskaičiuojant greitį taip pat nebuvo galima naudoti fiksuotos laiko bazės. Kai radome šią problemą, buvo lengva judėti toliau: mes paėmėme atstumo ir laiko skirtumą ir apskaičiavome greitį kaip D_distance/D_time (vietoj D-distance/50ms).

Be to, kadangi mūsų lygtis grąžintų greitį mm/50 ms vienetais, tai turime padauginti iš 1200, kad gautume atstumą, kurį galva nueitų per vieną minutę [mm/min].

Pastaba: „Mach 3“CNC malūno valdymo programinė įranga nustato padavimo greitį [mm/min.]

Filtravimas

Nuo tada matavimai atrodė gana tikslūs, tačiau išmatuotame signale buvo šiek tiek triukšmo. Įtarėme, kad taip yra dėl mechaninių veleno, veleno movos ir kt. Neatitikimų, todėl nusprendėme jį filtruoti, kad gautume gražią vidutinę matuojamosios vertės vertę.

Puikūs programinės įrangos koregavimai

Siekiant pakeisti imties dažnį ir filtravimo dažnį vykdymo metu, buvo pridėtos slinkties juostos - po vieną kiekvienai. Taip pat buvo pristatyta galimybė paslėpti sklypus.

5 žingsnis: Rezultatai

Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai

Kai aparatinė ir programinė įranga buvo paruoštos, mes atlikome tris matavimų rinkinius naudodami „mach 3 + my software“, rezultatus galite pamatyti pridėtose nuotraukose. Vėlesni eksperimentai parodė geresnį tikslumą, padidėjo tiek filtrų, tiek imties dažnis. Brėžiniai rodo išmatuotą greitį raudona spalva, o vidutinį-brūkšniu taškuotu mėlynu.

Tai sakant, atrodo, kad „Mach 3“gana tiksliai tvarko šiuos greičio nustatymus, bet dabar mes tikrai žinome:)

Tikiuosi, kad jums patiko šis trumpas pamokymas apie atvirkštinę inžineriją ir vandens pavertimą vynu!

Sveikinimai!

Rekomenduojamas: