Mundarija:
- Ta'minotlar
- 1 -qadam: Rotary enkoderni tanlang
- 2 -qadam: Kasnaq va rölanti qo'shing
- 3 -qadam: kodlash
- 4 -qadam: simlarni ulash
- 5 -qadam: qismlarni chop eting
Video: Smart 3D printerli filament hisoblagichi: 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Nega filamanni sanashni bezovta qilasiz? Bir nechta sabablar:
Muvaffaqiyatli chop etish uchun to'g'ri kalibrlangan ekstruder kerak bo'ladi: gcode ekstruderga filamanni 2 mm siljishini aytganda, u aynan 2 mm harakatlanishi kerak. Yomon ishlar haddan tashqari ekstrudirovka qilinsa yoki haddan ziyod bo'lsa. Yaxshi kalibrlangan hisoblagich ekstruderni halol saqlashi mumkin
Dilimleyiciler, berilgan bosim qancha uzunlik va og'irlikda bo'lishini taxmin qiladilar va men bu qiymatlarni tekshirmoqchiman
Filament harakatini o'lchash, shuningdek, chop etish qachon va qachon to'xtaganligini bilib olaylik
Menga printerning old qismidagi chirkin gigant logotipni olib tashlash natijasida bo'sh joyni yopish uchun biror narsa kerak edi
Havo salqin
Menga ilhomlantirildi, bu eskirib qolgan PS/2 sichqonchasini 3D printer uchun filament hisoblagichi sifatida ishlatdi. U nafaqat 3D printerga foydali xususiyat qo'shdi, balki poligonga tushib qoladigan eski qurilmani ham o'zgartirdi. Ammo bu loyiha sichqonchaning PS/2 interfeysi atrofida qurilgan bo'lib, bu juda qiyin bo'lib tuyuldi. Men buni yagona muhim komponent - rotatorli enkoder bilan tanishish imkoniyati sifatida oldim.
Ta'minotlar
Aylanadigan kodlovchi
ESP32 asosidagi ishlab chiqarish kartasi
I2C OLED displeyi (ikki rangli birlik ayniqsa zo'r ko'rinadi)
Kichkina lahzali tugma
Yog'sizlangan 608ZZ rulman
Uskuna do'konidan ikkita halqa (~ 33 mm ID x ~ 1,5 mm profil diametri - sharhlarga qarang)
Korpus uchun ikkita 2,5 mm o'z-o'zidan tejamkor vint
Printerga o'rnatishni o'rnatish uchun ikkita 4 mm vintlar, yong'oqlar va yuvish moslamalari
Bir nechta simlar
3D printer va ba'zi filamentlar
1 -qadam: Rotary enkoderni tanlang
Rotary enkoderlari aylanish harakatini elektr impulslariga aylantiradi. Barcha eski maktab sichqonchalari ularni to'pning harakatini o'lchash uchun ishlatgan, va zamonaviyroq (ha ha) optik sichqonlar hali ham ularni aylantirib yuradigan g'ildirak uchun ishlatgan. Afsuski, meniki aniq ulanish nuqtalarini taklif qilmadi va uning o'lchamlari yomon edi.
Agar bunga arziydigan bo'lsa, uni ortiqcha qilishga arziydi. Shunday qilib, men katta, do'stona, har bir inqilob uchun 360 pulsli kodlovchi sotib oldim va uning atrofida loyihamni qurdim. Men tanlagan LPD3806-360BM-G5-24C tipidagi Signswise ortib boruvchi optik aylanuvchi kodlovchi edi. Lekin har qanday munosib kodlovchi bajaradi.
2 -qadam: Kasnaq va rölanti qo'shing
Filamanning chiziqli harakati kasnaq yordamida enkoderning aylanish harakatiga aylanadi. Va filament g'altakning kasnagiga tutiladi.
Kasnaqda ikkita yiv bor, ularning har biri uzuk halqasini ushlab turadi, shuning uchun sirg'alish bo'lmaydi, Bo'shashgichda filamentni kodlovchi kasnagida markazda ushlab turish uchun bitta v-truba mavjud. U men yotqizgan 608ZZ rulmanga o'rnatilgan va u loyihamning asosiy qismida bosilgan spiral buloqqa o'rnatilgan. (STL fayllari quyida biriktirilgan.)
To'g'ri qaror qabul qilish uchun biroz sinov va xatolar kerak edi, lekin mening dizaynim har xil burchak va g'altakning radiusiga mos kelishi kerak, bu esa ipni g'altakning istalgan qismidan, bosib chiqarish boshidan oxirigacha ochishga imkon beradi. Va bosilgan buloq g'altakni almashtirganda filamanga kirishni osonlashtiradi.
3 -qadam: kodlash
Filamentni sanash uchun ikkita raqamli kirishga ega bo'lgan har qanday asboblar paneli ishlaydi. Men tanlagan enkoderning to'rtta pimi bor: Vcc, er va ikkita kodlovchi pin. Bu erda aylanadigan kodlovchi qanday ishlashini va ularni Arduino bilan qanday bog'lanishini tushuntiradigan juda yaxshi yozuv. (Shuningdek: bu maqola 3 pinli kodlovchi haqida.)
Asosiy hisoblash oddiy: ikkita kirish - ichki qarshilik uchun o'rnatiladi, shuning uchun tashqi rezistorlarni Vccga lehimlashning hojati yo'q - va bitta uzilish. Men yana nol/reset tugmachasini qo'shdim, bu yana bitta kirish va uzilishni talab qiladi:
bo'sh setUpPins () {
pinMod (ENCODER_PIN_1, INPUT_PULLUP); pinMod (ENCODER_PIN_2, INPUT_PULLUP); pinMod (ZERO_BTN_PIN, INPUT_PULLUP); attachInterrupt (ENCODER_PIN_1, encoderPinDidChange, CHANGE); attachInterrupt (ZERO_BTN_PIN, zeroButtonPressed, CHANGE); } bo'sh IRAM_ATTR encoderPinDidChange () {if (digitalRead (ENCODER_PIN_1) == digitalRead (ENCODER_PIN_2)) {pozitsiya += 1; } boshqa {pozitsiya -= 1; }} void IRAM_ATTR zeroButtonPressed () {// nol bilan ishlov berish va qayta o'rnatish}
Lekin men faqat soqov hisoblagichdan ko'proq narsani xohlardim. ESP32 (yoki ESP8266) va uning ichki Wi-Fi tarmog'i yordamida men yig'ayotgan ma'lumotlarim bilan biror narsa qila olaman. Oddiy taymut kodidan foydalanib (quyida tushuntiriladi), men chop etish qachon boshlanishini va tugashini aniqlay olaman va bu voqealarni telefonimga bildirishnoma sifatida yuboraman. Kelgusida men tugatish sensori qo'shib, e'tiborim kerak bo'lganda o'zimni xabardor qila olaman (va printerimni to'xtatib qo'yaman).
To'liq kod Github -da.
Kod bo'yicha bir nechta eslatmalar:
Buni sizning konfiguratsiyangizga moslashtirish uchun sizga kerak bo'lgan yagona narsa - bu inqilobdagi pulslarda, odatda ko'rsatilgan spetsifikatsiyadan ikki baravar ko'p bo'lgan rezistor (encoderPPR) va kasnaq radiusi (wheelRadius). Bu qiymatlar, shuningdek, Wi -Fi tarmog'ining ssid va paroli, tugma, kodlovchi va OLED ekranga ulangan pinlar hammasi config.h ga kiradi
Nol tugmasi ham asl holatini tiklash vazifasini bajaradi - taxtani qayta ishga tushirish uchun uni ushlab turing, bu disk raskadrovka uchun foydalidir
Uzilishlar kuchli - ba'zida juda kuchli. Nol tugmachasini bir marta bosish zeroButtonPressed () funktsiyasini 10-20 marta chaqirilishiga olib kelishi mumkin, shuning uchun men ba'zi bir o'chirish mantig'ini qo'shdim. Mening optik kodlovchimga kerak emas edi, lekin YMMV
Uzilishlar asinxron kirishlar haqida g'amxo'rlik qilsa, loop () tartibi buxgalteriya hisobini yuritadi. EncoderState - ovqatlanish, qaytarish yoki to'xtatish mumkin bo'lgan enum - kodlovchi o'rnining o'zgarishi bilan yangilanadi. Vaqt tugagandan so'ng, printer qachon chop etish boshlanganini va tugaganligini aniqlaydi. Ammo qiyin tomoni shundaki, 3D -printerlar tez -tez harakatni boshlaydi va to'xtatadi, shuning uchun eng yaxshisi, "bosib chiqarish tugadi" hodisasini aniqlash edi, u kamida 5 soniya davomida to'xtab qoldi. Har qanday harakat, "bosib chiqarish boshlandi" hodisasini aniqlaydigan ikkinchi taymerni ishga tushiradi, agar 15 soniya ichida "bosib chiqarish tugallanmagan" voqea sodir bo'lsa. Amalda, bu suzish bilan ishlaydi
Shunday qilib, asosiy loop () kodi raqamsiz ishlay oladi, o'chirish kodi RTOS vazifa tsiklida ishlaydi. Xuddi shunday, http xabarnomalarini yuborish so'rovlari ham sinxron va shuning uchun fonga ega. Shunday qilib, animatsiyalar muammosiz ishlaydi va hisoblash hech qachon to'xtamaydi
Mening misolimda (A) WiFi va mDNS bilan tarmoq ulanishini o'rnatish va qo'llab-quvvatlash uchun bir nechta qo'shimcha kod mavjud, (B) NTC serveridan vaqtni oladi, shuning uchun men boshlanish va tugash haqidagi bildirishnomalarni vaqtli muhrlab qo'yishim va yosh soatni ko'rsatishim mumkin. mening OLED -da va (C) OTA yangilanishlarini boshqaradi, shuning uchun men kodni yangilash uchun platamni Mac -ga jismonan ulashim shart emas. Hozirda hammasi bitta monolit C ++ faylida, chunki men uni yaxshiroq tashkil qilishga vaqt ajratmaganman
Men ajoyib (va bepul) Prowl iOS ilovasidan telefonimga HTTP Get usullaridan boshqa hech narsa bo'lmagan push -bildirishnomalarni yuborish uchun foydalandim
Kodni ishlab chiqish va taxtani o'chirish uchun men Visual Studio Code -da ishlaydigan ajoyib PlatformIO -dan foydalandim, ikkalasi ham bepul
Loyiham uchun men quyidagi kutubxonalardan foydalandim: Oliverning u8g2, Pol Stoffregenning elapsedMillis va Espressif ESP32 platformasi bilan birga kelgan Markus Sattlerning HTTPClient. Qolganlarning hammasi Arduino kutubxonasi yoki PlatformIO -dagi ESP32 platformasi bilan birga keladi
Nihoyat, men asosiy kasnagimning oltita oddiy bitmapini har xil burchakda yaratdim, shunda men peshtaxta ortidagi OLED -da ozgina aylanadigan g'ildirakli animatsiyani ko'rsatishim mumkin edi. U enkoder bilan to'g'ri yo'nalishda harakat qiladi, garchi ancha dramatik ta'sir ko'rsatsa
4 -qadam: simlarni ulash
Men shunday loyihalashtirdimki, simlar o'ta sodda bo'ladi, asosan mening muhofazam kichik bo'lishi mumkin, lekin disk raskadrovka ham to'g'ri bo'ladi. Kichkina qutimdagi tor sharoitlarga e'tibor bering.:)
Birinchi talab - bu mening aylanadigan enkoderning 5V kuchlanish. Men saqlagan har xil ESP32 dev platalaridan faqat bir nechtasi USB orqali quvvatlanganda Vcc pinida haqiqiy 5V bilan ta'minlangan. (Qolganlari 4,5-4,8 V ni o'lchagan, agar sizning matematikangiz yomon bo'lsa, 5 V dan past bo'ladi.) Men ishlatgan taxta Wemos Lolin32 edi.
Keyinchalik, ikkita aylanadigan kodlovchi signal pinlari keladi. Men uzilishlardan foydalanganim uchun, asosiy tashvish shundaki, men ishlatadigan pinlar hech narsaga aralashmaydi. ESP32 hujjatlarida ADC2 -ni WiFi bilan bir vaqtda ishlatish mumkin emasligi aytilgan, shuning uchun afsuski, men ADC2 GPIO pinlaridan hech birini ishlata olmayman: 0, 2, 4, 12, 13, 14, 15, 25, 26, yoki 27. Men 16 va 17 ni tanladim.
Pro maslahat: agar bularning barchasini birlashtirgandan so'ng, sizning kodlovchi orqaga qarab hisoblansa, config.h da ikkita pinli topshiriqni almashtirishingiz mumkin.
Nihoyat, aylanadigan kodlovchi topraklama simini… baraban rulosiga … topraklama pimiga ulang.
Keyin nol/reset tugmachasi yer va boshqa bo'sh pin o'rtasida ulanadi (men GPIO 18 ni tanladim).
Men ishlatgan tugma, men yuqorida aytib o'tilgan kompyuter sichqonchasidan qutqarib qolgan kichik bir lahzali kalit edi, lekin siz qo'ygan har qanday tugma bajaradi. Siz uni taxtaning ustida men yasagan kichik tog'da dam olishini ko'rishingiz mumkin.
Nihoyat, OLED, agar u sizning kartangizga ulanmagan bo'lsa, faqat to'rtta pin kerak: 3V3, tuproq, i2c soat va i2c ma'lumotlari. Mening taxtamda soat va ma'lumotlar mos ravishda 22 va 21.
5 -qadam: qismlarni chop eting
Men ushbu qurilish uchun etti qismni ishlab chiqdim:
To'g'ridan -to'g'ri aylanadigan enkoderning miliga o'rnatiladigan kasnaq
608ZZ dan ortiq rulmanga mos keladigan bo'shashtirgich (qobiqlarni olib tashlang va WD40 bilan yog'ni tozalang, shunda u erkin aylanadi)
Ikkita taroq va enkoder o'rnatilgan ushlagich - bo'sh turgan odam uchun spiral buloqqa e'tibor bering
Tutqichni barqarorlashtirish uchun qavs. Ushbu bosqichdagi fotosuratda ushlagich ushlagichga qanday biriktirilganligi ko'rsatilgan
Mening ESP32 dev platamni ushlab turadigan korpus (pastda), yonida USB kabeli uchun joy, ikkinchisida esa ulagich uchun men kodlovchi simlarimga qo'shdim. Bu Wemos Lolin32 -ga mos keladigan tarzda ishlab chiqilgan, shuning uchun siz boshqa dizaynga mos kelish uchun ushbu dizaynni biroz o'zgartirishingiz kerak bo'ladi
OLED ekranini ushlab turish uchun korpus (tepada), nol / reset tugmasi uchun yana bir spiral
Kichkina kalit uchun moslashtirilgan tugma ushlagichi, pastki korpus ichidagi ikkita tokchaning o'rtasida dam olish uchun mo'ljallangan. Men kalitni ushlagichga "yopishtirish" uchun lehim temiridan foydalandim; rasm uchun oldingi qadamni ko'ring
Hamma narsa tayanchlarsiz chop etishga mo'ljallangan. Siz tanlagan rangdagi oddiy PLA - bu sizga kerak.
Hammasini bir joyga to'plang, printerga ulang (bu erda ijodkorlik talab qilinishi mumkin) va siz borishga tayyormiz.
Tavsiya:
Yuqori aniqlikdagi chastota hisoblagichi: 5 qadam (rasmlar bilan)
Yuqori aniqlikdagi chastota hisoblagichi: Bu ko'rsatma chastotalarni tez va oqilona aniqlik bilan o'lchashga qodir o'zaro chastota hisoblagichini ko'rsatadi. U standart komponentlardan tayyorlangan va uni hafta oxiri qilish mumkin (menga biroz ko'proq vaqt kerak bo'ldi :-)) EDIT: Kod hozirda mavjud
Arduino bilan chastota hisoblagichi: 8 qadam (rasmlar bilan)
Arduino bilan chastota hisoblagichi: bu oddiy va arzon arduino asosidagi chastota hisoblagichining narxi 4 dollardan past, kichik sxemalarni o'lchash juda foydali bo'lgan
MOSTER FET - Dual 500Amp 40 voltli MOSFET 3d printerli isitiladigan yotoq haydovchilari: 7 qadam (rasmlar bilan)
MOSTER FET - Dual 500Amp 40 Voltli MOSFET 3d printerli isitiladigan yotoq haydovchilari: Siz, ehtimol, bu fikrlaydigan muqaddas sigirni, 500 AMPS ni bosgansiz !!!!!. Rostini aytsam, men ishlab chiqqan MOSFET taxtasi 500Ampsni xavfsiz bajarolmaydi. Bu qisqa vaqt ichida, alangalanib ketguncha bo'lishi mumkin edi, bu shunchaki aql bovar qilmaydigan qilib yaratilgan
Yangi va takomillashtirilgan Geiger hisoblagichi - Endi WiFi bilan!: 4 qadam (rasmlar bilan)
Yangi va takomillashtirilgan Geiger hisoblagichi - Endi Wi -Fi bilan!: Bu mening ko'rsatgichimdagi Geiger hisoblagichimning yangilangan versiyasi. Bu juda mashhur edi va men uni qurishga qiziqqan odamlarning yaxshi fikrlarini oldim, shuning uchun davomi: GC-20. Geiger hisoblagichi, dozimetr va nurlanish m
YouTube abonentlari hisoblagichi ESP8266 IoT bilan: 5 qadam (rasmlar bilan)
ESP8266 IoT bilan YouTube obunachilari hisoblagichi: Bu erda men sizga birinchi narsalarning Interneti (IoT) loyihasini keltirdim. Men yangi youtuberman va o'z obunachilarimni stolimga yoki devorga ramkaga qo'yib qo'yish men uchun ajoyib tuyuladi. Shuning uchun men ushbu ajoyib loyihani siz uchun oson va foydali qildim