Përmbajtje:
- Furnizimet
- Hapi 1: Zgjidhni një kodues rrotullues
- Hapi 2: Shtoni një rrotull dhe përtac
- Hapi 3: Kodimi
- Hapi 4: Instalimet elektrike
- Hapi 5: Shtypni Pjesët
Video: Smart Counter Filament Printer 3D: 5 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Pse të shqetësohesh duke numëruar filamentin? Disa arsye:
Shtypjet e suksesshme kërkojnë një ekstruder të kalibruar siç duhet: kur gcode i thotë ekstruderit të lëvizë fijen 2mm, duhet të lëvizë saktësisht 2mm. Gjëra të këqija ndodhin nëse tejkalon ose nën-ekstrudon. Një sportel i kalibruar mirë mund të mbajë një ekstruder të ndershëm
Prerësit përafrojnë sa fije e përgjithshme e një printimi të caktuar do të marrë (si në gjatësi ashtu edhe në peshë) dhe unë do të doja të kontrolloja ato vlera
Matja e lëvizjes së filamentit gjithashtu më tregoni kur ka filluar printimi dhe kur është ndalur
Më duhej diçka për të mbuluar hapësirën e lënë nga heqja e logos së shëmtuar gjigante në pjesën e përparme të printerit tim
Coolshtë mirë
Unë u frymëzova nga ky udhëzues, i cili ripërdor një miun e vjetër PS/2 si një numërues fije për një Printer 3D. Jo vetëm që shtoi një veçori të dobishme në një printer 3D, por ripërdoroi një pajisje të vjetër që përndryshe do të përfundonte në një deponi. Por ai projekt u ndërtua rreth ndërfaqes PS/2 të miut, e cila dukej e panevojshme e rëndë. Kështu që e mora këtë si një mundësi për të mësuar në lidhje me përbërësin e vetëm thelbësor: koduesin rrotullues.
Furnizimet
Kodifikues rrotullues
Bordi dev i bazuar në ESP32
Ekran I2C OLED (njësia me dy ngjyra duket veçanërisht e ftohtë)
Butoni i vogël momental
De-greased kushineta 608ZZ
Dy unaza o nga dyqani i pajisjeve (diameter 33mm ID x diameter 1.5mm diametër profili - shiko komentet)
Dy vida 2.5 mm për mbyllje
Dy vida, arra dhe rondele 4 mm për të lidhur montuesin në printerin tuaj
Tufa tela
Printer 3D dhe disa filamente
Hapi 1: Zgjidhni një kodues rrotullues
Kodifikuesit rrotullues përkthejnë lëvizjen rrotulluese në impulse elektrike. Të gjithë minjtë e shkollës së vjetër i përdorën ato për të matur lëvizjen e topit të rrotullimit, dhe minjtë optikë më modernë (ha ha) akoma i përdorën ato për rrotullën e rrotullës, e cila ishte ajo që kisha vendosur dhe përdorur për eksperimentimin fillestar. Fatkeqësisht, imi nuk ofroi pika të dukshme të montimit dhe zgjidhja e tij ishte e dobët.
Nëse ia vlen të bësh, ia vlen të bësh shumë. Kështu që bleva një kodues të madh, miqësor, me 360 puls për revolucion dhe ndërtova projektin tim rreth tij. Ajo që zgjodha ishte një Kodifikues Rrotullues Optik Rritës Signswise, i tipit LPD3806-360BM-G5-24C. Por çdo kodifikues i mirë do të bëjë.
Hapi 2: Shtoni një rrotull dhe përtac
Lëvizja lineare e filamentit përkthehet në lëvizje rrotulluese të kodifikuesit nga një rrotull. Dhe filamenti mbahet kundër rrotullës nga një përtac.
Rrotulla ka dy groove, secila mban një unazë o të shtrirë kështu që nuk ka rrëshqitje, Përtacia ka një brazdë të vetme v për të mbajtur fijen në qendër në rrotullën e koduesit. Itshtë ulur në një kushinetë 608ZZ që kisha shtrirë përreth, dhe është montuar në një sustë spirale të shtypur pikërisht në trupin kryesor të projektit tim. (Skedarët STL bashkangjitur më poshtë.)
Për këtë u desh një provë dhe gabim, por modeli im duhet të strehojë një sërë këndesh dhe rreze të mbështjelljes, duke lejuar që filamenti të lëshohet nga çdo pjesë e bobinës, nga fillimi deri në fund të një printimi. Dhe pranvera e shtypur e bën të lehtë futjen ose daljen e filamentit kur ndërroni bobinat.
Hapi 3: Kodimi
Për të numëruar filamentin, çdo bord zhvillues me dy hyrje dixhitale do të funksionojë. Koduesi që zgjodha ka katër kunja: Vcc, terren dhe dy kunja kodimi. Këtu keni një shkrim vërtet të bukur që shpjegon se si funksionojnë koduesit rrotullues dhe si t'i ndërlidhni ato me Arduino. (Gjithashtu: ky artikull rreth kodifikuesve me 3 kunja.)
Numërimi bazë është i thjeshtë: dy hyrje - të vendosura për t'u tërhequr brenda, kështu që rezistorët e jashtëm nuk kanë nevojë të bashkohen në Vcc - dhe një ndërprerje. Unë gjithashtu shtova një buton zero/rivendosje, duke kërkuar një hyrje dhe ndërprerje më shumë:
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)) {pozicion += 1; } else {pozicioni -= 1; }} void IRAM_ATTR zeroButtonPressed () {// trajtoni zero dhe rivendosni}
Por unë doja më shumë sesa thjesht një sportel memec. Me një ESP32 (ose ESP8266) dhe WiFi-në e tij të integruar, në fakt mund të bëj diçka me të dhënat që po mbledh. Duke përdorur një kod të thjeshtë të kohës së përfundimit (shpjeguar më poshtë), unë mund të përcaktoj kur fillon dhe mbaron printimi dhe t'i dërgoj ato ngjarje si njoftime në telefonin tim. Në të ardhmen, mund të shtoj një sensor të mbarimit dhe të njoftoj veten (dhe të ndërpres printerin tim) kur të jetë e nevojshme vëmendja ime.
Kodi i plotë është në Github.
Disa shënime mbi kodin:
Për ta përshtatur këtë me modelin tuaj, gjithçka që ju nevojitet është rezolucioni (encoderPPR) - në impulse për revolucion, i cili është zakonisht dyfishi i specifikës së deklaruar - dhe rrezja e rrotullës (wheelRadius). Këto vlera, plus ssid dhe fjalëkalimin e wifi -t tuaj dhe kunjat e veçanta të lidhura me butonin, koduesin dhe ekranin OLED, të gjitha shkojnë në konfigurimin.h
Butoni zero gjithashtu dyfishohet si një rivendosje - mbajeni atë për të rindezur tabelën, e cila është e dobishme për korrigjimin
Ndërprerjet janë të fuqishme - ndonjëherë shumë të fuqishme. Një prekje e vetme e butonit zero mund të shkaktojë që funksioni zeroButtonPpress () të thirret 10-20 herë, kështu që shtova një logjikë debounce. Kodifikuesi im optik nuk kishte nevojë për të, por YMMV
Ndërsa ndërprerjet kujdesen për hyrjet në mënyrë asinkrone, rutina e lakut () merret me mbajtjen e librave. EncoderState - një enum që mund të ushqehet, tërhiqet ose ndalohet - azhurnohet me ndryshimin e pozicionit të koduesit. Kohëzgjatjet më pas përcaktojnë kur printeri ka filluar dhe përfunduar printimin. Por pjesa e ndërlikuar është se printerat 3D shpesh fillojnë dhe ndalojnë lëvizjen, kështu që ajo që funksionoi më së miri ishte përcaktimi i ngjarjes "printimi i plotë" duke mbetur i ndaluar vazhdimisht për të paktën 5 sekonda. Çdo lëvizje shkakton një kohëmatës të dytë që përcakton ngjarjen "fillimi i printimit" vetëm nëse asnjë ngjarje "printimi i plotë" nuk ndodh në një afat kohor prej 15 sekondash. Në praktikë, kjo funksionon me not
Pra, kodi i lakut kryesor () mund të funksionojë pa ngarkesa, kodi i debuncimit funksionon në një cikël detyre RTOS. Po kështu, kërkesat http për të dërguar njoftime janë sinkrone dhe për këtë arsye janë të sfonduara. Kështu animacionet funksionojnë pa probleme dhe numërimi nuk ndalet kurrë
Ka një mori kodesh shtesë në shembullin tim për të (A) krijuar dhe mbajtur një lidhje rrjeti me WiFi dhe mDNS, (B) të marr kohën nga një server NTC në mënyrë që të mund të vulos me kohë njoftimet e mia të fillimit dhe mbarimit dhe të shfaq një orë argëtuese në OLED -in tim, dhe (C) trajtoj përditësimet OTA kështu që nuk kam pse ta lidh fizikisht tabelën time me Mac -in tim për përditësimet e kodit. Për momentin, është e gjitha në një skedar monolit C ++, vetëm sepse nuk kam marrë kohë për ta organizuar më mirë
Kam përdorur aplikacionin e mrekullueshëm (dhe falas) Prowl iOS për të dërguar njoftime push në telefonin tim pa asgjë më shumë se metodat HTTP Get
Për të zhvilluar kodin dhe ndezur tabelën, kam përdorur PlatformIO spektakolare që funksionon në Visual Studio Code, të dyja falas
Për projektin tim, kam përdorur këto biblioteka: u8g2 nga Oliver, elapsedMillis nga Paul Stoffregen dhe HTTPClient nga Markus Sattler, e cila vjen me platformën Espressif ESP32. Çdo gjë tjetër ose vjen me bibliotekën Arduino ose platformën ESP32 në PlatformIO
Së fundi, unë krijova gjashtë bitmap të thjeshtë të rrotullës sime kryesore në kënde të ndryshme, kështu që mund të tregoja një animacion të pastër të rrotullimit në OLED pas banakut. Ai lëviz në drejtimin e duhur me koduesin, edhe pse shumë më shpejt për një efekt më dramatik
Hapi 4: Instalimet elektrike
Unë e projektova këtë në mënyrë që instalimet elektrike të ishin të thjeshta, kryesisht në mënyrë që rrethimi im të ishte i vogël, por gjithashtu korrigjimi i gabimeve do të ishte drejtpërsëdrejti. Vini re kushtet e ngushta në kutinë time të vogël.:)
Kërkesa e parë ishte tensioni i furnizimit 5V i koduesit tim rrotullues. Nga bordet e ndryshme të zhvillimit ESP32 që kisha në stokun tim, vetëm disa furnizuan 5V të vërtetë në pinin Vcc kur mundësoheshin nga USB. (Të tjerët matën 4.5-4.8V, e cila, në rast se matematika juaj është e keqe, është më e ulët se 5V.) Tabela që kam përdorur ishte një Wemos Lolin32.
Tjetra, vijnë dy kunjat e sinjalit të koduesit rrotullues. Meqenëse po përdor ndërprerje, shqetësimi kryesor është që kunjat që përdor nuk ndërhyjnë me asgjë. Dokumentet ESP32 thonë se ADC2 nuk mund të përdoret në të njëjtën kohë me WiFi, kështu që për fat të keq do të thotë që nuk mund të përdor asnjë nga kunjat e ADC2 GPIO: 0, 2, 4, 12, 13, 14, 15, 25, 26, ose 27. Zgjodha 16 dhe 17.
Këshillë pro: nëse, pasi i keni bashkuar të gjitha këto, kodifikuesi juaj duket se po numëron prapa, thjesht mund të ndërroni dy caktimet e kunjave në konfigurimin.h.
Së fundi, lidhni telin tokësor të koduesit rrotullues me … rrotullën e daulles … kunjin e tokëzimit.
Tjetra, butoni zero/rivendosje lidhet midis tokës dhe një kunj tjetër falas (zgjodha GPIO 18).
Butoni që kam përdorur ishte një ndërprerës i vogël i çastit që shpëtova nga miu kompjuterik i lartpërmendur, por çdo buton që keni vënë rreth tij do të funksionojë. Ju mund ta shihni atë duke pushuar në një mal të vogël që kam bërë për të pikërisht mbi dërrasë.
Së fundi, OLED, nëse nuk është i lidhur tashmë me bordin tuaj, ka nevojë për vetëm katër kunja: 3V3, tokë, orë i2c dhe të dhëna i2c. Në bordin tim të zhvillimit, ora dhe të dhënat janë përkatësisht 22 dhe 21.
Hapi 5: Shtypni Pjesët
Kam projektuar shtatë pjesë për këtë ndërtim:
Rrotulla, e cila montohet drejtpërdrejt në boshtin e kodifikuesit rrotullues
I papunë, i cili përshtatet mbi një kushinetë 608ZZ (hiqni qoshet dhe yndyrosni me WD40 në mënyrë që të rrotullohet lirshëm)
Mbajtësi, mbi të cilin ngrihen dy thembra dhe koduesi - vini re pranverën spirale për boshtin
Një kllapa për të stabilizuar mbajtësin. Fotografia në këtë hap tregon se si kllapa i ngjitet mbajtësit
Mbyllja (poshtë) për të mbajtur bordin tim ESP32 dev, me një hapësirë për kabllon USB në anën dhe një tjetër në krye për lidhësin që shtova në telat e koduesit. Ky është krijuar për t'iu përshtatur Wemos Lolin32, kështu që mund t'ju duhet të modifikoni pak këtë dizajn për t'iu përshtatur një bordi tjetër
Rrethimi (lart) për të mbajtur ekranin OLED, një spirale tjetër për butonin zero / rivendosje
Një mbajtës butoni i përshtatur për çelësin e vogël që kisha, i projektuar për të pushuar midis dy rafteve brenda rrethimit të poshtëm. Kam përdorur një hekur bashkues për të "ngjitur" kalimin në mbajtës; shikoni hapin paraprak për një fotografi
Çdo gjë është krijuar për t'u shtypur pa mbështetës. PLA normale në ngjyrën tuaj të zgjedhur është gjithçka që ju nevojitet.
Vendosini të gjitha së bashku, bashkojini printerit tuaj (këtu mund të kërkohet njëfarë krijimtarie) dhe jeni mirë.
Recommended:
DIY NANOLEAF - Pa Printer 3D: 11 hapa (me fotografi)
DIY NANOLEAF - Pa Printer 3D: Hii Tech Lovers në këtë Udhëzues Unë do t'ju tregoj se si të bëni Arora Nanoleaf Asnjë mjet elektrik të mos përdorë & ju mund t'i personalizoni ato panele. Unë kam bërë 9 panele, gjithsej 54 LED Neo pixel. Kosto totale nën 20 dollarë (1500 Indian Indiane) panele të lehta Nanoleaf,
Bëni një robot vallëzimi pa printer 3d dhe Arduino/#creativity:#11 hapa (me fotografi)
Bëni një robot vallëzimi pa printer 3d dhe Arduino/#smartcreativity: Përshëndetje miq, në këtë tutorial do t'ju tregoj se si të bëni një robot vallëzimi në shtëpi pa printer 3D dhe pa Arduino. Ky robot është në gjendje të kërcejë, të balancojë automatikisht, të prodhojë muzikë dhe të ecë. Dhe dizajni i Robotit gjithashtu duket shumë i lezetshëm
MOSTER FET - Dual 500Amp 40 Volt MOSFET Printer 3d Printer me Ngrohës Shtrati: 7 hapa (me fotografi)
MOSTER FET - Dyfishtë 500Amp 40 Volt MOSFET Printer 3d Drejtues të Shtratit të Ngrohur: Ju ndoshta keni klikuar mbi këtë lopë të shenjtë të menduar, 500 AMPS !!!!!. Për të qenë i sinqertë, bordi MOSFET që kam projektuar nuk do të jetë në gjendje të bëjë me siguri 500Amps. Mund të ndodhë për pak, pak para se të shpërthejë me entuziazëm në zjarr. Kjo nuk ishte projektuar për të qenë një çarje
Ora HP Tube Counter Nixie e Counter Nixie e viteve 1960/Ekran BG: 3 hapa
Ora HP e Counter Nixie Tube e viteve 1960/Ekrani BG: Ky është një projekt për të bërë një orë- dhe në rastin tim, një ekran të glukozës në gjak- nga një numërues i frekuencave të cilësisë së mirë të vitit 1966 HP 5532A. Në rastin tim, sporteli nuk funksionoi dhe më duhej të bëja disa riparime. Këto fotografi fillestare janë disa nga riparimet. Ky udhëzim
Arduino për Nerf: Kronograf dhe Counter Counter: 28 hapa (me fotografi)
Arduino për Nerf: Chronograph and Shot Counter: Instructable im i mëparshëm mbulonte bazat e zbulimit të shpejtësisë së shigjetës duke përdorur një emetues dhe detektor infra të kuqe. Ky projekt e çon një hap më tej, duke përdorur një tabelë qarku të shtypur, ekran dhe bateri për të bërë një numërues portativ të municionit dhe kronograf.