Kazalo:
- Zaloge
- Korak: Izberite rotacijski dajalnik
- Korak: Dodajte škripec in prosti tek
- 3. korak: Kodiranje
- 4. korak: Ožičenje
- 5. korak: Natisnite dele
Video: Števec nitk pametnega 3D tiskalnika: 5 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Zakaj bi se trudili s štetjem filamentov? Nekaj razlogov:
Za uspešne odtise je potreben ustrezno umerjen ekstruder: ko gcode pove ekstruderju, naj premakne nit 2 mm, se mora premakniti natančno 2 mm. Slabe stvari se zgodijo, če se preveč iztisne ali premalo iztisne. Dobro umerjen števec lahko ekstruder ohranja pošten
Rezalniki približajo, koliko celotnega filamenta porabi določen tisk (tako po dolžini kot po teži), zato bi želel preveriti te vrednosti
Merjenje gibanja filamentov mi tudi sporoči, kdaj se je tiskanje začelo in kdaj prenehalo
Potreboval sem nekaj, da pokrijem prostor, ki je ostal zaradi odstranitve grdega velikanskega logotipa na sprednji strani tiskalnika
To je kul
Navdihnil me je ta instruktor, ki je staro miško PS/2 preuredil kot števec filamentov za 3D tiskalnik. Ne samo, da je 3D tiskalniku dodal uporabno funkcijo, temveč je tudi preuredil staro napravo, ki bi sicer končala na odlagališču. Toda ta projekt je bil zgrajen okoli vmesnika miške PS/2, ki se je zdel nepotrebno okoren. Zato sem to izkoristil kot priložnost za spoznavanje edine bistvene komponente: rotacijskega dajalnika.
Zaloge
Rotacijski dajalnik
Razvojna plošča na osnovi ESP32
I2C OLED zaslon (dvobarvna enota izgleda še posebej kul)
Majhen trenuten gumb
Odmaščen ležaj 608ZZ
Dva o -obroča iz trgovine s strojno opremo (~ 33 mm ID x ~ 1,5 mm premer profila - glej komentarje)
Dva 2,5 mm samorezna vijaka za ohišje
Dva 4 mm vijaka, matice in podložke za pritrditev nosilca na tiskalnik
Kup žic
3D tiskalnik in nekaj filamentov
Korak: Izberite rotacijski dajalnik
Rotacijski dajalniki pretvorijo rotacijsko gibanje v električne impulze. Vse miške stare šole so jih uporabljale za merjenje gibanja kotalne žoge, sodobnejše (ha ha) optične miši pa so jih še vedno uporabljale za drsno kolo, kar sem imel naokoli in uporabil za začetno eksperimentiranje. Na žalost moj ni ponudil očitnih točk pritrditve in njegova ločljivost je bila slaba.
Če je vredno narediti, je vredno pretiravati. Zato sem kupil velik, prijazen kodirnik s 360-utripnimi impulzi na vrtljaj in okoli njega zgradil svoj projekt. Tisti, ki sem ga izbral, je bil Signswise Incremental Optical Rotary Encoder, tip LPD3806-360BM-G5-24C. Toda vsak dostojen kodirnik bo ustrezal.
Korak: Dodajte škripec in prosti tek
Linearno gibanje žarilne nitke se s pomočjo škripca prevede v rotacijsko gibanje dajalnika. In nitko drži proti jermenici brez tekača.
Jermenica ima dva utora, od katerih ima vsak raztegnjen o-obroč, tako da ni zdrsa, Prosti tek ima en sam v-žleb, ki drži žarilno nitko centrirano na jermenici dajalnika. Sedi na ležaju 608ZZ, ki sem ga imel okoli, in je nameščen na spiralni vzmeti, natisnjeni v glavnem delu mojega projekta. (Spodaj priložene datoteke STL.)
To je trajalo nekaj poskusov in napak, da bi se popravilo, vendar bi morala moja zasnova upoštevati različne kote in polmere tuljave, ki omogočajo, da se nitka odvije od katerega koli dela tuljave, vse od začetka do konca tiska. Tiskana vzmet olajša vstavljanje ali odstranjevanje žarilne nitke pri menjavi tuljav.
3. korak: Kodiranje
Za samo štetje filamentov bo ustrezala vsaka razvojna plošča z dvema digitalnima vhodoma. Dajalnik, ki sem ga izbral, ima štiri zatiče: Vcc, ozemljitev in dva zatiča dajalnika. Tukaj je zelo lep zapis, ki pojasnjuje, kako delujejo rotacijski kodirniki in kako jih povezati z Arduinom. (Tudi: ta članek o 3-polnih kodirnikih.)
Osnovno štetje je preprosto: dva vhoda - nastavljena tako, da se povlečeta navznoter, tako da zunanjih uporov ni treba spajkati na Vcc - in en prekinitev. Dodal sem tudi gumb nič/ponastavitev, ki zahteva še en vnos in prekinitev:
void setUpPins () {
pinMode (ENCODER_PIN_1, INPUT_PULLUP); pinMode (ENCODER_PIN_2, INPUT_PULLUP); pinMode (ZERO_BTN_PIN, INPUT_PULLUP); attachInterrupt (ENCODER_PIN_1, encoderPinDidChange, CHANGE); attachInterrupt (ZERO_BTN_PIN, zeroButtonPressed, CHANGE); } void IRAM_ATTR encoderPinDidChange () {if (digitalRead (ENCODER_PIN_1) == digitalRead (ENCODER_PIN_2)) {position += 1; } else {položaj -= 1; }} void IRAM_ATTR zeroButtonPressed () {// ročaj nič & ponastavi}
Želel pa sem več kot le neumen števec. Z ESP32 (ali ESP8266) in vgrajeno WiFi lahko dejansko naredim nekaj s podatki, ki jih zbiram. Z uporabo preproste kode časovne omejitve (razloženo spodaj) lahko določim, kdaj se tiskanje začne in konča, ter te dogodke pošljem kot obvestila v telefon. V prihodnosti bom lahko dodal senzor izteka in se obvestil (in začasno ustavil tiskalnik), ko bo potrebna moja pozornost.
Celotna koda je na Githubu.
Nekaj opomb o kodi:
Če želite to prilagoditi svoji zgradbi, potrebujete le ločljivost (encoderPPR) - v impulzih na vrtljaj, ki je običajno dvakrat večjo od navedene specifikacije - in polmer škripca (wheelRadius). Te vrednosti, skupaj ssid in geslo za vaš wifi ter posebni zatiči, povezani z gumbom, kodirnikom in zaslonom OLED, so vse v nastavitvah config.h
Gumb nič se podvoji tudi kot ponastavitev - pridržite ga, da znova zaženete ploščo, kar je uporabno za odpravljanje napak
Prekinitve so močne - včasih premočne. En sam pritisk na gumb nič lahko povzroči, da se funkcija zeroButtonPressed () pokliče 10-20 krat, zato sem dodal nekaj logike razvezovanja. Moj optični kodirnik ga ni potreboval, ampak YMMV
Medtem ko prekinitve skrbijo za vnose asinhrono, rutina loop () vodi knjigovodstvo. EncoderState - naštevanje, ki se lahko poda, umakne ali ustavi - se posodobi s spremembo položaja kodirnika. Časovne omejitve nato določijo, kdaj je tiskalnik začel in končal tiskanje. Zanimivo pa je, da 3D -tiskalniki pogosto zaženejo in ustavijo gibanje, zato je bilo najbolje, da se opredeli dogodek »tiskanje končano«, ki ostane neprekinjeno ustavljen vsaj 5 sekund. Vsako gibanje sproži drugi časovnik, ki definira dogodek "tiskanje se je začelo" le, če v časovnem okviru 15 sekund ne pride do dogodka "tiskanje končano". V praksi to deluje plavalno
Tako lahko koda main loop () teče neobremenjena, koda debounce pa v opravilni zanki RTOS. Prav tako so zahteve HTTP za pošiljanje obvestil sinhrone in zato v ozadju. Tako animacije potekajo nemoteno in štetje se nikoli ne ustavi
V mojem primeru je kup dodatne kode za (A) vzpostavitev in vzdrževanje omrežne povezave z WiFi in mDNS, (B) pridobivanje časa s strežnika NTC, da bi lahko časovno označil svoja obvestila o začetku in koncu ter prikazal neumno uro na mojih OLED in (C) upravljati posodobitve OTA, tako da mi ni treba fizično povezati plošče z računalnikom Mac za posodobitve kode. Trenutno je vse v eni monolitni datoteki C ++, samo zato, ker si nisem vzel časa za boljšo organizacijo
Uporabil sem čudovito (in brezplačno) aplikacijo Prowl iOS za pošiljanje potisnih obvestil v telefon z nič več kot metodami HTTP Get
Za razvoj kode in utripanje plošče sem uporabil spektakularno PlatformIO, ki deluje na Visual Studio Code, oba brezplačna
Za svoj projekt sem uporabil te knjižnice: u8g2 Oliverja, elapsedMillis Paul Stoffregen in HTTPClient Markus Sattler, ki prihaja s platformo Espressif ESP32. Vse ostalo prihaja s knjižnico Arduino ali platformo ESP32 v PlatformIO
Nazadnje sem ustvaril šest preprostih bitnih slik mojega glavnega škripca pod različnimi koti, tako da sem lahko na OLED -ju za pultom pokazal lepo malo animacijo vrtečega se kolesa. S kodirnikom se premika v ustrezno smer, čeprav veliko hitreje za bolj dramatičen učinek
4. korak: Ožičenje
To sem zasnoval tako, da bi bilo ožičenje preprosto, večinoma zato, da bi bilo moje ohišje lahko majhno, hkrati pa bi bilo odpravljanje napak enostavno. Bodite pozorni na utesnjene razmere v moji majhni škatlici.:)
Prva zahteva je bila 5V napajalna napetost mojega rotacijskega dajalnika. Od različnih plošč za razvijalce ESP32, ki sem jih imel v zalogi, jih je le nekaj napajalo 5 V na pin Vcc, ko jih napaja USB. (Drugi so merili 4,5-4,8 V, kar je v primeru slabe matematike nižje od 5 V.) Deska, ki sem jo uporabil, je bila Wemos Lolin32.
Nato prideta dva signalna zatiča rotacijskega dajalnika. Ker uporabljam prekinitve, je glavna skrb, da nožice, ki jih uporabljam, ne motijo ničesar. Dokumenti ESP32 navajajo, da ADC2 ni mogoče uporabljati hkrati z WiFi, zato to na žalost pomeni, da ne morem uporabiti nobenega od zatičev GPIO ADC2: 0, 2, 4, 12, 13, 14, 15, 25, 26 ali 27. Izbral sem 16 in 17.
Nasvet profesionalca: če se zdi, da vaš dajalnik po tem, ko vse skupaj sestavite, šteje nazaj, lahko samo zamenjate dve dodelitvi pin v config.h.
Na koncu priključite ozemljitveno žico rotacijskega dajalnika na… boben valja… ozemljitveni zatič.
Nato se gumb za ničlo/ponastavitev poveže med maso in drugim prostim zatičem (izbral sem GPIO 18).
Gumb, ki sem ga uporabil, je bilo majhno trenutno stikalo, ki sem ga rešil iz prej omenjene računalniške miške, toda vsak gumb, ki ga imate naokoli, bo ustrezal. Lahko ga vidite počivati v majhnem nosilcu, ki sem ga naredil za desko.
Končno, OLED, če še ni povezan z vašo ploščo, potrebuje le štiri zatiče: podatke 3V3, ozemljitev, uro i2c in podatke i2c. Na moji plošči za razvijalce sta ura in podatki 22 oziroma 21.
5. korak: Natisnite dele
Za to gradnjo sem oblikoval sedem delov:
Jermenica, ki se montira neposredno na gred rotacijskega dajalnika
Prosti tek, ki se prilega ležaju 608ZZ (odstranite lupine in razmastite z WD40, da se prosto vrti)
Držalo, na katerem sta pritrjena dva vijaka in dajalnik - upoštevajte spiralno vzmet za tekalno kolesce
Nosilec za stabilizacijo držala. Fotografija v tem koraku prikazuje, kako se nosilec pritrdi na držalo
Ohišje (spodaj) za mojo ploščo za razvijalce ESP32, s prostorom za kabel USB na strani in drugim na vrhu za priključek, ki sem ga dodal žicam kodirnika. Ta je zasnovan tako, da ustreza Wemos Lolin32, zato boste morda morali to obliko nekoliko spremeniti, da se prilega drugi plošči
Ohišje (zgoraj) za zaslon OLED, še ena spirala za gumb za ničlo / ponastavitev
Držalo za gumbe, prilagojeno za majhno stikalo, ki sem ga imel, namenjeno za počitek med dvema policama v spodnjem ohišju. Za spajanje stikala na držalo sem uporabil spajkalnik; glej prejšnji korak za fotografijo
Vse je zasnovano za tiskanje brez nosilcev. Običajni PLA v vaši izbrani barvi je vse, kar potrebujete.
Vse skupaj povežite, pritrdite na tiskalnik (tukaj boste morda potrebovali nekaj ustvarjalnosti) in ste pripravljeni.
Priporočena:
DIY NANOLEAF - Brez 3D tiskalnika: 11 korakov (s slikami)
DIY NANOLEAF - Brez 3D tiskalnika: Ljubitelji Hii Tech v tem navodilu Pokazal vam bom, kako narediti Arora Nanoleaf Brez uporabe električnega orodja & te plošče lahko prilagodite. Naredil sem 9 plošč, skupaj 54 LED diod Neo pixel. Skupni stroški pod 20 USD (indijski ₹ 1500) Svetlobne plošče Nanoleaf,
Naredite plesnega robota brez 3D tiskalnika in Arduina/#pametna ustvarjalnost: 11 korakov (s slikami)
Naredite plesnega robota brez 3D tiskalnika in Arduina/#smartcreativity: Pozdravljeni prijatelji, v tej vadnici vam bom pokazal, kako narediti plesnega robota doma brez 3D tiskalnika in brez Arduina. Ta robot zna plesati, avtomatsko uravnotežiti, ustvarjati glasbo in hoditi. Tudi zasnova robota je videti tako kul
ESP32-CAM ohišje in kamera 3D tiskalnika: 10 korakov (s slikami)
ESP32-CAM sistem ohišja in 3D tiskalnik Cam: Razmišljal sem o tem, da bi kamero na svojem 3-D tiskalniku zamenjal z nečim majhnim, preprostim in funkcionalnim …. in poceni. Nekaj iskanj v Googlu me je pripeljalo do modula ESP32-Cam. Najdete jih za manj kot 10 USD, na primer manj in zelo dobro delujejo
Nabiranje delov z laserskega tiskalnika: 10 korakov (s slikami)
Nabiranje delov z laserskega tiskalnika: BREZPLAČNO! Lepa beseda kajne Brezplačno je predpona za toliko vznemirljivih idiomov; Prosti govor, prosti denar, brezplačno kosilo in brezplačna ljubezen so le nekateri. Vendar nič ne vzbudi domišljije ali pa utripa srca tako kot misel na
Naredite: prijava na tekmovanje za značko NYC iz starega tiskalnika GameBoy: 14 korakov (s slikami)
Make: NYC Badge Contest Entry from an Old GameBoy Printer: Pozdravljeni vsi, tukaj je moj drugi posnetek na Instructable .. bodite prijazni..Zato je lokalno srečanje Make: NYC za drugo srečanje imelo tekmovanje za značke .. (povezava tukaj) bistvo tekmovanja je izdelava nosljive imenske oznake/značke iz neke vrste materiala