Mundarija:

Arduino uchun robotli filamentli dispenser: 8 qadam (rasmlar bilan)
Arduino uchun robotli filamentli dispenser: 8 qadam (rasmlar bilan)

Video: Arduino uchun robotli filamentli dispenser: 8 qadam (rasmlar bilan)

Video: Arduino uchun robotli filamentli dispenser: 8 qadam (rasmlar bilan)
Video: Setting up a 3d Printer with MKS sGen L v1.0 Part 3 2024, Noyabr
Anonim
Image
Image

Nima uchun motorli vosita

3D -printerlar filamenti - odatda deyarli mustahkam - ekstruder tomonidan tortiladi, rulon printerning yoniga qo'yiladi va aylanishi mumkin. Men 1Kg filamentli rulonlarga taalluqli, foydalanish darajasiga qarab moddiy xatti -harakatlarning mazmunli farqlarini ko'rdim. Yangi (to'liq) filament g'altagi deyarli yaxshi oqadi, lekin ekstruder tomonidan qo'llaniladigan kuch nisbatan ahamiyatli bo'lishi kerak: og'irligi kamida 1,5 kg.

Ekstruder dvigateli (aksariyat hollarda Nema17 zinapoyasi) ishni bajarish uchun etarli kuchga ega, lekin ishlayotganda ekstruzatorning ikkita tishli qismi filamentni issiq tomonga suradi; bu burun tiqilib qolmasligi uchun tez -tez ekstruderga texnik xizmat ko'rsatishni talab qiladi. Bu zarralar oziqlanayotganda toza filamentni ajratib olish va aralashtirishga moyil bo'ladi, bu esa nozullar bilan bog'liq muammolarni kuchaytiradi va burun tez -tez eskiradi; Bu 0,3 mm diametrli nozullar bilan tez -tez sodir bo'ladi.

Filament rulosi yarim yoki undan ko'p ishlatilganda uning spirallari kichrayadi va ba'zi muhit sharoitida filament tez -tez sinib ketadi. Uzoq bosib chiqarish ishlari kamroq ishonchli va stressli bo'ladi; Men printerni butun kecha yolg'iz ishlay olmay, uni nazorat qilolmayman. Shunday qilib, dvigatellar yordamida filamentning uzatilishini boshqarish bir qator muammolarni hal qiladi.

To'plam Tindie.com saytida mavjud

1 -qadam: To'plam tarkibi

To'plam tarkibi
To'plam tarkibi
To'plam tarkibi
To'plam tarkibi

To'plamga 3D bosilgan barcha qismlar va motorli filament dispenserini yig'ish mexanikasi kiradi. Buning o'rniga ikkita ixtiyoriy qism mavjud: vosita va dvigatelni boshqarish paneli.

O'rnatish jarayonida men 12 V McLennan tishli cho'tkali dvigateldan foydalandim, lekin 37 mm diametrli har qanday dvigatel dvigatel tayanchiga to'g'ri joylashishi mumkin.

Eng yaxshi ko'rsatkichlarga Infineon tomonidan TLE94112LE Arduino qalqoni orqali erishiladi (to'liq sharh bu erda); bu shahar motorli boshqaruv paneli bir vaqtning o'zida 6 tagacha robotli dispenser to'plamini qo'llab -quvvatlashi mumkin.

Men butun tizimni Infineon tomonidan Arduino UNO R3 va Arduino bilan mos keladigan XMC1100 Boot to'plamida sinab ko'rdim va tizim ikkala mikro -nazorat kartalari bilan juda yaxshi javob berdi.

TLE94112LE qalqonidan foydalanish tavsiya etiladi, lekin muhim emas. Arduino uchun har qanday shahar motorli boshqaruv moslamasi - shu jumladan o'z loyihangiz! - bu asbob bilan yaxshi ishlashi mumkin

To'plam ikkita komponentga bo'lingan, chunki birgalikda ishlash uchun ikkita qism qurilgan. Asosiy platforma to'rtta g'ildirakli rulmanlarda aylanadigan filament rulosini qo'llab -quvvatlaydi. Baza og'irlik sensori bilan mahkamlanadi, u aylanuvchi mexanizmni boshqaradi, uning tetiklanishini ta'minlaydi, shuningdek filament holatini kuzatadi: og'irlik, metr va foiz. Arduino -dan ketma -ket terminal orqali ko'plab ma'lumotlarga va to'liq buyruqlar to'plamiga kirish mumkin.

Sizga kerak bo'lgan asboblar

O'rnatishni yakunlash uchun sizga ba'zi qismlarga mustahkam plastik yopishtiruvchi, tornavida va Allen vintlar to'plami kerak bo'ladi.

2 -qadam: Loyiha va dizayn

Loyiha va dizayn
Loyiha va dizayn
Loyiha va dizayn
Loyiha va dizayn
Loyiha va dizayn
Loyiha va dizayn

Bu loyiha - 3D printerli filamentli dispenser seriyasining uchinchi evolyutsiyasi Bir necha marta ilgari men 3D printer ekstruderidan tortilganda filaman oqimini optimallashtirish uchun aylanadigan tayanchni yaratganman.

Ikkinchi modelga Arduino platasi yordamida filamanlardan foydalanishni real vaqt rejimida kuzatish uchun og'irlik sensori kiritilgan. Bu oxirgi loyiha 3D printer ishining ehtiyojlariga qarab filamanning avtomatik chiqarilishini o'z ichiga oladi. Ekstruder filamentni torta boshlaganda, bu virtual vazn o'zgarishiga asoslangan. Bu hodisa og'irlik sensori orqali mikrokontrollerni ishga tushiradi va motorli filament rulosi bir necha dyuymli materialni bo'shata boshlaydi, keyin sekinlashadi va to'xtaydi.

Komponentlar STL formatida va 3D formatida eksport qilindi, keyin qayta ishlandi va yig'ildi. Harakat qismini tayanchga moslashtirish uchun men maxsus qo'llab -quvvatlash yaratdim. Uzunroq alyuminiy panjara, shuningdek, butun asbobni ixcham va harakatlanishi oson bo'lishi uchun Arduino va dvigatel qalqonini qo'llab -quvvatlash uchun ishlatilgan.

Dizaynni yaratishda men bir qator taxminlarga amal qildim:

  • Avtomatlashtirilgan dvigatelni deyarli sodda qilish va ko'paytirish oson
  • Buni amalga oshirish uchun 3D formatida chop etilmaydigan komponentlar sonini iloji boricha kamaytiring
  • Bosib chiqarish paytida ekstruderga tushadigan stressni iloji boricha kamaytiring
  • Arzon narxdagi va dasturlash oson bo'lgan mikro -boshqaruv kartasidan foydalaning
  • Filament iste'moli va filamentni oziqlantirishni nazorat ostida ushlab turish uchun og'irlik yukini o'lchash datchigidan foydalaning.

Bu men erishgan natija.

3 -qadam: bazani yig'ish

Baza yig'ish
Baza yig'ish
Baza yig'ish
Baza yig'ish
Baza yig'ish
Baza yig'ish

Birinchi qadam - tayanchni og'irlik sensori bilan yig'ish.

  1. Kichik yotoq o'qi trubkasini rulman teshigiga joylashtiring
  2. Rulmanning yon tomonlariga ikkita ajratuvchi diskni joylashtiring
  3. Teshiklarni tekislaydigan "U" o'lchamli rulman tayanchining tarkibiy qismlarini kiriting
  4. Allen vintini bir tomonga, yuvish mashinasini va gaykani boshqa tomonga joylashtiring va ortiqcha harakat qilmasdan gaykani yoping

Siz operatsiyani to'rtta rulman tayanchida takrorlashingiz kerak. Keyin yig'ishni sinab ko'ring: rulmanlar erkin aylanishi kerak.

Endi Allen vintlari bilan to'rtta o'rnatish teshigi bo'lgan yuqori taglikdagi to'rtta yotoq tayanchini mahkamlang. Rulman tayanchlarini parallel ushlab turish uchun ularni tekislang. Filament rulonlarining kengligiga qarab masofani tartibga soling.

Keyingi qadam, pastki va yuqori poydevorni ushlab turadigan vazn sensori panelini yig'ishdir. Og'irlik sensori har ikki tomonida ikkita turli xil Allen vintlari bor va siz uni yo'naltirishingiz kerak, shunda taglik to'g'ri joylashganda maksimal vazn yorlig'i o'qiladi. Pastki taglik A/D og'irlik sensori kuchaytirgichini to'g'rilash uchun ikkita qo'shimcha yon teshikka ega. HX711 IC asosidagi kuchaytirgich quvvatlanadi va Arduino kartasiga to'rtta sim orqali ulanadi, ular sensorli ma'lumotlar varag'ida ko'rsatilgan.

Oxirgi qadam, pastki qismga o'rnatilgan og'irlik sensori ustidagi to'liq tayanchni yig'ishdir.

Birinchi komponent sozlandi!

4 -qadam: Spool Motion dvigatel qismlarini yig'ish

Dvigatel g'altakning qismlarini yig'ish
Dvigatel g'altakning qismlarini yig'ish
Spool Motion dvigatel qismlarini yig'ish
Spool Motion dvigatel qismlarini yig'ish
Spool Motion dvigatel qismlarini yig'ish
Spool Motion dvigatel qismlarini yig'ish

Dvigatelni yig'ishning eng oson usuli - bu to'rtta eng muhim komponentni alohida yig'ish, so'ngra oxirgi binoni tugatish:

Dvigatel uzatish qutisidagi tishli shahar mexanizmi

Shahar motorini konstruktsiya tayanchining markaziy qismiga o'rnatish kerak; Dvigatelni burab qo'yishdan oldin, dvigatelni ushlab turadigan ikkita qo'lni va katta vitesni to'g'ri hizalamoq uchun tishli tomonni qayerga qo'yish kerakligi haqida qaror qabul qilishingiz kerak.

Quvvatlanadigan katta vites

Katta tishli to'rtta Allen vintlari bilan kesilgan konusli blok bilan vidalanishi kerak. Bu vites aylanadigan o'qda yong'oqlar bilan bloklanadi; konusning qismi boshqa kesilgan konusli blok ichidagi shunga o'xshash qulf somunlari bilan boshqa tomonga qulflangan filament g'altakni ushlab turadi. Bu yechim nafaqat harakatlanuvchi mexanizmni ushlab turadi, balki butun og'irlikni tayanchga yo'naltiradi va bu tizimning og'irligi.

G'altak qulf ushlagichi

Bu kesilgan konus shaklidagi blok bo'lib, u xuddi shunga o'xshash qulflangan tomon bilan birga harakat mexanizmini filament g'altagiga mahkamlab qo'yadi. Oddiylik bilan aytganda, bu filament rulosi bo'lib, u qurilishni tugatadi, shu bilan birga ikkita qo'l tayog'i boshqa tomondan erkin harakatlana oladi.

Rasmda ko'rsatilgandek, qulf ushlagichi ikki qismdan iborat. Avval M4 yong'og'ini blokning katta qismiga joylashtiring, so'ngra bloklarni bir -biriga bog'lab turgan ikkinchi qismini (qopqog'ini) yopishtiring. Yong'oq qulf ushlagichi ichida saqlanib qoladi, u tishli o'qga vidalanadi.

Rulmanlar qutisi

Rulman qutisi ikkita funktsiyaga ega: uzatish uzatmalarini yaxshi qo'llab -quvvatlash va silliq va jim harakat. Rulman qutisini yig'ish uchun quyidagi oddiy qadamlarni bajaring:

  1. Birinchi M4 somunini tishli g'altak ushlagichi o'qining ikki uchidan biriga mahkamlang
  2. Birinchi rulmanni joylashtiring
  3. Ajratgichni joylashtiring
  4. Ikkinchi rulmanni joylashtiring
  5. Ikkinchi yong'oqni burab, o'rta darajada qulflang. Ichki plastmassa ajratgich, narsalarni uzoq vaqt ishlatish uchun joyida ushlab turish uchun etarli kuchga qarshilik qiladi.
  6. O'rnatilgan rulmanlarni rulman qutisiga joylashtiring. Buni yaxshi natijalarga erishish uchun majburlash kerak, shuning uchun plastik qismlarni tozalashda qutining ichki qismini juda ko'p kengaytirmang.

Biz oxirgi komponentlarni yig'ishga tayyormiz!

5 -qadam: Harakat dvigatelining yig'ilishini yakunlash

Harakat dvigatelining yig'ilishini yakunlash
Harakat dvigatelining yig'ilishini yakunlash
Harakat dvigatelining yig'ilishini yakunlash
Harakat dvigatelining yig'ilishini yakunlash
Harakat dvigatelining yig'ilishini yakunlash
Harakat dvigatelining yig'ilishini yakunlash

Biz strukturani yig'ishni tugatmoqchimiz, keyin sinov harakatiga o'tishimiz mumkin. Endi sizga yana bir nechta yopishtiruvchi kerak bo'ladi. Rulman qutisi - oldingi bosqichda yig'ilgan - dvigatelning ikkita qo'ltig'ining quti ushlagichi teshigiga joylashtirilishi va qutining qopqog'ini burab qo'yishdan oldin yopishtirilgan bo'lishi kerak.

Ogohlantirish: qutining qopqog'ini yopishtirmang, faqat vidalang. Qopqoq changdan himoya qilishda muhim ahamiyatga ega va kelajakda har qanday texnik xizmat ko'rsatish uchun olinadigan bo'lishi kerak.

O'rnatish tugallangach, harakatlanuvchi vitesni (kattaroq) qo'shishdan oldin, kichik ajratuvchi halqani qo'shing: u katta vitesni mexanik tishli bilan bir xilda ushlab turadi, bu esa boshqariladigan harakatlanuvchi moslamani to'g'rilash uchun yuvish vositasi vazifasini bajaradi.

Keyin haydovchi tishli qutisini (kichkina) motor miliga joylashtiring. E'tibor bering, dvigatelning tekis tomoni, shuningdek, tishli markaziy teshikda, vitesni doimiy dvigatel bilan boshqarilishini ta'minlaydi.

Oxirgi qadam, rasmda ko'rsatilgandek, katta tishli uzatmani joylashtiring va uni ikkita M4 yong'oq bilan tishli o'qga mahkamlang.

Mexanika qurilishi tugallandi!

6 -qadam: Bonus: To'plamni boshqarish uchun yordamni qanday sozladim

Bonus: To'plamni boshqarish uchun yordamni qanday sozladim
Bonus: To'plamni boshqarish uchun yordamni qanday sozladim
Bonus: To'plamni boshqarish uchun qanday yordam ko'rsatdim
Bonus: To'plamni boshqarish uchun qanday yordam ko'rsatdim
Bonus: To'plamni boshqarish uchun qanday yordam ko'rsatdim
Bonus: To'plamni boshqarish uchun qanday yordam ko'rsatdim

To'plamni joyida saqlash uchun men ikkita alyuminiy kvadrat naychaga asoslangan juda oddiy tuzilmani yasadim, bu ham tayanchni, ham harakat tuzilishini qo'llab -quvvatladi. Baza to'rtta vint bilan ikkita relsga (uzunligi taxminan 25 sm) o'rnatildi va bir nechta 3D bosilgan kichik tayanchlar yordamida filament rulosini joylashtirish va olib tashlashni osonlashtirish uchun harakatlantiruvchi dvigatelni bo'sh joyiga o'rnatdim.

Har kim o'z dastgohi qanday tashkil qilinganiga qarab, o'z echimini tanlashi mumkin.

7 -qadam: Arduino -ga simlarni ulash va ulanish

Image
Image
Arduino -ga ulanish va ulanish
Arduino -ga ulanish va ulanish

Kit tarkibidagi qadamda tushuntirilgandek, men Arduino uchun Infineon TLE94112LE DC dvigatel qalqonidan foydalandim va dvigatelni Arduino UNO R3 va Infineon XMC110 yuklash to'plamida sinab ko'rdim.

Agar siz dvigatelni boshqaradigan bo'lsangiz (PWM xususiyatlariga muhtoj bo'lsangiz), siz tanlagan shahar boshqaruv paneli bilan yo'riqnomani qalqoningizning texnik xususiyatlariga moslashtiring.

TLE04112LE Arduino qalqoni haqida eslatma

Men Arduino uchun boshqa dvigatellarni boshqarish qalqonlari bilan duch kelgan chegaralardan biri shundaki, ular bir xil mikro -kontrollerning xususiyatlaridan foydalanadilar (ya'ni PWM va GPIO pinlari); bu shuni anglatadiki, sizning boshqaruv kengashingiz ushbu vazifalarga bag'ishlanadi, shu bilan birga boshqa maqsadlar uchun boshqa resurslar (MPU va GPIO) mavjud.

Yo'lni sinovdan o'tkazish uchun qo'llarni TLE94122LE Arduino qalqoniga qo'yish imkoniyatiga ega bo'lib, boshqaruv kengashining asosiy afzalliklari uning to'liqligi. Arduino platasi qalqon bilan SPI protokoli orqali faqat ikkita pin yordamida bog'lanadi. Qalqonga yuborgan har bir buyruq TLE94112LE IC tomonidan MPU resurslarini iste'mol qilmasdan avtonom tarzda qayta ishlanadi. Infineon kartasining yana bir diqqatga sazovor xususiyati - bu PWM dasturlanadigan uchta kanalli oltita dvigatelli dvigatelni boshqarish imkoniyati. Bu shuni anglatadiki, Arduino bir yoki bir nechta dvigatellarni o'rnatishi, ishga tushirishi va boshqa vazifalar ustida ishlashni davom ettirishi mumkin. Bu qalqon bir vaqtning o'zida oltita filamentli rulonni qo'llab -quvvatlash uchun mukammal bo'lgan bo'lib, uning harakati MPU zimmasiga yuklatilgan vazifalardan biridir. Bitta Arduino + qalqoni bilan olti xil filamanli g'altakni boshqarish imkoniyatini ko'rib chiqayotganda, mikrokontrolder narxiga ta'sir qiladi. har bir filament tekshirgichida 5 evrodan kam.

Og'irlik sensori

Ba'zi tajribalarni o'tkazgandan so'ng, men butun tizimni nazorat qilish va avtomatik oziqlantirishni bitta sensor yordamida boshqarish mumkinligini ko'rdim; yuk xujayrasi (vazn sensori) biz kerakli barcha ma'lumotlarni taqdim etuvchi filament g'altakning og'irlik o'zgarishini dinamik ravishda o'lchay oladi.

Men yuk xujayralari datchiklarini boshqarish uchun maxsus IC bo'lgan HX711 AD kuchaytirgichiga asoslangan kichik taxta bilan birga 0-5 kg oralig'idagi arzon yuk xujayrasidan foydalandim. Arduino kutubxonasi mavjud bo'lgani uchun interfeys bilan bog'liq muammolar yo'q edi.

Uskunani sozlash uchun uchta qadam

  1. Qalqonni Arduino taxtasi yoki Infineon XMC110 yuklash to'plamining yuqori qismiga joylashtiring
  2. Dvigatel simlarini ekranning Out1 va Out2 vintli ulagichlariga ulang
  3. HX711 AD og'irlik sensori kuchaytirgichidan quvvat va signallarni Arduino pinlariga ulang. Bu holda men 2 va 3 -pinlarni ishlatganman, lekin hamma bo'sh pinlar yaxshi.

Ogohlantirish: 8 va 10 -bandlar SPI ulanishi uchun TLE94113LE qalqoni tomonidan himoyalangan

Hammasi shu! Dasturiy ta'minotni o'rnatishga tayyormisiz? Davom etishga ruxsat.

8 -qadam: Dasturiy ta'minot va boshqaruv buyruqlar to'plami

Dasturiy ta'minot va boshqaruv buyruqlar to'plami
Dasturiy ta'minot va boshqaruv buyruqlar to'plami
Dasturiy ta'minot va boshqaruv buyruqlar to'plami
Dasturiy ta'minot va boshqaruv buyruqlar to'plami
Dasturiy ta'minot va boshqaruv buyruqlar to'plami
Dasturiy ta'minot va boshqaruv buyruqlar to'plami
Dasturiy ta'minot va boshqaruv buyruqlar to'plami
Dasturiy ta'minot va boshqaruv buyruqlar to'plami

To'liq hujjatlashtirilgan dasturiy ta'minotni GitHub 3DPrinterFilamentDispenserAndMonitor omboridan yuklab olish mumkin.

bu erda biz faqat eng mazmunli qismlarni va boshqaruv buyruqlarini ko'rib chiqamiz.

Arduino UNO -da mavjud pinlar soni sabab bo'lgan, men tizimni USB ketma -ket terminali orqali boshqarishga qaror qildim; Har bir motorli birlik og'irlik sezgichiga asoslanganligi sababli, oltita filamanli dispenserni boshqarish oltita og'irlik sensori ma'lumotlarini o'qishni talab qiladi. Har bir yuk xujayrasi ikkita pinni "iste'mol qiladi", 0 va 1 -pinlar ketma -ket (Tx/Rx) va 8 va 10 -pinlar TLE94112LE qalqoni bilan bog'langan SPI kanali uchun ajratilgan.

Tizim holati

Boshqaruv dasturi filament.h da aniqlangan to'rt xil holatda ishlaydi:

#define SYS_READY "Tayyor" // Tizim tayyor

#define SYS_RUN "Running" // Filament ishlatilmoqda #define SYS_LOAD "Load" // Roll loaded #define SYS_STARTED "Started" // Ilova ishga tushdi // Status kodlari #STAT_NONE 0ni belgilang #STAT_READYni 1 belgilang #STAT_LOAT_2 belgilang. 3

Holat: boshlandi

Bu holat apparat qayta tiklanganidan keyin yoki tizim yoqilganda paydo bo'ladi. Quvvatni ishga tushirish (va eskiz boshlanganda sozlash () chaqiruvi) ichki standart qiymatlarni ishga tushiradi va ishga tushirish ketma-ketligining bir qismi sifatida platformada ortiqcha og'irliksiz ishga tushirish kerak, bu jismoniy nol vaznga erishish uchun mutlaq tortish..

Vaziyat: tayyor

Tayyor holat yumshoq qayta o'rnatilgandan so'ng paydo bo'ladi (ketma -ket terminaldan yuboriladi). Bu fizik rezektsiyaga o'xshaydi, lekin hech qanday dara hisoblanmaydi; reset buyrug'i tizim ishlayotgan vaqtda ham ishga tushirilishi mumkin.

Holat: yuk

Yuklanish holati yuklash buyrug'i terminal tomonidan yuborilganda sodir bo'ladi. Bu shuni anglatadiki, filament rulosi yuklangan va dinamik tara hisoblangan. Aniq filament og'irligi, dvigatel blokining og'irligi va bo'sh rulonni olib tashlagan holda, rulonni sozlash yo'li bilan olinadi.

Holat: yugurish

Bu holat avtomatik og'irlik hisobini va avtomatik filament dispenserini ishga tushiradi.

Terminal xabarlari

Dasturiy ta'minotning joriy versiyasi buyruqlarga qarab, inson o'qiy oladigan xabarlarni terminalga qaytaradi. String xabarlar ikkita sarlavhali faylda aniqlanadi: commands.h (buyruq bilan bog'liq xabarlar va javoblar) va filament.h (ajraluvchi xabarlarni yaratish uchun ishlatiladigan satrlar).

Buyruqlar

Buyruqlarni boshqarishda ikki xil fayl qatnashadi: commands.h, shu jumladan, barcha buyruqlar va tegishli parametrlar va filament.h, shu jumladan, tortish tizimi va tahlilchi tomonidan ishlatiladigan barcha konstantalar va ta'riflar.

Ichki hisob -kitoblar avtomatik ravishda dasturiy ta'minot yordamida amalga oshirilganda, men tizimning xatti -harakatlarini sozlash va ba'zi parametrlarni qo'lda boshqarish uchun bir qator buyruqlarni bajarganman.

Buyruq kalit so'zlari katta -kichik harflarga sezgir bo'lib, ularni terminaldan yuborish kerak. Agar buyruq joriy holatga mos kelmasa, noto'g'ri buyruq xabari qaytariladi, aks holda buyruq bajariladi.

Vaziyat buyruqlari

Tizimning hozirgi holatini o'zgartiring va xatti -harakatlar ham moslashtiriladi

Filament buyruqlari

Alohida buyruqlardan foydalanib, bugungi kunda bozorda mavjud bo'lgan eng keng tarqalgan vazn va o'lchamlarga asoslanib, filament va rulon xususiyatlarini sozlash mumkin.

Birlik buyruqlari

Bu o'lchov birliklarining vizualizatsiyasini gramm yoki santimetrda o'rnatish uchun bir nechta buyruqlar. Aslida, bu buyruqlarni yo'q qilish va har doim ikkala birlikdagi ma'lumotlarni ko'rsatish mumkin.

Axborot buyruqlari

Tizim holatiga qarab ma'lumotlar guruhlarini ko'rsatish

Dvigatel buyruqlari

Dvigatelni filament besleme yoki tortish uchun boshqaring.

Dvigatelning barcha buyruqlari tezlashtirish/sekinlashuv yo'lidan o'tadi. Besleme va tortish buyruqlari motor.h da belgilangan qisqa ketma -ketlikni doimiy FEED_EXTRUDER_DELAY bajaradi, feedc va pullc buyruqlari to'xtash buyrug'i olinmaguncha cheksiz ishlaydi.

Ishlash rejimining buyruqlari

Ishlash holati ikkita rejimni qabul qiladi; Odam rejimi vaqti -vaqti bilan og'irlikni o'qiydi va dvigatelni boshqarish buyrug'i yuborilmaguncha harakatlanadi. Ekstruderga ko'proq filament kerak bo'lganda, avtomatik rejim ikkita besleme buyrug'ini bajaradi.

Bu tamoyil ma'lum bir muhitga bog'liq bo'lgan og'irlik ko'rsatkichlariga asoslangan. Biz filament iste'moli nisbatan sekin, 3D -printerlar deyarli sekin va normal og'irlik tebranishi atrof -muhit tebranishiga bog'liq (agar siz hamma narsani 3D -printerga qo'ymasangiz yaxshi bo'ladi).

Ekstruder filamentni tortganda, uning farqi juda oz vaqt ichida (odatda 50 g yoki undan ko'p) keskin oshadi, odatda ikki yoki uch o'qish orasida. Bu ma'lumot yangi filaman zarurligini "olib tashlaydigan" dasturiy ta'minot orqali filtrlanadi. Noto'g'ri o'qishni oldini olish uchun dvigatel ishlayotgan vaqtda vaznning o'zgarishi umuman e'tiborga olinmaydi.

Ilova mantig'i

Dastur mantiqi.ino main (Arduino eskizi) da uchta funktsiya bo'yicha taqsimlanadi: setup (), loop () va parseCommand (commandString)

Eskiz ikkita alohida sinfdan foydalanadi: TLE94112LE Arduino qalqonining past darajali usullari bilan bog'langan HX711 IC va MotorControl klassi orqali barcha filaman hisob -kitoblarini va sensor o'qilishini boshqarish uchun FilamentWeight klassi.

sozlash()

Quvvat yoqilganda yoki apparatni qayta o'rnatgandan so'ng, bir marta ishga tushdi, sinflar misollarini, uskunani va terminal aloqasini o'rnating.

pastadir ()

Asosiy loop funktsiyasi uch xil shartni boshqaradi.

Vazn sensori va dvigatellar uchun nisbatan murakkab ikkita sinf mavjud bo'lsa -da, natijada eskizni tushunish va boshqarish oson.

  1. Ekstruderga ko'proq filament kerakligini tekshiring (avtomatik rejimda)
  2. Agar dvigatel ishlayotgan bo'lsa, apparat xatolarini tekshiring (TLE94112LE tomonidan qaytarilgan)
  3. Agar ketma -ket ma'lumotlar mavjud bo'lsa, buyruqni tahlil qiling

parseCommand (commandString)

Tahlil qilish funktsiyasi ketma -ket kelgan satrlarni tekshiradi va buyruq tan olinsa, u darhol qayta ishlanadi.

Har bir buyruq tizimning ba'zi parametrlariga ta'sir qiluvchi davlat mashinasi vazifasini bajaradi; Ushbu mantiqqa binoan, barcha buyruqlar ketma -ket uchta harakatga tushiriladi:

  1. FilamentWeight sinfiga (vazn buyruqlari) yoki MotorControl sinfiga (motorli buyruqlar) buyruq yuboring.
  2. Og'irlik qiymatlarini yangilash yoki ichki parametrlardan birini yangilash uchun hisobni bajaradi
  3. Ijro tugallangach, terminal va axborot chiqishini ko'rsating

HX711 Arduino kutubxonasini o'rnating, dasturiy ta'minotni GitHub -dan yuklab oling va Arduino kartangizga yuklang, shunda zavqlaning!

Tavsiya: