Satura rādītājs:
- Piegādes
- 1. darbība: izvēlieties rotējošo kodētāju
- 2. solis: pievienojiet skriemeli un tukšgaitu
- 3. darbība: kodēšana
- 4. solis: elektroinstalācija
- 5. darbība: izdrukājiet detaļas
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Kāpēc jāuztraucas par kvēldiega skaitīšanu? Daži iemesli:
Veiksmīgām izdrukām ir nepieciešams pareizi kalibrēts ekstrūderis: kad gcode liek ekstrūderam pārvietot kvēldiegu par 2 mm, tam ir jāpārvietojas tieši par 2 mm. Sliktas lietas notiek, ja tas pārmērīgi izspiež vai nepietiekami izspiež. Labi kalibrēts skaitītājs var saglabāt ekstrūderi godīgu
Šķēlēji aptuveni nosaka, cik daudz kvēldiega vajadzēs noteiktā drukā (gan garumā, gan svarā), un es vēlos pārbaudīt šīs vērtības
Kvēldiega kustības mērīšana arī ļauj man zināt, kad drukāšana ir sākusies un kad tā ir apstājusies
Man vajadzēja kaut ko, lai aizsegtu vietu, kas atstāta, noņemot neglīto milzu logotipu mana printera priekšpusē
Tas ir forši
Mani iedvesmoja šī pamācība, kas veica jaunu PS/2 peli kā kvēldiegu skaitītāju 3D printerim. Tas ne tikai pievienoja noderīgu funkciju 3D printerim, bet arī pārveidoja veco ierīci, kas citādi būtu nonākusi poligonā. Bet šis projekts tika veidots ap peles PS/2 saskarni, kas šķita nevajadzīgi apgrūtinoša. Tāpēc es to izmantoju kā iespēju uzzināt par vienīgo būtisko sastāvdaļu: rotējošo kodētāju.
Piegādes
Rotējošais kodētājs
Uz ESP32 balstīta izstrādātāju plate
I2C OLED displejs (divu krāsu iekārta izskatās īpaši forša)
Maza īslaicīga spiedpoga
608ZZ gultnis bez taukiem
Divi gredzeni no datortehnikas veikala (~ 33 mm ID x ~ 1,5 mm profila diametrs - skatīt komentārus)
Divas 2,5 mm pašvītņojošas skrūves korpusam
Divas 4 mm skrūves, uzgriežņi un paplāksnes stiprinājuma piestiprināšanai pie printera
Vadu ķekars
3D printeris un daži kvēldiegi
1. darbība: izvēlieties rotējošo kodētāju
Rotējošie kodētāji rotācijas kustību pārvērš elektriskos impulsos. Visas vecās skolas peles tās izmantoja, lai izmērītu ritošās bumbas kustību, un modernākas (ha ha) optiskās peles tās joprojām izmantoja ritināšanas ritenim, ko es biju ievietojis un izmantojis sākotnējiem eksperimentiem. Diemžēl manējais nepiedāvāja acīmredzamus stiprinājuma punktus, un tā izšķirtspēja bija slikta.
Ja ir vērts to darīt, ir vērts pārcensties. Tāpēc es nopirku lielu, draudzīgu 360 pulsa kodēšanas kodētāju un ap to izveidoju savu projektu. Es izvēlējos signālu pieaugošo optisko rotācijas kodētāju, tipa LPD3806-360BM-G5-24C. Bet jebkurš pienācīgs kodētājs to darīs.
2. solis: pievienojiet skriemeli un tukšgaitu
Kvēldiega lineārā kustība ar skriemeli tiek pārveidota par kodētāja rotācijas kustību. Un kvēldiegu pie skriemeļa tur brīvgaita.
Skriemelim ir divas rievas, katrā no tām ir izstiepts blīvgredzens, tāpēc nav slīdēšanas, Tukšgaitai ir viena v-rieva, lai kvēldiegs būtu centrēts uz kodētāja skriemeli. Tas atrodas uz 608ZZ gultņa, kas man bija uzlikts, un tas ir uzstādīts uz spirālveida atsperes, kas iespiesta tieši mana projekta galvenajā korpusā. (STL faili pievienoti zemāk.)
Lai to izdarītu pareizi, bija vajadzīgi daži izmēģinājumi un kļūdas, taču manam dizainam ir jāatbilst dažādiem leņķiem un spoles rādiusiem, ļaujot kvēldiegam atritināties no jebkuras spoles daļas, visu laiku no drukas sākuma līdz beigām. Un ar iespiesto atsperi ir viegli ievietot vai izņemt kvēldiegu, mainot spoles.
3. darbība: kodēšana
Tikai kvēldiega skaitīšanai derēs jebkura izstrādātāju plate ar divām digitālām ieejām. Manis izvēlētajam kodētājam ir četras tapas: Vcc, slīpētas un divas kodētāja tapas. Šeit ir patiešām jauks raksts, kas izskaidro rotējošo kodētāju darbību un to saskarni ar Arduino. (Arī: šis raksts par 3 kontaktu kodētājiem.)
Pamata skaitīšana ir vienkārša: divas ieejas - iestatītas tā, lai tās paceltu iekšēji, lai ārējie rezistori nebūtu jāpielodē Vcc -, un viens pārtraukums. Es arī pievienoju nulles/atiestatīšanas pogu, pieprasot vēl vienu ievadi un pārtraukšanu:
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; } cits {pozīcija -= 1; }} void IRAM_ATTR zeroButtonPressed () {// rokturis nulle un atiestatīšana}
Bet es gribēju vairāk nekā tikai mēmu skaitītāju. Izmantojot ESP32 (vai ESP8266) un tajā iebūvēto WiFi, es faktiski varu kaut ko darīt ar savāktajiem datiem. Izmantojot vienkāršu taimauta kodu (izskaidrots zemāk), es varu noteikt, kad drukāšana sākas un beidzas, un nosūtīt šos notikumus kā paziņojumus uz manu tālruni. Nākotnē es varu pievienot iztukšošanās sensoru un brīdināt sevi (un apturēt printera darbību), kad man nepieciešama uzmanība.
Pilns kods ir vietnē Github.
Dažas piezīmes par kodu:
Lai to pielāgotu savai konstrukcijai, jums ir nepieciešama tikai izšķirtspēja (kodētājsPPR) - impulsos vienā apgriezienā, kas parasti ir divas reizes lielāka par norādīto specifikāciju, un skriemeļa rādiuss (wheelRadius). Šīs vērtības, kā arī jūsu wifi ssid un parole, kā arī īpašās tapas, kas savienotas ar pogu, kodētāju un OLED ekrānu, tiek ievadītas konfigurācijā. H
Nulles poga darbojas arī kā atiestatīšana - turiet to nospiestu, lai atsāknētu dēli, kas ir noderīgi atkļūdošanai
Pārtraukumi ir spēcīgi - dažreiz pārāk spēcīgi. Viens nulles pogas pieskāriens var izraisīt to, ka funkcija zeroButtonPressed () tiek izsaukta 10-20 reizes, tāpēc es pievienoju nedaudz atkāpšanās loģikas. Manam optiskajam kodētājam tas nebija vajadzīgs, bet YMMV
Kamēr pārtraukumi rūpējas par ievadi asinhroni, cikla () rutīna veic grāmatvedības kārtošanu. EncoderState - enum, ko var barot, ievilkt vai apturēt - tiek atjaunināts, mainot kodētāja stāvokli. Taimauti nosaka, kad printeris ir sācis un beidzis drukāšanu. Bet sarežģītā daļa ir tāda, ka 3D printeri bieži sāk un pārtrauc kustību, tāpēc vislabāk bija definēt notikumu "drukas pabeigšana", kas palika nepārtraukti apturēts vismaz 5 sekundes. Jebkura kustība aktivizē otru taimeri, kas definē notikumu "drukāšana sākta" tikai tad, ja 15 sekunžu laikā nenotiek neviens notikums "drukas pabeigšana". Praksē tas darbojas peldoši
Tātad galvenais cilpas () kods var darboties neapgrūtināts, atkāpšanās kods darbojas RTOS uzdevumu ciklā. Tāpat http pieprasījumi par paziņojumu nosūtīšanu ir sinhroni un tāpēc ir pamatoti. Tādējādi animācijas darbojas nevainojami un skaitīšana nekad neapstājas
Manā piemērā ir daudz papildu koda, lai (A) izveidotu un uzturētu tīkla savienojumu, izmantojot WiFi un mDNS, (B) paņemtu laiku no NTC servera, lai es varētu nospiest sākuma un beigu paziņojumus un parādīt nejauku pulksteni manā OLED un (C) apstrādā OTA atjauninājumus, lai man nebūtu fiziski jāpievieno tāfele ar Mac, lai atjauninātu kodu. Šobrīd tas viss ir vienā monolītā C ++ failā, tikai tāpēc, ka neesmu veltījis laiku, lai to labāk sakārtotu
Es izmantoju brīnišķīgo (un bezmaksas) Prowl iOS lietotni, lai nosūtītu paziņojumus uz manu tālruni, izmantojot tikai HTTP iegūšanas metodes
Lai izstrādātu kodu un zibspuldzi, es izmantoju iespaidīgo PlatformIO, kas darbojas uz Visual Studio Code, gan bez maksas
Savam projektam es izmantoju šīs bibliotēkas: Oliver u8g2, pagājušais Millis Paul Stoffregen un HTTPClient Markus Sattler, kas nāk ar Espressif ESP32 platformu. Viss pārējais nāk ar Arduino bibliotēku vai platformu ESP32 platformā PlatformIO
Visbeidzot, es izveidoju sešas vienkāršas sava galvenā skriemeļa bitkartes dažādos leņķos, lai es varētu parādīt glītu mazu rotējošu riteņu animāciju uz OLED aiz letes. Tas pārvietojas atbilstošā virzienā ar kodētāju, lai gan daudz ātrāk, lai iegūtu dramatiskāku efektu
4. solis: elektroinstalācija
Es to izstrādāju tā, lai vadi būtu vienkārši, galvenokārt tāpēc, ka mans korpuss varētu būt mazs, bet arī atkļūdošana būtu tieša. Pievērsiet uzmanību šaurajiem apstākļiem manā mazajā kastītē.:)
Pirmā prasība bija mana rotējošā kodētāja 5V barošanas spriegums. No dažādajiem ESP32 izstrādātāju dēļiem, kas bija manā atlicinātājā, tikai daži piegādāja patiesu 5 V sprieguma tapu, kad to darbina USB. (Pārējie mērīja 4,5–4,8 V, kas, ja jūsu matemātika ir slikta, ir zemāka par 5 V.) Tāfele, kuru izmantoju, bija Wemos Lolin32.
Tālāk nāk divas rotējošās kodētāja signāla tapas. Tā kā es izmantoju pārtraukumus, galvenās bažas rada tas, ka manis izmantotās tapas neko netraucē. ESP32 dokumentos norādīts, ka ADC2 nevar izmantot vienlaikus ar WiFi, tāpēc diemžēl tas nozīmē, ka es nevaru izmantot nevienu no ADC2 GPIO tapām: 0, 2, 4, 12, 13, 14, 15, 25, 26 vai 27. Es izvēlējos 16 un 17.
Padoms profesionāļiem: ja pēc visa šī apkopošanas šķiet, ka kodētājs sāk skaitīties atpakaļ, varat vienkārši nomainīt abus tapu uzdevumus konfig.h.
Visbeidzot pievienojiet rotējošā kodētāja zemējuma vadu… cilindra rullim… zemējuma tapai.
Pēc tam nulles/atiestatīšanas spiedpoga tiek savienota starp zemi un citu brīvu tapu (es izvēlējos GPIO 18).
Mana izmantotā poga bija niecīgs īslaicīgs slēdzis, kuru izglābu no iepriekš minētās datora peles, taču derēs jebkura poga, kas atrodas. Jūs varat redzēt, ka tas atrodas nelielā stiprinājumā, ko es tam izveidoju tieši virs dēļa.
Visbeidzot, OLED, ja tas vēl nav pievienots jūsu platei, ir vajadzīgas tikai četras tapas: 3V3, zemējums, i2c pulkstenis un i2c dati. Manā izstrādātāju padomē pulkstenis un dati ir attiecīgi 22 un 21.
5. darbība: izdrukājiet detaļas
Šai konstrukcijai es izstrādāju septiņas daļas:
Skriemelis, kas stiprināms tieši uz rotējošā kodētāja vārpstas
Tukšgaita, kas der virs 608ZZ gultņa (noņemiet pārsegus un attaukojiet ar WD40, lai tas brīvi grieztos)
Turētājs, uz kura tiek piestiprināti divi rullīši un kodētājs - atzīmējiet brīvgaitas spirālveida atsperi
Kronšteins turētāja stabilizēšanai. Šīs darbības fotoattēls parāda, kā kronšteins piestiprinās pie turētāja
Korpuss (apakšā), lai turētu manu ESP32 izstrādātāja plati, ar atstarpi USB kabelim sānos un otru augšpusē savienotājam, ko pievienoju kodētāja vadiem. Šis ir paredzēts Wemos Lolin32, tāpēc jums, iespējams, nāksies nedaudz pārveidot šo dizainu, lai tas atbilstu citai plāksnei
Korpuss (augšpusē), lai noturētu OLED ekrānu, vēl viena spirāles poga nulles / atiestatīšanai
Pogas turētājs, kas pielāgots manam mazajam slēdzim, kas paredzēts atpūtai starp diviem plauktiem apakšējā korpusa iekšpusē. Es izmantoju lodāmuru, lai "pielīmētu" slēdzi pie turētāja; skatiet fotoattēla iepriekšējo darbību
Viss ir paredzēts drukāšanai bez balstiem. Parasta PLA jūsu izvēlētajā krāsā ir viss, kas jums nepieciešams.
Salieciet visu kopā, piestipriniet pie sava printera (šeit var būt nepieciešama radošums), un viss ir kārtībā.
Ieteicams:
Viedais modinātājs: viedais modinātājs, kas izgatavots ar Raspberry Pi: 10 soļi (ar attēliem)
Viedais modinātājs: viedais modinātājs, kas izgatavots, izmantojot Raspberry Pi: Vai esat kādreiz vēlējies gudru pulksteni? Ja tā, tas ir risinājums jums! Es izveidoju viedo modinātāju, tas ir pulkstenis, ar kuru jūs varat mainīt modinātāja laiku atbilstoši vietnei. Kad modinātājs atskan, atskanēs skaņa (skaņas signāls) un iedegsies 2 gaismas
Iot viedais enerģijas skaitītājs: 6 soļi
Iot viedais enerģijas skaitītājs: Šis ir uz iot balstīts viedais enerģijas skaitītājs, ar kuru es izveidoju, lai varētu kontrolēt ierīces jaudu, strāvu, vatstundas un vienības patērēto enerģiju. Darba video varat redzēt šeit
Viedais skaitītājs ar automātisko jaudas koeficienta korekcijas bloku: 29 soļi
Viedais skaitītājs ar automātisko jaudas koeficienta korekcijas bloku: divvirzienu skaitītājs ar automātisku jaudas koeficienta grozīšanas sīkrīku uztver aktīvo un reaktīvo jaudu, kā arī jaudas koeficientu no līnijas sprieguma un līnijas strāvas sajūtas pēc sprieguma un strāvas sensora. Tas nosaka posma malas atslābumu starp
Viedais elektrības skaitītājs: 3 soļi
Viedais elektrības skaitītājs: gandrīz visiem digitālajiem elektrības skaitītājiem (gudriem vai ne) ir gaisma, kas mirgo katru reizi, kad tiek izmantots noteikts enerģijas daudzums - bieži vien reizi katrā vatstundā (parasti tiek apzīmēta kā 1000 imp/kWh). atklāt to ar vienkāršu gaismas atkāpi
Andželīnas kausējamās šķiedras ar vadošu pavedienu: 11 soļi (ar attēliem)
Andželīnas kausējamās šķiedras ar vadošu pavedienu: metode vadoša diega piestiprināšanai pie auduma. Vai vēlaties vairāk eTextile padomu, kā to izdarīt pats, eTextile videoklipus, apmācības un projektus? Pēc tam apmeklējiet eTextile Lounge