Mundarija:
- 1 -qadam: Loyihani ishga tushirish uchun ishlatiladigan materiallar, asboblar, qurilmalar
- 2 -qadam: Bajarilishi kerak bo'lgan uskunalar
- 3 -qadam: Arduino kodlash
- 4 -qadam: Visual Studio C# dasturiy ta'minoti
- 5 -qadam: Natijalar
Video: Hurda bilan ishlangan CNC besleme tezligini o'lchash vositasi: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Hech kim hech qachon CNC mashinasida haqiqiy ovqatlanish tezligini o'lchashni xohlaganmi? Ehtimol emas, CNC ishidan keyin frezalash bitlari buzilmaguncha … lekin ular muntazam ravishda sinishni boshlaganda, ehtimol, tekshirish vaqti keldi. Ushbu yo'riqnomada siz CNC mashinasining haqiqiy ovqatlanish tezligini aniqlash bo'yicha topshiriqni bajarishingiz mumkin. U printerning teskari muhandislik qismini, arduino dasturiy ta'minotini, shaxsiy kompyuter dasturlarini, hamkasblarim yordami bilan olgan natijalarimni va xazinaga aylangan axlatni o'z ichiga oladi.
1 -qadam: Loyihani ishga tushirish uchun ishlatiladigan materiallar, asboblar, qurilmalar
Men ishlay boshlaganimda, bizga kerak bo'lgan narsalarning qisqa ro'yxatini o'ylab topdim:
- demontaj qilingan printer tashish mexanizmi
- Buni o'zgartirish uchun qo'l asboblari
- lehim temir, lehim, simlar
- multimetr
- osiloskop yoki mantiq analizatori - bu mutlaqo kerak emas
- quvvatlantirish manbai
- mikroskop
- Arduino nano + pinout
- Arduino IDE, Visual Studio 2008 Express + MS Charting vositalari o'rnatilgan kompyuter
- (MPU6050 - men buni ishlatmay qoldim)
- qanday qilishni bilmagan hamma narsani qidirishga tayyor
Dastlab, men MPU6050 kartasi uchta o'qning besleme tezligini o'lchashga imkon beradi deb o'yladim. Ichida akselerometr bor ekan, ishonchim komilki, akselerometr ma'lumotlarini yig'ish menga kerakli qiymatni - har bir o'qdagi tezlikni beradi. Arduino parchasini ketma -ket monitorda ko'rsata oladigan yuklagandan va o'zgartirgandan so'ng, men Visual Studio -da ma'lumotlarni qayta ishlaydigan kichik kompyuter dasturini yozdim va uni osonroq izohlash uchun jadvalga tuzdim. Men Visual Studio C# Express 2008 ni ham, buning uchun grafik vositalarini ham yuklab olishim kerak edi.
Biroz vaqt kodlash va ketma -ket muloqot qilish uchun kerak bo'lgan hamma narsani qidirib topganimdan so'ng, men chizilgan qiymatlarni topdim, lekin nima qilsam ham, bu ishlatilmadi. Kichkina, lekin to'satdan harakatlar katta pog'onalarga olib keladi, uzoqroq sayohatlar hatto jadvalda ham ko'rinmaydi. MPU6050 -ni ikki kun urganimdan so'ng, men nihoyat taslim bo'ldim va boshqa narsaga o'girildim - demontaj qilingan printerning pozitsiyasini qayta ko'rib chiqish mexanizmi.
2 -qadam: Bajarilishi kerak bo'lgan uskunalar
Teskari muhandislik
Albatta, printer mexanizmida uning aniq xususiyatlarini aniqlash uchun ishlatadigan bo'lak raqami yo'q edi, biz xohlagan joyga erishish uchun biroz teskari muhandislik kerak edi. Mexanizm va elektronikani sinchkovlik bilan o'rganib chiqib, men birinchi navbatda optik sensorlar pimlarini aniqlash kerak deb qaror qildim. Hamma narsani Arduino -ga ulash uchun buni qilish kerak edi. Men qora plastik qismni demontaj qildim, tenglikni oldim va sensorni tekshirdim: uning ustida ROHM RPI-2150 yozilgan edi. Bu meni xursand qildi, ma'lumotlar jadvalini topaman degan umid katta edi. Afsuski, bu eski yoki odatiy qism - Internetda hech qanday ma'lumot varag'i yo'q edi. Bu shuni anglatadiki, men hamma narsani o'z qo'limga olishim kerak edi: bu sensorlarda odatda infraqizil LED va ikkita foto-tranzistor borligini bilib, men multimetrni oldim, diodni o'lchash rejimiga qo'ydim va pimlarni o'lchashni boshladim.
Quvvat pinlarini odatda topish oson - ular bo'ylab kondansatörler bo'ladi va ular odatda PCB -lardagi keng izlar bilan bog'lanadi. Shovqinni yaxshiroq rad etish uchun er izlari ko'pincha bir nechta prokladkalarga ulanadi.
Kirish va chiqish pinlari unchalik ahamiyatli emas. Diyot bo'ylab o'lchashda hisoblagich bir yo'nalishda oldinga kuchlanishini, ikkinchisida ortiqcha yuklanishini (cheksiz) ko'rsatadi. Men pinlar orasidagi to'rtta diodni aniqlay oldim, men to'rtinchi diod qandaydir zener yoki TVS diodi bo'lishi kerak, degan xulosaga keldim, chunki bu komponentning quvvat pimlari o'rtasida edi. Infraqizil emitentni topish oson edi, u bilan ketma -ket 89R qarshilik bor edi. Qolgan ikkita pimdagi ikkita diod o'lchovi qoldi, bu ikkita qabul qiluvchi bo'lishi kerak edi.
Eslatma: Bu datchiklar impulslarni sanash orqali pozitsiyani aniqlashdan tashqari, harakat yo'nalishini ham aniqlay oladigan ikkita qabul qilgichga ega. Ushbu ikkita chiqish to'lqin shakli 90 ° fazadan tashqarida, bu hisoblash yoki pastga tushish pulsini ishlab chiqarish uchun ishlatiladi. Bu pulslar sonini kuzatib, bosib chiqarish boshining aniq holatini aniqlash mumkin.
Emitent va ikkita qabul qilgich joylashganda, men ularning pinlariga simlarni lehimladim, shuning uchun sensorni Arduino bilan bog'lay olaman. Buni amalga oshirishdan oldin, men sensorga 3,3V etkazib berdim, sensor orasidagi chiziqni bir necha marta tortdim va chiqishdagi kvadrat to'lqinni kuzatdim. Kvadrat to'lqinning chastotasi harakat tezligiga qarab o'zgarib turdi va men xulosa qildimki, o'lchov tizimi endi Arduino -ga ulanishga tayyor.
Arduino -ni ulash
Ushbu yangi "sensor" ni ulash juda oson. Sensor chiqishlarini D2 va D3 ga ulang (uzilishga qodir pinlar!), Va elektr uzatish liniyalari va kodlashni boshlash mumkin.
3 -qadam: Arduino kodlash
Arduino kodi juda oddiy. Men har safar D2 ko'tarilgan chekkani ko'rganda bajaradigan funktsiyani tayinladim, bu men biriktirgan Arduino kodidan o'tgan funksiya. Agar siz kvadrat enkoderning signallarini ko'rib chiqsangiz, buni ko'rasiz:
- bir yo'nalishda A fazasi har bir fazaning ko'tarilish burchagida yuqori mantiqdir
- boshqa yo'nalishda A fazasi har bir B bosqichining ko'tarilish chekkasida mantiq past
Bu men foydalangan enkoderning mulki edi: o'tgan funksiya har safar D2 ko'tarilgan tomonni bajargani uchun, men D3 baland bo'lganda hisoblagichni ko'paytirsa, D3 past bo'lganda uni kamaytiradi, deb yozdim. Bu birinchi urinishda ishladi, men hisoblagich qiymatini ketma -ket monitorga yubordim va printer boshini milga ko'chirganimda uning ko'payishi/kamayishini kuzatdim.
Qisqa qilib aytganda, dasturiy ta'minot loop funktsiyasida quyidagilarni bajaradi:
- kiruvchi ma'lumotlar uchun ketma -ket qabul qilish buferini tekshiradi
- agar kiruvchi ma'lumotlar bo'lsa, u '1' yoki yo'qligini tekshiring
- agar bu "1" bo'lsa, demak, kompyuter dasturi hisoblagich qiymatini so'raydi
- hisoblagich qiymatini ketma -ket kompyuterga yuboring
- 1dan boshlang.
Bu bilan, to'p hozirda kompyuter dasturlari maydonida. Keling, bunga kiraylik!
4 -qadam: Visual Studio C# dasturiy ta'minoti
VS C# dasturining maqsadi hisoblash yukini Arduino -dan kompyuterga o'tkazish edi. Ushbu dastur Arduino taqdim etgan ma'lumotlarni oladi, tezlikni grafik shaklida ko'rsatadi va ko'rsatadi.
Men birinchi bo'lib Google -da C#-da ketma -ket muloqotni qanday qilish kerak edi. Men MSDN.com saytida juda ko'p yaxshi ma'lumotlarni va yaxshi misolni topdim, keyin men o'zimga kerak bo'lmagan narsani - asosan o'qish qismidan tashqari hamma narsani tashladim. Men COM portini va tezligini Arduinonikiga mos keladigan qilib o'rnatdim, keyin uni bir necha marta sinab ko'rdim va ketma-ket portga kelgan hamma narsani ko'p satrli matnli qutiga tashladim.
Qiymatlar o'qilgandan so'ng, men bir -biridan va ajratuvchi belgilaridan bitta o'lchovni ajratish uchun readto & split funktsiyalaridan foydalanishim mumkin edi. Bular grafik boshqaruv elementiga tuzilgan va qiymatlar ekranda paydo bo'la boshladi.
Agar siz VS asboblar qutisida Chartni boshqarishni ko'rmasangiz, muammoni google -da topishingiz va bu erda echimni topishingiz mumkin (javob №1): havola
O'lchov printsipi
Hisoblar soni va bosh yuradigan masofa o'rtasidagi bog'liqlikni topish uchun biz hisoblash qiymatini nolga qo'ydik, printer boshini qo'lda 100 mm siljitdik va hisoblarning o'zgarishini kuzatdik. Nihoyat, biz quyidagi nisbatga keldik: 1 hisoblash = 0.17094 mm.
Biz masofani so'rashimiz va namunalar orasidagi vaqtni o'lchashimiz mumkin bo'lganligi sababli, biz pozitsiyaning o'zgarishi tezligini hisoblashimiz mumkin - biz tezlikni hisoblashimiz mumkin!
TMR0 tufayli dasturiy ta'minot vaqtining 50ms qo'polligi bor, lekin biz bu vaqtlar unchalik aniq emasligini kuzatdik. Aslida, ba'zi dasturiy ta'minot tezligi o'lchovlaridan so'ng, biz aniqladikki, 50ms 50ms umuman emas. Bu shuni anglatadiki, namunalar belgilangan vaqt oralig'ida olinmagan, shuning uchun tezlikni hisoblash ham belgilangan vaqt bazasidan foydalana olmagan. Bu muammoni topgach, davom etish oson kechdi: biz masofadagi farqni va vaqt farqini oldik va tezlikni D_distance/D_time (D-masofa/50ms o'rniga) deb hisobladik.
Bundan tashqari, bizning tenglamamiz tezlikni mm/50ms birlikda qaytarganligi sababli, biz boshni bir daqiqada [mm/daqiqada] ketadigan masofani olish uchun buni 1200 ga ko'paytirishimiz kerak.
Eslatma: Mach 3 CNC tegirmonini boshqarish dasturi [mm/daqiqa] birliklarida ovqatlanish tezligini aniqlaydi.
Filtrlash
Shu paytdan boshlab o'lchovlar juda aniq bo'lib tuyuldi, lekin o'lchangan signalda shovqin bor edi. Biz buni milning mexanik nomuvofiqligi, valning biriktirilishi va boshqalar sabab bo'lgan deb gumon qildik, shuning uchun o'lchanadigan narsaning yaxshi o'rtacha qiymatini olish uchun uni filtrlashga qaror qildik.
Dasturiy ta'minotni nozik sozlash
Ish vaqti davomida namuna tezligi va filtrlash tezligini o'zgartirish uchun aylantirish paneli qo'shildi - har biri uchun. Shuningdek, uchastkalarni yashirish qobiliyati ham joriy etildi.
5 -qadam: Natijalar
Uskuna va dasturiy ta'minot qismlari tayyor bo'lgach, biz mach 3 + my software bilan uchta o'lchovlar to'plamini o'tkazdik, natijalarni ilova qilingan rasmlarda ko'rishingiz mumkin. Keyingi tajribalar aniqroq ko'rsatdi, filtr va namuna tezligi oshdi. Uchastkalar o'lchangan tezlikni qattiq qizil rang bilan, o'rtacha chiziq chiziqli ko'k bilan ko'rsatilgan.
Aytgancha, Mach 3 bu tezlik sozlamalarini aniq boshqaradi, lekin hozir biz aniq bilamiz:)
Umid qilamanki, sizga teskari muhandislik va suvni sharobga aylantirish haqidagi qisqa ko'rsatma yoqdi!
Salom!
Tavsiya:
Arduino yordamida vosita tezligini o'lchash: 6 qadam
Arduino yordamida motor tezligini o'lchash: Dvigatelning aylanish tezligini o'lchash qiyinmi? Mana bitta oddiy yechim, faqat sizning to'plamingizdagi bitta IQ sensori va Arduino buni qila oladi, bu maqolada men IQ sensori va A yordamida har qanday dvigatelning aylanish tezligini o'lchashni tushuntirib beradigan oddiy qo'llanmani beraman
Shamol tezligini mikro: bit va tezlik bilan o'lchash: 10 qadam
Shamol tezligini mikro: bit va snap davrlari bilan o'lchang: hikoya Qizim va men ob -havo loyihasi anemometrida ishlayotganimizda, biz dasturlash orqali o'yinni kengaytirishga qaror qildik. Anemometr nima? Balki siz " anemometr " hisoblanadi. Bu shamolni o'lchaydigan qurilma
Raqamli ko'p funktsiyali o'lchash vositasi: 21 qadam (rasmlar bilan)
Raqamli ko'p funktsiyali o'lchash vositasi: hammaga salom. Men har doim 3D printer to'shagini tekislashda yordam beradigan qurilma va kerakli uzunlikdagi stikerni osongina kesib olishim uchun egri yuzaning taxminiy uzunligini olishga yordam beradigan boshqa qurilmani xohlardim
Yurak urish tezligini o'lchash barmog'ingiz uchida: yurak tezligini aniqlashning fotopletizmografiya usuli: 7 qadam
Yurak urish tezligini o'lchash barmoq uchida: fotopletizmografiya yurak urish tezligini aniqlash usuli: fotopletizmografiya (PPG)-bu oddiy va arzon optik usul bo'lib, u ko'pincha to'qimalarning mikrovaskulyar to'shagidagi qon hajmining o'zgarishini aniqlash uchun ishlatiladi. U asosan terining sirtini o'lchash uchun invaziv bo'lmagan holda ishlatiladi, odatda
Oqim tezligini o'lchash: 7 qadam (rasmlar bilan)
Oqim tezligini o'lchash: Ushbu qurilma yordamida siz erkin oqim oqimining tezligini o'lchashingiz mumkin. Arduino va hunarmandchilikning ba'zi asosiy ko'nikmalari va, albatta, erkin oqadigan oqim kerak. Bu tezlikni o'lchashning eng amaliy usuli emas