Sadržaj:
- Korak 1: Sadržaj kompleta
- Korak 2: Projekt i dizajn
- Korak 3: Sastavljanje baze
- Korak 4: Sastavljanje dijelova motora s kalemom
- Korak 5: Dovršenje sastavljanja Motion Engine -a
- Korak 6: Bonus: Kako sam prilagodio podršku za upravljanje kompletom
- Korak 7: Ožičenje i spajanje na Arduino
- Korak 8: Skup naredbi za softver i upravljanje
Video: Robotski dozator sa vlaknima za Arduino: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Zašto motorni alat
Nit 3D pisača - obično gotovo robustan - povlači ekstruder, a rola se postavlja u blizini pisača, može se slobodno okretati. Uočio sam značajne razlike u ponašanju materijala ovisno o razini upotrebe, a odnose se na 1 kg valjkastih niti. Nova (puna) žica s filamentom teče gotovo dobro, ali sila koju primjenjuje ekstruder trebala bi biti relativno relevantna: težina je najmanje 1,5 kg.
Motor ekstrudera (u većini slučajeva stepen Nema17) ima dovoljnu snagu za obavljanje posla, ali dva zupčanika ekstrudera guraju filament na stranu vrućeg kraja dok rade prikupljaju čestice filamenta zbog primijenjenih sila; to zahtijeva često održavanje ekstrudera kako bi se izbjeglo začepljenje mlaznica. Ove se čestice tijekom odlaganja odvajaju i miješaju s čistom niti, povećavajući probleme s mlaznicama i češće trošenje mlaznica; to se češće događa s mlaznicama promjera 0,3 mm.
Kad se valjak sa polovicom upola koristi ili više, spirale mu postaju manje, a u nekim uvjetima okoliša nit se prečesto lomi. Dugi poslovi ispisa postaju manje pouzdani i stresni; Ne mogu ostaviti pisač da radi čitavu noć a da ga ne kontroliram. Time se kontrolira unos niti pomoću motornih figura rješavajući niz problema.
Komplet je dostupan na Tindie.com
Korak 1: Sadržaj kompleta
Komplet uključuje sve 3D tiskane dijelove i mehaniku za sastavljanje dozatora s motornim vlaknima. Umjesto toga postoje dva opcionalna dijela: motor i upravljačka ploča motora.
U svom sam postavljanju koristio 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 tvrtke Infineon (potpuni pregled ovdje); ova ploča kontrolera istosmjernog motora može istodobno podržati do 6 različitih robotskih kompleta dozatora.
Testirao sam cijeli sustav i na Arduino UNO R3 i na Arduino kompatibilnoj ploči XMC1100 Boot kit tvrtke Infineon, a sustav 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 raditi dobro s ovim alatom
Komplet je podijeljen u dva seta komponenti jer su dva dijela napravljena da rade zajedno. Osnovna platforma podupirat će valjak sa žarnom niti koji se okreće na četiri ležaja sa slobodnim kotačima. 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
Ovaj projekt je treća evolucija serije dozatora za filamente 3D pisača Prije nekoliko puta stvorio sam rotirajuću podlogu za optimiziranje protoka filamenta kada ga povuče ekstruder za 3D pisač.
Drugi model je uključivao senzor težine za praćenje u stvarnom vremenu korištenja filamenta pomoću Arduino ploče. Ovaj posljednji projekt uključuje automatizirano oslobađanje filamenta ovisno o potrebama posla 3D pisača. Temelji se na virtualnoj varijaciji težine kada ekstruder počne povlačiti nit. Ovaj događaj pokreće mikro upravljač kroz osjetnik 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 ispisane, zatim dorađene i sastavljene zajedno. Napravio sam prilagođenu podršku za poravnavanje dijela pokreta s bazom. Dulja aluminijska tračnica također je korištena za podršku Arduina i štitnika motora kako bi cijeli alat bio kompaktan i lagan za pomicanje.
Prilikom izrade dizajna slijedio sam niz pretpostavki:
- Automatizirani motor čini gotovo jednostavnim i lakim za reprodukciju
- Smanjite što je više moguće broj komponenata koje se ne mogu ispisivati u 3D tehnici za izradu
- Smanjite što je više moguće naprezanje ekstrudera tijekom ispisa
- Upotrijebite nisku cijenu i lako programiranje mikrokontrolerne ploče
- Koristite senzor opterećenja za kontrolu kako biste držali pod kontrolom potrošnju niti i uvlačenje niti Upravljajte bukom iz okoliša koja ometa mjere težine niti
Ovo je rezultat do kojeg sam došao.
Korak 3: Sastavljanje baze
Prvi korak je sastavljanje baze s senzorom težine.
- Umetnite cijev male osi ležaja u otvor za ležaj
- Stavite dva diska za odvajanje sa strana ležaja
- Uvedite komponente unutar nosača ležaja veličine "U" poravnavajući rupe
- umetnite imbus vijak s jedne strane, a podlošku i maticu s druge strane zatvarajući maticu bez previše napora
Postupak biste trebali ponoviti na sva četiri nosača ležaja. Zatim provjerite sklop: ležajevi bi se trebali slobodno okretati.
Sada učvrstite imbus vijcima č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 niti.
Sljedeći korak je sastavljanje šipke osjetnika težine koja drži donju i gornju bazu zajedno. Senzor za težinu ima dva različita imbus vijka s obje strane i trebali biste ga orijentirati tako da je oznaka maksimalne težine čitljiva kada je baza 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 cijele gornje baze preko senzora težine koji je već pričvršćen na donji dio.
Prva komponenta je postavljena!
Korak 4: Sastavljanje dijelova motora s kalemom
Lakši postupak sastavljanja motora s kalemom sastoji se od sastavljanja četiri najvažnije komponente, a zatim dovršite završnu gradnju:
Jednosmjerni motor sa zupčanikom 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 će vam biti željena 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 s četiri imbus vijka. Ovaj će zupčanik na rotirajućoj osi biti blokiran maticama; stožasti dio će držati kalem sa žarnom niti koji je s 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 sustava.
Nosač brave kalema
Ovo je krnji stožasti blok koji će zajedno s pogonskim zupčanikom slična strana zaključavanja držati mehanizam kretanja na kalemu sa žarnom niti. Zbog takta, valjanje niti sa žarnom niti dovršava zgradu, dok se potpora za dvije ruke može slobodno kretati 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 koji će biti pričvršćen na osovinu s navojem.
Kutija s ležajevima
Kutija ležaja ima dvije funkcije: osigurati dobru potporu prijenosnicima i glatko i tiho kretanje. Za sastavljanje kutije ležaja slijedite ove jednostavne korake:
- Pritegnite prvu maticu M4 na jedan od dva kraja osovine s navojem držača kalema
- Umetnite prvi ležaj
- Umetnite separator
- Umetnite drugi ležaj
- Odvrnite drugu maticu i umjereno je zaključajte. Unutarnji plastični separator suprotstavit će se dovoljnoj sili da zadrži stvari na mjestu i za dugotrajnu uporabu.
- Montirane ležajeve umetnite u kutiju s ležajevima. To bi trebalo učiniti prisilno kako bi se postigli bolji rezultati, stoga 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
Upravo ćemo završiti sastavljanje konstrukcije, pa možemo prijeći na testiranje kretanja. Sada vam treba opet malo ljepila. Kutiju ležajeva - 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 pričvrstite. Poklopac je važan za zaštitu od prašine i trebao bi se ukloniti za bilo koje buduće održavanje.
Kad je ovo postavljanje dovršeno 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 uč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 os s navojem s dvije matice M4.
Zgrada mehanike je gotova!
Korak 6: Bonus: Kako sam prilagodio podršku za upravljanje kompletom
Kako bi komplet ostao na mjestu, napravio sam vrlo jednostavnu strukturu temeljenu na dvije aluminijske kvadratne cijevi za podupiranje i baze i strukture kretanja. Baza je pričvršćena s četiri vijka na dvije tračnice (duljine oko 25 cm), a s nekoliko malih 3D ispisanih nosača imam popravke pokretača koji se mogu pomicati radi lakšeg umetanja i uklanjanja valjka sa žarnom niti.
Svatko može odabrati vlastito rješenje ovisno o tome kako je njegov radni stol organiziran.
Korak 7: Ožičenje i spajanje na Arduino
Kao što je objašnjeno u koraku sadržaja kompleta, koristio sam Infineon TLE94112LE istosmjerni motorni štit za Arduino i testirao motor na Arduino UNO R3 i Infineon XMC110 Boot Kit.
Ako ćete upravljati motorom (potrebne su PWM značajke) 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 (tj. PWM i GPIO pinovi); to znači da se vaša ploča posvećuje tim 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čitija prednost IC -a na kojem se ploča temelji je upravo 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 izvanredna značajka Infineon ploče je mogućnost upravljanja do šest četkanih motora s 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 je zadužen za MPU. S obzirom na mogućnost upravljanja sa šest različitih kalema sa žarnom niti s jednim Arduino + štitom, utjecaj na cijenu mikro kontrolera na svakom pojedinom kontroleru filamenta za manje od 5 eura.
Senzor težine
Nakon nekoliko eksperimenata vidio sam da je moguće kontrolirati cijeli sustav - praćenje i automatsko hranjenje - s jednim senzorom; mjerna ćelija (senzor za težinu) može dinamički mjeriti varijacije u težini 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 knjižnica.
Tri koraka za postavljanje hardvera
- Umetnite štit na vrh Arduino ploče ili Infineon XMC110 Boot Kit
- Spojite žice motora na Out1 i Out2 navojne priključke štita
- Spojite napajanje i signale s pojačala osjetnika težine HX711 AD na Arduino pinove. U ovom slučaju koristio sam iglice 2 i 3, ali sve slobodne 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? Samo naprijed.
Korak 8: Skup naredbi za softver i upravljanje
Potpuno dokumentirani softver može se preuzeti sa spremišta GitHub 3DPrinterFilamentDispenserAndMonitor
ovdje razmatramo samo najznačajnije dijelove i naredbe za upravljanje.
Postoji razlog nametnut brojem dostupnih pinova za Arduino UNO Odlučio sam upravljati sustavom putem USB serijskog terminala; Kako se svaka motorizirana jedinica temelji na senzoru za težinu, upravljanje šest različitih dozatora sa filamentima zahtijeva čitanje podataka sa šest senzora za težinu. Svaka mjerna ćelija "troši" dva pina, pinovi 0 i 1 rezervirani su (Tx/Rx) za serijsku, a pinovi 8 i 10 rezervirani za SPI kanal koji povezuje štit TLE94112LE.
Status sustava
Softver za upravljanje radi kroz četiri različita stanja, definirana u nitima.h:
#define SYS_READY "Spremno" // Sustav spreman
#define SYS_RUN "Running" // Filament in use #define SYS_LOAD "Load" // Roll loaded #define SYS_STARTED "Started" // Aplikacija je pokrenuta // Kodovi statusa #define STAT_NONE 0 #define STAT_READY 1 #define STAT_LOAD 2 #define STA 3
Status: Pokrenuto
Do ovog statusa dolazi nakon resetiranja hardvera ili kada je sustav uključen. Poziv pri uključivanju (i setup () pozivu kada skica započne) inicijalizira unutarnje 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 događa 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 je sustav pokrenut.
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. Točna težina filamenta dobiva se vrstom postavljanja valjka oduzimajući težinu jedinice motora i prazne role.
Status: Trči
Ovaj status omogućuje automatski izračun težine i automatski dozator niti.
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 povezani s naredbama) i filament.h (nizovi koje raščlanjivač koristi za stvaranje složenih poruka).
Naredbe
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 sustav ponderiranja i raščlanjivač.
Dok se unutarnji izračuni automatski izvode softverom, implementirao sam niz naredbi za postavljanje ponašanja sustava 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.
Naredbe statusa
Promijenite trenutni status sustava i prilagođeno je i ponašanje
Naredbe niti
Pomoću zasebnih naredbi moguće je postaviti karakteristike žarne niti 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 skupine informacija ovisno o statusu sustava
Naredbe motora
Upravljajte motorom za uvlačenje niti povlačenje niti.
Sve naredbe motora slijede put ubrzanja/usporavanja. Dvije naredbe feed and pull izvode 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.
Naredbe 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 temelji na očitanjima težine, kontekstualiziranim za ovo posebno okruženje. Očekujemo da je potrošnja filamenta relativno spora, 3D pisači gotovo spori, a normalne oscilacije težine ovise o vibracijama okoline (bolje ako ne stavite sve stvari na 3D pisač)
Kad ekstruder povuče filament, razlika u težini dramatično se povećava (50 g ili više) u vrlo malo vremena, obično između dva ili tri očitanja. Ove podatke filtrira softver koji "odbija" da je potrebna nova nit. Kako bi se izbjegla pogrešna očitanja, promjene u težini tijekom rada motora uopće se zanemaruju.
Logika aplikacije
Logika aplikacije distribuira se u.ino main (Arduino skica) uz tri funkcije: setup (), loop () i parseCommand (commandString)
Skica koristi dvije odvojene klase: klasu FilamentWeight za upravljanje svim proračunima niti i očitanjem senzora putem klase HX711 IC i klase MotorControl povezujući metode niske razine TLE94112LE Arduino štita.
postaviti()
Pokreće se jednom pri uključivanju ili nakon hardverskog resetiranja, inicijaliziraju instance klasa, postavljaju hardver i terminalnu komunikaciju.
petlja()
Funkcija glavne petlje upravlja tri različita uvjeta.
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.
- Provjerite (u načinu rada auto) treba li ekstruderu više filamenta
- Ako motor radi provjerite hardverske greške (vratio TLE94112LE)
- 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 stroj stanja koji utječe na neki parametar sustava; slijedeći ovu logiku sve naredbe se svode na tri uzastopne radnje:
- Pošaljite naredbu klasi FilamentWeight (naredbe težine) ili klasi MotorControl (naredbe motora)
- Izvršava izračun za ažuriranje vrijednosti težine ili ažuriranje jednog od unutarnjih parametara
- Prikaz na terminalu i izlaz informacija kada se izvršavanje dovrši
Instalirajte biblioteku HX711 Arduino, preuzmite softver s GitHub -a i prenesite ga na svoju Arduino ploču, a zatim uživajte!
Preporučeni:
Dozator pametnih kontaktnih leća: 8 koraka (sa slikama)
Dozator pametnih kontaktnih leća: U ovom uputstvu pokazat ću vam kako napraviti vlastiti dozator pametnih kontakata
Lasersko graviranje vlaknima - kuharski nož od ugljičnog čelika: 3 koraka
Lasersko graviranje vlaknima - Kuharski nož od ugljičnog čelika: Ovo je moj video instruktor koji prikazuje lasersko vlakno za graviranje kuhinjskog noža od ugljičnog čelika. Nadam se da ćete uživati
Arduino dozator za hranu za pse: 10 koraka (sa slikama)
Arduino dispenzer za pseću hranu: Ako je vaša kuća slična mojoj, neki zadaci mogu biti zaboravljeni u žurbi. Ne dopustite da vaš ljubimac bude zaboravljen! Ovaj automatizirani dozator hrane za pse koristi Arduino za isporuku prave količine kiša u pravo vrijeme. Sve pa
Automat -- Dozator za slatkiše -- Arduino Bluetooth kontrolirano -- DIY: 11 koraka (sa slikama)
Automat || Dozator za slatkiše || Arduino kontrolirano Bluetooth -om || Uradi sam: U ovom uputstvu pokazat ću kako izgraditi automat za prodaju pomoću Arduina. KOMENTIRAJTE ŠTO MISLITE O OVOM UPUTSTVU, DA BI MOGU POBOLJŠATI U SVOJIM DALJNJIM UPUTAMA Za bolje razumijevanje pogledajte video vodič cijelog
LED žaruljica sa optičkim vlaknima i vrućim kotačima: 12 koraka
Automobil sa vrućim kotačima sa svjetlovodnom optikom od svjetlovodnih vlakana. Nakon mog prvog Instructablea, odlučio sam napraviti LED automobil na baterije. Glava & stražnja svjetla su tako mala da je upotreba plastične vatrogasne optike jedini način da se to učini, a također i mala količina prostora u automobilu za držanje baterija