Orodha ya maudhui:

Kihesabu cha Filamenti ya Smart 3D Printer: Hatua 5 (na Picha)
Kihesabu cha Filamenti ya Smart 3D Printer: Hatua 5 (na Picha)

Video: Kihesabu cha Filamenti ya Smart 3D Printer: Hatua 5 (na Picha)

Video: Kihesabu cha Filamenti ya Smart 3D Printer: Hatua 5 (na Picha)
Video: BTT GTR v1.0/M5 v1.0 - TMC2208 UART 2024, Juni
Anonim
Smart 3D Printer filament kukabiliana
Smart 3D Printer filament kukabiliana

Kwa nini ujisumbue kuhesabu filament? Sababu chache:

Machapisho yaliyofanikiwa yanahitaji kiboreshaji kilichosanifiwa vizuri: wakati gcode inamwambia extruder asonge filament 2mm, inahitaji kusonga 2mm haswa. Vitu vibaya hufanyika ikiwa inazidi kupita kiasi au chini ya extrudes. Kaunta iliyosanifiwa vizuri inaweza kuweka extruder mwaminifu

Vipande hukadiria ni kiasi gani cha filamenti uchapishaji uliyopewa utachukua (kwa urefu na uzani) na ningependa kuangalia maadili hayo

Kupima harakati za filament pia nijulishe wakati uchapishaji umeanza na umekoma lini

Nilihitaji kitu kufunika nafasi iliyoachwa na kuondolewa kwa nembo kubwa kubwa mbele ya printa yangu

Ni baridi

Nilivutiwa na hii inayoweza kufundishwa, ambayo ilirudisha tena panya ya zamani ya PS / 2 kama kaunta ya filament kwa Printa ya 3D. Sio tu kwamba iliongeza huduma muhimu kwa printa ya 3D, ilinunua tena kifaa cha zamani ambacho kingeishia kwenye taka. Lakini mradi huo ulijengwa karibu na kiwambo cha panya cha PS / 2, ambacho kilionekana kuwa ngumu sana. Kwa hivyo nilichukua hii kama fursa ya kujifunza juu ya sehemu muhimu tu: encoder ya rotary.

Vifaa

Usimbuaji Rotary

Bodi ya dev ya ESP32

Onyesho la I2C OLED (kitengo cha rangi mbili kinaonekana kupendeza haswa)

Kitufe kidogo cha kitambo cha kitambo

De-greased kuzaa 608ZZ

Pete mbili kutoka kwa duka la vifaa (~ 33mm ID x ~ 1.5mm kipenyo cha wasifu - angalia maoni)

Vipimo viwili vya kujipiga kwa 2.5mm kwa eneo hilo

Vipimo viwili vya 4mm, karanga, na washer ili kushikamana na mlima kwenye printa yako

Rundo la waya

Printa ya 3D na filamenti fulani

Hatua ya 1: Chagua Encoder ya Rotary

Chagua Encoder ya Rotary
Chagua Encoder ya Rotary
Chagua Encoder ya Rotary
Chagua Encoder ya Rotary

Encoders za Rotary hutafsiri harakati za kuzunguka ndani ya kunde za umeme. Panya wote wa shule ya zamani waliwatumia kupima mwendo wa mpira unaozunguka, na panya wa kisasa (ha ha) wa macho bado waliwatumia kwa gurudumu la kusogeza, ambayo ndio nilikuwa nimelala karibu na kuitumia kwa majaribio ya awali. Kwa bahati mbaya, yangu haikutoa alama za wazi za milima na azimio lake lilikuwa mbaya.

Ikiwa inafaa kuifanya, inafaa kufanya zaidi. Kwa hivyo nilinunua kubwa, ya kirafiki, ya-360-pulse kwa kila encoder ya mapinduzi na nikajenga mradi wangu karibu nayo. Ile niliyochagua ilikuwa Encoder ya Kuongeza macho ya macho, aina ya LPD3806-360BM-G5-24C. Lakini encoder yoyote nzuri itafanya.

Hatua ya 2: Ongeza Pulley na Idler

Ongeza Pulley na Idler
Ongeza Pulley na Idler

Mwendo wa laini ya filament hutafsiriwa katika harakati za kuzunguka kwa encoder na pulley. Na filament inafanyika dhidi ya pulley na wavivu.

Pulley ina mito miwili, kila moja imeshikilia pete ya kunyoosha kwa hivyo hakuna utelezi, Wavivu ana v-groove moja ya kuweka filament katikati ya pulley ya encoder. Inakaa kwenye kuzaa kwa 608ZZ nilikuwa nimeiweka karibu, na hiyo imewekwa kwenye chemchemi ya ond iliyochapishwa moja kwa moja kwenye mwili kuu wa mradi wangu. (Faili za STL zimeambatanishwa hapa chini.)

Hii ilichukua jaribio na hitilafu kupata haki, lakini muundo wangu unapaswa kubeba pembe na mionzi anuwai, ikiruhusu filament kupumzika kutoka sehemu yoyote ya kijiko, kutoka mwanzo hadi mwisho wa kuchapisha. Na chemchemi iliyochapishwa hufanya iwe rahisi kuingia ndani au nje ya filament wakati wa kubadilisha spools.

Hatua ya 3: Usimbuaji

Image
Image

Kwa kuhesabu tu filament, bodi yoyote ya dev na pembejeo mbili za dijiti zitafanya. Encoder niliyochagua ina pini nne: Vcc, ardhi, na pini mbili za encoder. Hapa kuna maandishi mazuri ambayo yanaelezea jinsi encoders za rotary zinafanya kazi na jinsi ya kuziunganisha na Arduino. (Pia: nakala hii juu ya encoders 3-pini.)

Uhesabuji wa kimsingi ni rahisi: pembejeo mbili - zilizowekwa kuvuta ndani kwa hivyo vipinga nje havihitaji kuuzwa kwa Vcc - na moja ikatishe. Niliongeza pia kitufe cha sifuri / kuweka upya, ikihitaji ingizo moja zaidi na kukatiza:

batili setUpPins () {

pinMode (ENCODER_PIN_1, INPUT_PULLUP); pinMode (ENCODER_PIN_2, INPUT_PULLUP); pinMode (ZERO_BTN_PIN, INPUT_PULLUP); ambatishaKukatiza (ENCODER_PIN_1, encoderPinDidChange, CHANGE); ambatisha Kukatisha (ZERO_BTN_PIN, zeroButtonPressed, CHANGE); } batili IRAM_ATTR encoderPinDidChange () {if (digitalRead (ENCODER_PIN_1) == digitalRead (ENCODER_PIN_2)) {position + = 1; } mwingine {msimamo - = 1; }} batili IRAM_ATTR sifuriButtonPressed () {// shughulikia sifuri na uweke upya}

Lakini nilitaka zaidi ya kaunta bubu. Na ESP32 (au ESP8266) na WiFi iliyojengwa, kwa kweli ninaweza kufanya kitu na data ninayokusanya. Kutumia nambari rahisi ya kumaliza muda (iliyoelezwa hapo chini), ninaweza kuamua wakati uchapishaji unapoanza na unamalizika, na tuma hafla hizo kama arifa kwenye simu yangu. Katika siku zijazo, ninaweza kuongeza sensa ya kukimbia na kujijulisha (na kusitisha printa yangu) wakati umakini wangu unahitajika.

Nambari kamili iko kwenye Github.

Vidokezo vichache kwenye nambari:

Ili kubinafsisha hii kwa muundo wako, unachohitaji tu ni azimio (encoderPPR) - kwenye kunde kwa mapinduzi, ambayo kawaida ni mara mbili ya maelezo yaliyotajwa - na eneo la pulley (wheelRadius). Thamani hizi, pamoja na ssid na nywila ya wifi yako na pini maalum zilizounganishwa na kitufe, kisimbuzi, na skrini ya OLED, zote huenda kwenye muundo wa.h

Kitufe cha sifuri pia huongeza mara mbili kama kuweka upya - shikilia chini ili kuwasha tena bodi, ambayo ni muhimu kwa utatuzi

Usumbufu una nguvu - wakati mwingine ni nguvu sana. Bomba moja la kitufe cha sifuri linaweza kusababisha kazi ya zeroButtonPressed () iitwe mara 10-20, kwa hivyo nikaongeza mantiki ya kujiondoa. Encoder yangu ya macho haikuihitaji, lakini YMMV

Wakati usumbufu unatunza pembejeo kwa usawa, kitanzi () kawaida hushughulikia utunzaji wa hesabu. EncoderState - enum ambayo inaweza kulisha, kurudisha nyuma, au kusimamisha - inasasishwa na mabadiliko katika nafasi ya kisimbuzi. Muda wa muda huamua wakati printa imeanza na kumaliza kuchapisha. Lakini sehemu ngumu ni kwamba printa za 3D zinaanza na kuacha harakati mara kwa mara, kwa hivyo kilichofanya kazi vizuri zaidi ni kufafanua tukio la "kuchapisha kamili" lililobaki limesimama kwa angalau sekunde 5. Mwendo wowote unachochea kipima muda cha pili ambacho kinafafanua tukio la "uchapishaji ulioanza" ikiwa hakuna tukio la "kuchapisha kamili" linatokea katika muda wa sekunde 15. Katika mazoezi, hii inafanya kazi kwa kuogelea

Kwa hivyo kitanzi kuu () kificho kinaweza kukimbia bila idadi, nambari ya kuondoa inaendesha kitanzi cha kazi cha RTOS. Vivyo hivyo, maombi ya http ya kutuma arifa ni sawa na kwa hivyo yamewekwa nyuma. Kwa hivyo michoro huendesha vizuri na kuhesabu hakuachi kamwe

Kuna rundo la nambari ya ziada katika mfano wangu (A) kuanzisha na kudumisha unganisho la mtandao na WiFi na mDNS, (B) kupata wakati kutoka kwa seva ya NTC ili niweze kuweka muhuri wakati wa arifa zangu za kuanza na kumaliza na kuonyesha saa ya jaunty kwenye OLED yangu, na (C) hushughulikia sasisho za OTA kwa hivyo sio lazima niunganishe bodi yangu kwa Mac yangu kwa sasisho za nambari. Kwa sasa, yote iko katika faili moja ya mon + ya C ++, kwa sababu tu sijachukua muda kuipanga vizuri

Nilitumia programu ya Prowl iOS nzuri (na ya bure) kutuma arifa za kushinikiza kwa simu yangu bila zaidi ya njia za Kupata

Kuendeleza nambari na kuangaza bodi, nilitumia Jukwaa la kushangaza linaloendesha kwenye Msimbo wa Studio ya Visual, zote bure

Kwa mradi wangu, nilitumia maktaba hizi: u8g2 na Oliver, elapsedMillis na Paul Stoffregen, na Mteja wa HTTP na Markus Sattler, ambayo inakuja na jukwaa la Espressif ESP32. Kila kitu kingine huja na maktaba ya Arduino au jukwaa la ESP32 katika PlatformIO

Mwishowe, niliunda bitmaps sita rahisi za pulley yangu kuu kwa pembe tofauti, kwa hivyo ningeweza kuonyesha uhuishaji mzuri wa gurudumu kwenye OLED nyuma ya kaunta. Inasonga kwa mwelekeo unaofaa na kisimbuzi, ingawa ni haraka sana kwa athari kubwa zaidi

Hatua ya 4: Wiring

Wiring
Wiring

Nilibuni wiring hii ingekuwa rahisi kufa, haswa hivyo kificho changu kinaweza kuwa kidogo, lakini pia utatuaji itakuwa sawa-foward. Kumbuka hali nyembamba kwenye sanduku langu dogo.:)

Mahitaji ya kwanza ilikuwa voltage ya usambazaji wa 5V ya encoder yangu ya rotary. Kati ya bodi anuwai za ESP32 nilizokuwa nazo katika stash yangu, ni wachache tu waliotoa 5V ya kweli kwenye pini ya Vcc wakati inaendeshwa na USB. (Wengine walipima 4.5-4.8V, ambayo, ikiwa hesabu yako ni mbaya, iko chini kuliko 5V.) Bodi niliyotumia ilikuwa Wemos Lolin32.

Ifuatayo, njoo pini mbili za ishara ya encoder. Kwa kuwa ninatumia usumbufu, wasiwasi kuu ni kwamba pini ninazotumia haziingilii na chochote. Hati za ESP32 zinasema kuwa ADC2 haiwezi kutumika kwa wakati mmoja na WiFi, kwa hivyo kwa bahati mbaya inamaanisha kuwa siwezi kutumia pini yoyote ya ADC2 GPIO: 0, 2, 4, 12, 13, 14, 15, 25, 26, au 27. Nilichagua 16 na 17.

Kidokezo cha Pro: ikiwa, baada ya kuweka haya yote pamoja, encoder yako inaonekana kuhesabu nyuma, unaweza kubadilisha tu kazi mbili za pini katika config.h.

Mwishowe, unganisha waya wa chini wa kusimba wa rotary kwa… ngoma ya ngoma… pini ya ardhini.

Ifuatayo, kifungo cha kushinikiza sifuri / kuweka upya huunganishwa kati ya ardhi na pini nyingine ya bure (nilichagua GPIO 18).

Kitufe nilichotumia kilikuwa kitufe kidogo cha kitambo nilichookoa kutoka kwa panya ya kompyuta iliyotajwa hapo juu, lakini kitufe chochote ulichoweka karibu kitafanya. Unaweza kuiona ikipumzika kwenye mlima mdogo nilioutengenezea juu ya bodi.

Mwishowe, OLED, ikiwa haijaunganishwa kwenye bodi yako, inahitaji pini nne tu: 3V3, ardhi, saa ya i2c, na data ya i2c. Kwenye bodi yangu ya dev, saa na data ni 22 na 21, mtawaliwa.

Hatua ya 5: Chapisha Sehemu

Chapisha Sehemu
Chapisha Sehemu

Nimeunda sehemu saba za ujenzi huu:

Pulley, ambayo hupanda moja kwa moja kwenye shimoni la encoder ya rotary

Wavivu, ambayo inafaa zaidi ya kuzaa 608ZZ (ondoa sheilds na degrease na WD40 kwa hivyo inazunguka kwa uhuru)

Mmiliki, ambayo visigino viwili na encoder hupanda - angalia chemchemi ya ond kwa wavivu

Bano la kutuliza mmiliki. Picha katika hatua hii inaonyesha jinsi bracket inashikilia kwa mmiliki

Ufungaji (chini) kushikilia bodi yangu ya ESP32, na nafasi ya kebo ya USB pembeni na nyingine juu kwa kiunganishi nilichoongeza kwenye waya zangu za usimbuaji. Hii imeundwa kutoshea Wemos Lolin32, kwa hivyo huenda ukalazimika kubuni muundo huu kidogo kutoshea bodi tofauti

Ufungaji (juu) kushikilia skrini ya OLED, ond nyingine kwa kitufe cha sifuri / kuweka upya

Kishikilia kitufe kilichobadilishwa kwa swichi ndogo niliyokuwa nayo, iliyoundwa kupumzika kati ya rafu mbili zilizo ndani ya eneo la chini. Nilitumia chuma cha kutengeneza "gundi" kubadili kwa mmiliki; tazama hatua ya awali ya picha

Kila kitu kimeundwa kuchapishwa bila msaada. PLA ya kawaida katika rangi yako ya chaguo ndio unahitaji.

Weka yote pamoja, ambatanisha na printa yako (ubunifu kadhaa unaweza kuhitajika hapa), na uko vizuri kwenda.

Ilipendekeza: