Sadržaj:

Robotski dozator sa filamentima za Arduino: 8 koraka (sa slikama)
Robotski dozator sa filamentima za Arduino: 8 koraka (sa slikama)

Video: Robotski dozator sa filamentima za Arduino: 8 koraka (sa slikama)

Video: Robotski dozator sa filamentima za Arduino: 8 koraka (sa slikama)
Video: Самые СТРАННЫЕ ИЗОБРЕТЕНИЯ 21 века 2024, Juli
Anonim
Image
Image

Zašto motorni alat

Nit 3D štampača - obično gotovo robustan - povlači ekstruder dok se rolada postavlja u blizini štampača, slobodna za rotiranje. Uočio sam značajne razlike u ponašanju materijala ovisno o razini upotrebe, a odnose se na 1 kg rolne niti. Nova (puna) žica sa filamentom teče skoro dobro, ali sila koju primjenjuje ekstruder treba biti relativno relevantna: težina je najmanje 1,5 kg.

Motor ekstrudera (u većini slučajeva Nema17 steper) ima dovoljnu snagu za obavljanje posla, ali dva zupčanika ekstrudera guraju filament na stranu vrućeg kraja dok rade sakupljaju čestice filamenta uslijed primijenjenih sila; ovo zahtijeva često održavanje ekstrudera kako bi se izbjeglo začepljenje mlaznica. Ove čestice se odvajaju i miješaju sa čistom niti tokom punjenja, povećavajući probleme sa mlaznicama i češće trošenje mlaznica; to se češće događa s mlaznicama promjera 0,3 mm.

Kada se valjak sa uporednom niti upola koristi ili više, njene spirale postaju manje, a u nekim uvjetima okoline nit se prečesto lomi. Dugi poslovi ispisa postaju manje pouzdani i stresni; Ne mogu ostaviti štampač da radi čitavu noć a da ga ne kontrolišem. Na taj način se kontrolom napajanja filamentima pomoću figura motora rješava niz problema.

Komplet je dostupan na Tindie.com

Korak 1: Sadržaj kompleta

Sadržaj kompleta
Sadržaj kompleta
Sadržaj kompleta
Sadržaj kompleta

Komplet uključuje sve 3D štampane dijelove i mehaniku za sastavljanje dozatora sa motornim vlaknima. Umjesto toga postoje dva opcionalna dijela: motor i ploča kontrolera motora.

U svom postavljanju koristio sam 12 V McLennan zupčasti motor sa zupčanikom, ali bilo koji motor promjera 37 mm može pravilno stati unutar nosača motora.

Najbolje performanse postižu se s TLE94112LE Arduino štitom od Infineona (potpuni pregled ovdje); ova ploča kontrolera istosmjernog motora može podržati do 6 različitih robotskih kompleta dozatora istovremeno.

Testirao sam cijeli sistem i na Arduino UNO R3 i na Arduino kompatibilnoj ploči XMC1100 Boot Kit kompanije Infineon i sistem je vrlo dobro reagirao na obje ploče mikro kontrolera.

Upotreba štita TLE94112LE je predložena, ali nije bitna. Bilo koji kontroler istosmjernog motora za Arduino - uključujući vaš vlastiti projekt! - može dobro raditi s ovim alatom

Komplet je podijeljen u dva seta komponenti jer su dva dijela napravljena da rade zajedno. Osnovna platforma će podržavati valjak sa žarnom niti koji se rotira na četiri ležaja sa slobodnim hodom. Baza je pričvršćena na senzor za težinu radi upravljanja rotirajućim mehanizmom koji aktivira njegovo aktiviranje, kao i nadgledanja stanja niti: težine, metara i postotka. Mnogo informacija, kao i kompletan skup naredbi dostupni su s Arduina putem serijskog terminala.

Alati koji su vam potrebni

Za dovršetak montaže potrebno vam je robusno ljepilo za neke dijelove, odvijač i set imbus vijaka.

Korak 2: Projekt i dizajn

Projekat i dizajn
Projekat i dizajn
Projekat i dizajn
Projekat i dizajn
Projekat i dizajn
Projekat i dizajn

Ovaj projekt je treća evolucija serije dozatora za filamente 3D štampača Prije nekoliko puta stvorio sam rotirajuću podlogu za optimiziranje protoka filamenta kada ga povuče ekstruder 3D štampača.

Drugi model je uključivao senzor težine za praćenje u stvarnom vremenu pomoću arduino ploče. Ovaj posljednji projekt uključuje automatizirano oslobađanje filamenta ovisno o potrebama posla 3D pisača. Zasniva se na virtualnoj varijaciji težine kada ekstruder počne povlačiti nit. Ovaj događaj pokreće mikro kontroler kroz senzor težine i motorizirani valjak sa vlaknima počinje oslobađati nekoliko centimetara materijala, a zatim usporava i zaustavlja se.

Komponente su izvezene u STL formatu i 3D štampane, zatim dorađene i sastavljene zajedno. Napravio sam prilagođenu podršku za poravnavanje dijela pokreta s bazom. Duža aluminijska šina također se koristila za podršku Arduinu i štitniku motora kako bi cijeli alat bio kompaktan i lagan za pomicanje.

Kreirajući dizajn slijedio sam niz pretpostavki:

  • Automatizirani motor čini gotovo jednostavnim i lakim za reprodukciju
  • Smanjite što je više moguće broj komponenti koje se ne mogu štampati 3D da biste to učinili
  • Smanjite što je više moguće naprezanje ekstrudera tijekom ispisa
  • Koristite nisku cijenu i lako programiranje mikrokontroler ploče
  • Koristite senzor opterećenja za kontrolu kako biste držali pod kontrolom potrošnju niti i uvlačenje niti Upravljajte bukom iz okoline koja ometa mjere težine niti

Ovo je rezultat koji sam postigao.

Korak 3: Sklapanje baze

Sklapanje baze
Sklapanje baze
Sklapanje baze
Sklapanje baze
Sklapanje baze
Sklapanje baze

Prvi korak je sastavljanje baze sa senzorom težine.

  1. Umetnite malu cijev osovine ležaja u otvor za ležaj
  2. Stavite dva diska za odvajanje sa strana ležaja
  3. Uvedite komponente unutar nosača ležaja veličine "U" poravnavajući rupe
  4. umetnite imbus vijak na jednu stranu, a podlošku i maticu na drugu stranu zatvarajući maticu bez previše napora

Operaciju trebate ponoviti na sva četiri nosača ležaja. Zatim testirajte sklop: ležajevi bi se trebali slobodno okretati.

Sada imbus vijcima pričvrstite četiri nosača ležaja na gornjoj bazi s četiri regulacijske rupe. Poravnajte nosače ležajeva tako da budu paralelni. Regulirajte udaljenost ovisno o širini valjanih vlakana.

Sljedeći korak je sastavljanje šipke senzora težine koja drži donju i gornju bazu zajedno. Senzor težine ima dva različita imbus vijka s obje strane i trebali biste ga orijentirati tako da se oznaka maksimalne težine može čitati kada je osnova pravilno postavljena. Donja baza ima dvije dodatne bočne rupe za pričvršćivanje A/D pojačala osjetnika težine. Pojačalo zasnovano na IC -u HX711 bit će napajano i spojeno na Arduino ploču kroz četiri žice kako je prikazano u priloženoj podatkovnoj tablici senzora.

Posljednji korak je sastavljanje kompletne gornje baze preko senzora težine koji je već pričvršćen za donji dio.

Prva komponenta je postavljena!

Korak 4: Sklapanje dijelova motora s kalemom

Sklapanje dijelova motora s kalemom
Sklapanje dijelova motora s kalemom
Sklapanje dijelova motora s kalemom
Sklapanje dijelova motora s kalemom
Sklapanje dijelova motora s kalemom
Sklapanje dijelova motora s kalemom

Lakši postupak sastavljanja motora s kalemom sastoji se od sastavljanja četiri najvažnije komponente, a zatim dovršite konačnu izgradnju:

Zupčasti istosmjerni motor u prijenosnoj kutiji motora

DC motor treba montirati u središnji dio nosača konstrukcije; prije nego što zašrafite motor, trebate odlučiti koja je vaša preferirana strana gdje ćete staviti zupčanike kako biste pravilno poravnali dvije ruke koje drže motor i pogonski veliki zupčanik.

Pogonjeni veliki zupčanik

Veliki zupčanik treba pričvrstiti okrnjenim konusnim blokom sa četiri imbus vijka. Ovaj zupčanik će na rotirajućoj osi biti blokiran maticama; konusni dio će držati kalem sa žarnom niti koji je sa druge strane zaključan sličnim maticama u drugom krnjem stožastom bloku. Ovo rješenje ne samo da drži pokretni mehanizam na mjestu, već usmjerava svu težinu prema podlozi i to je težina tare sistema.

Nosač brave kalema

Ovo je krnji konusni blok koji će zajedno sa pogonskim zupčanikom slična strana zaključavanja držati mehanizam kretanja na kalemu sa žarnom niti. Zbog takta, valjanje niti sa žarnom niti upotpunjuje zgradu, dok se oslonci za dvije ruke slobodno kreću s druge strane.

Kao što je prikazano na slikama, držač brave kalema ugrađen je u dva dijela. Prvo umetnite maticu M4 u veći dio bloka, a zatim zalijepite drugi dio (poklopac) držeći blokove zajedno. Matica ostaje zatvorena unutar držača brave koja će biti pričvršćena na osovinu s navojem.

Kutija za ležajeve

Kutija ležaja ima dvije funkcije: pruža dobru podršku prijenosnim prijenosnicima i glatko i tiho kretanje. Za sastavljanje kutije ležaja slijedite ove jednostavne korake:

  1. Pritegnite prvu maticu M4 na jedan od dva kraja osovine s navojem držača kalema
  2. Umetnite prvi ležaj
  3. Umetnite separator
  4. Umetnite drugi ležaj
  5. Odvrnite drugu maticu i umjereno je zaključajte. Unutrašnji plastični separator suprotstavit će se dovoljnoj sili da zadrži stvari na mjestu i za dugotrajnu upotrebu.
  6. Umetnite montirane ležajeve u kutiju za ležajeve. To bi trebalo učiniti prisilno kako bi se postigli bolji rezultati, tako da nemojte previše širiti unutrašnjost kutije prilikom oplemenjivanja plastičnih dijelova.

Spremni smo za završnu montažu komponenti!

Korak 5: Dovršenje sastavljanja Motion Engine -a

Završetak sastavljanja Motion Engine -a
Završetak sastavljanja Motion Engine -a
Završetak sastavljanja Motion Engine -a
Završetak sastavljanja Motion Engine -a
Dovršetak sastavljanja Motion Engine -a
Dovršetak sastavljanja Motion Engine -a

Upravo ćemo završiti sastavljanje konstrukcije, pa možemo preći na testiranje kretanja. Sada vam treba opet malo ljepila. Kutiju ležaja - sastavljenu u prethodnom koraku - treba umetnuti u otvor držača kutije na nosaču motora s dvije ruke i eventualno zalijepiti prije pričvršćivanja poklopca kutije.

Upozorenje: ne lijepite poklopac kutije, samo ga zavijte. Poklopac je važan za zaštitu od prašine i trebao bi se ukloniti za bilo koje buduće održavanje.

Kada se ovo podešavanje dovrši prije dodavanja pogonskog zupčanika (većeg), dodajte mali prsten za odvajanje: on održava veliki zupčanik poravnatim s motornim zupčanikom koji djeluje kao podloška za pričvršćivanje pokrećenog pomičnog sklopa.

Zatim umetnite pogonski zupčanik (mali) u osovinu motora. Imajte na umu da u motoru, kao i u središnjoj rupi zupčanika, postoji ravna strana koja održava zupčanik koji se okreće pogonom istosmjernog motora.

Posljednji korak, umetnite veliki pogonski zupčanik kako je prikazano na slikama i pričvrstite ga na osovinu s navojem s dvije M4 matice.

Zgrada mehanike je završena!

Korak 6: Bonus: Kako sam prilagodio podršku za upravljanje kompletom

Bonus: Kako sam prilagodio podršku za upravljanje kompletom
Bonus: Kako sam prilagodio podršku za upravljanje kompletom
Bonus: Kako sam prilagodio podršku za upravljanje kompletom
Bonus: Kako sam prilagodio podršku za upravljanje kompletom
Bonus: Kako sam prilagodio podršku za upravljanje kompletom
Bonus: Kako sam prilagodio podršku za upravljanje kompletom

Da bi komplet ostao na mjestu, napravio sam vrlo jednostavnu strukturu zasnovanu na dvije aluminijske kvadratne cijevi koje podržavaju i bazu i strukturu pokreta. Baza je pričvršćena s četiri vijka na dvije šine (dužine oko 25 cm), a s nekoliko malih 3D ispisanih nosača imam popravke pokretača koji se mogu pomicati kako bi se olakšalo umetanje i uklanjanje valjka sa filamentom.

Svako može izabrati vlastito rješenje ovisno o tome kako je njegov radni sto organiziran.

Korak 7: Ožičenje i spajanje na Arduino

Image
Image
Ožičenje i spajanje na Arduino
Ožičenje i spajanje na Arduino

Kao što je objašnjeno u koraku sadržaja kompleta, koristio sam Infineon TLE94112LE DC motorni štit za Arduino i testirao motor na Arduino UNO R3 i Infineon XMC110 Boot Kit.

Ako ćete upravljati motorom (potrebne su vam PWM funkcije) s DC upravljačkom pločom po vašem izboru, samo prilagodite upute tehničkim specifikacijama vašeg štita.

Bilješka o TLE04112LE Arduino štitu

Jedno od ograničenja koje sam iskusio s drugim štitnicima za upravljanje motorom za Arduino je to što koriste značajke istog mikro kontrolera (npr. PWM i GPIO pinovi); to znači da se vaša ploča posvećuje ovim zadacima, dok je samo nekoliko drugih resursa (MPU i GPIO) dostupno za drugu upotrebu.

Budući da ima mogućnost staviti ruke na TLE94122LE Arduino štit za testiranje na cesti, najočiglednija prednost IC -a na kojem se ploča temelji je njegova potpunost. Arduino ploča komunicira sa štitom putem SPI protokola koristeći samo dva pina. Svaku naredbu koju pošaljete na štit autonomno obrađuje IC TLE94112LE bez utroška resursa MPU -a. Još jedna izuzetna karakteristika Infineon ploče je mogućnost upravljanja do šest četkanih motora sa tri programabilna PWM kanala. To znači da Arduino može postaviti jedan ili više motora, pokrenuti ih i nastaviti raditi na drugim zadacima. Ovaj štit otkriven je kao savršen za podržavanje do šest različitih valjaka niti u isto vrijeme. Kretanje je samo jedan od zadataka koji su u nadležnosti MPU -a. S obzirom na mogućnost upravljanja sa šest različitih kalema sa filamentima s jednim Arduino + štitom, utjecaj na troškove mikro kontrolera na svakom kontroleru sa žarnom niti za manje od 5 eura.

Senzor težine

Nakon nekoliko eksperimenata vidio sam da je moguće kontrolirati cijeli sistem - nadgledanje i automatsko hranjenje - jednim senzorom; mjerna ćelija (senzor težine) može dinamički mjeriti varijacije težine kalema sa žarnom niti pružajući sve potrebne informacije.

Koristio sam jeftinu mjernu ćeliju u rasponu 0-5 kg zajedno s malom pločom zasnovanom na HX711 AD pojačalu, IC-u specifičnom za upravljanje senzorima mjernih ćelija. Nije bilo problema s povezivanjem jer je dostupna dobro funkcionirajuća Arduino biblioteka.

Tri koraka za postavljanje hardvera

  1. Umetnite štit na vrh Arduino ploče ili Infineon XMC110 kompleta za pokretanje
  2. Spojite žice motora na Out1 i Out2 navojne konektore štita
  3. Spojite napajanje i signale s pojačala senzora težine HX711 AD na Arduino pinove. U ovom slučaju koristio sam iglice 2 i 3, ali sve besplatne iglice su u redu.

Upozorenje: uloške 8 i 10 štitnik TLE94113LE rezervira za SPI vezu

To je sve! Jeste li spremni za postavljanje softvera? Nastavi.

Korak 8: Skup naredbi za softver i kontrolu

Skup naredbi za softver i kontrolu
Skup naredbi za softver i kontrolu
Skup naredbi za softver i kontrolu
Skup naredbi za softver i kontrolu
Skup naredbi za softver i kontrolu
Skup naredbi za softver i kontrolu
Skup naredbi za softver i kontrolu
Skup naredbi za softver i kontrolu

Potpuno dokumentirani softver može se preuzeti sa GitHub spremišta 3DPrinterFilamentDispenserAndMonitor

ovdje razmatramo samo najznačajnije dijelove i upravljačke naredbe.

Postoji razlog nametnut brojem dostupnih pinova za Arduino UNO Odlučio sam kontrolirati sistem putem USB serijskog terminala; Kako se svaka motorizirana jedinica temelji na senzoru za težinu, za upravljanje šest različitih dozatora sa filamentima potrebno je očitavanje podataka sa šest senzora za težinu. Svaka mjerna ćelija "troši" dva pina, pinovi 0 i 1 su rezervirani (Tx/Rx) za serijsku, a pinovi 8 i 10 rezervirani za SPI kanal koji povezuje štit TLE94112LE.

Status sistema

Softver za upravljanje radi kroz četiri različita stanja, definirana u filament.h:

#define SYS_READY "Spremno" // Sistem spreman

#define SYS_RUN "Running" // Filament in use #define SYS_LOAD "Load" // Roll loaded #define SYS_STARTED "Started" // Aplikacija pokrenuta // Kodovi statusa #define STAT_NONE 0 #define STAT_READY 1 #define STAT_LOAD_ #Refine STAT_LOAD_ #define 3

Status: Pokrenuto

Ovaj status se javlja nakon resetovanja hardvera ili kada se sistem uključi. Poziv pri uključivanju (i setup () pozivu kada skica započne) inicijalizira interne zadane vrijednosti i treba ga pokrenuti bez dodatne težine na platformi jer je dio inicijalizacijskog niza stjecanje apsolutne tare za postizanje fizičke nulte težine.

Status: Spremno

Stanje spremnosti javlja se nakon mekog resetiranja (poslanog sa serijskog terminala). Sličan je fizičkom resektu, ali se ne računa tara; naredba reset može se pokrenuti i kada sistem radi.

Status: Opterećenje

Status učitavanja javlja se kada terminal pošalje naredbu učitavanja. To znači da je valjak sa žarnom niti napunjen i da je izračunata dinamička tara. Tačna težina filamenta dobiva se vrstom postavljanja valjka oduzimajući težinu jedinice motora i prazne role.

Status: U trci

Ovaj status omogućuje automatsko izračunavanje težine i automatski dozator za filamente.

Poruke terminala

Trenutna verzija softvera vraća terminale čitljive ljudskim porukama, ovisno o naredbama. Poruke niza definirane su u dvije datoteke zaglavlja: commands.h (poruke i odgovori vezani za naredbe) i filament.h (nizovi koje parser koristi za kreiranje složenih poruka).

Komande

U upravljanje naredbama uključene su dvije različite datoteke: commands.h uključujući sve naredbe i povezane parametre i filament.h uključujući sve konstante i definicije koje koristi sistem ponderiranja i raščlanjivač.

Dok se interni proračuni automatski rade pomoću softvera, implementirao sam niz naredbi za postavljanje ponašanja sistema i ručnu kontrolu nekih parametara.

Naredbe ključne riječi razlikuju velika i mala slova i treba ih samo poslati s terminala. Ako naredba nije prikladna za trenutni status, nije prepoznata, vraća se pogrešna poruka naredbe, inače se naredba izvršava.

Komande statusa

Promijenite trenutni status sistema i prilagođeno je i ponašanje

Naredbe niti

Pomoću zasebnih naredbi moguće je postaviti karakteristike filamenta i rolne na temelju najčešćih težina i veličina koje su danas dostupne na tržištu

Naredbe jedinica

Ovo su nekoliko naredbi za postavljanje vizualizacije mjernih jedinica u gramima ili centimetrima. Zapravo, moguće je eliminirati ove naredbe i uvijek predstavljati podatke u obje jedinice.

Naredbe za informacije

Prikažite grupe informacija ovisno o statusu sistema

Naredbe motora

Upravljajte motorom za uvlačenje niti povlačenje niti.

Sve naredbe motora slijede putanju ubrzanja/usporavanja. Dvije naredbe feed and pull izvršavaju kratki slijed kako je definirano u motor.h konstantom FEED_EXTRUDER_DELAY, dok naredbe feedc i pullc rade neograničeno dugo dok se ne primi naredba stop.

Komande načina rada

Status rada prihvaća dva načina rada; mode čovjek samo povremeno očitava težinu i motor se pomiče sve dok se ne pošalje naredba za upravljanje motorom. Način auto umjesto toga izvršava dvije naredbe za uvlačenje kada ekstruderu treba više filamenta.

Princip se zasniva na očitanjima težine, kontekstualiziranim za ovo posebno okruženje. Očekujemo da je potrošnja filamenata relativno spora, 3D štampači gotovo spori i normalne oscilacije težine ovise o vibracijama okruženja (bolje ako ne stavite sve stvari na 3D štampač)

Kada ekstruder povuče filament umjesto toga, razlika u težini dramatično se povećava (50 g ili više) za vrlo malo vremena, obično između dva ili tri očitanja. Ove informacije filtrira softver koji "odbija" da je potrebna nova nit. Kako bi se izbjegla pogrešna očitanja, varijacije težine dok motor radi uopće se zanemaruju.

Logika aplikacije

Logika aplikacije distribuira se u.ino main (Arduino skica) kroz tri funkcije: setup (), loop () i parseCommand (commandString)

Skica koristi dvije odvojene klase: klasu FilamentWeight za upravljanje svim proračunima niti i očitavanjem senzora putem klase HX711 IC i klase MotorControl povezujući metode niskog nivoa TLE94112LE Arduino štita.

postaviti()

Pokreće se jednom pri uključivanju ili nakon hardverskog resetiranja, pokreće instance klasa, postavlja hardver i komunikaciju terminala.

petlja()

Funkcija glavne petlje upravlja tri različita stanja.

Iako postoje dvije klase senzora težine i motora relativno složenih, postoji prednost što je rezultirajuća skica zaista laka za razumijevanje i upravljanje.

  1. Provjerite (u načinu rada auto) da li ekstruderu treba više filamenta
  2. Ako motor radi provjerite hardverske greške (vratio TLE94112LE)
  3. Ako su dostupni serijski podaci, raščlanite naredbu

parseCommand (commandString)

Funkcija raščlanjivanja provjerava nizove koji dolaze iz serije i kada se naredba prepozna, odmah se obrađuje.

Svaka naredba djeluje kao mašina stanja koja utječe na neki parametar sistema; slijedeći ovu logiku, sve naredbe se svode na tri uzastopne radnje:

  1. Pošaljite naredbu klasi FilamentWeight (naredbe težine) ili klasi MotorControl (naredbe motora)
  2. Izvršava proračun za ažuriranje vrijednosti težine ili ažuriranje jednog od internih parametara
  3. Prikaži na terminalu i izlaz informacija kada se izvršavanje dovrši

Instalirajte HX711 Arduino biblioteku, preuzmite softver s GitHub -a i prenesite ga na svoju Arduino ploču, a zatim uživajte!

Preporučuje se: