Obsah:
- Zásoby
- Krok 1: Vyberte rotačný kodér
- Krok 2: Pridajte kladku a napínacie koleso
- Krok 3: Kódovanie
- Krok 4: Zapojenie
- Krok 5: Vytlačte diely
Video: Počítadlo vlákien inteligentnej 3D tlačiarne: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Prečo sa trápiť s počítaním vlákna? Niekoľko dôvodov:
Úspešné výtlačky vyžadujú správne kalibrovaný extrudér: keď kód gcode povie extrudéru, aby posunul vlákno o 2 mm, musí sa posunúť presne o 2 mm. Zlé veci sa stávajú, ak sa extrudujú alebo nedostatočne vytláčajú. Dobre kalibrovaný počítač môže udržať extrudér úprimný
Krájače približne odhadujú, koľko celkového vlákna bude daný výtlačok trvať (v dĺžke aj v hmotnosti) a rád by som tieto hodnoty skontroloval
Meranie pohybu vlákna mi tiež dáva vedieť, kedy sa tlač začala a kedy sa zastavila
Potreboval som niečo na zakrytie priestoru, ktorý zostal po odstránení škaredého obrovského loga na prednej strane mojej tlačiarne
Je to v pohode
Inšpiroval som sa týmto návodom, ktorý repasoval starú myš PS/2 ako počítadlo vlákien pre 3D tlačiareň. Nielenže pridal užitočnú funkciu k 3D tlačiarni, ale upravil aj staré zariadenie, ktoré by inak skončilo na skládke. Tento projekt bol však postavený na rozhraní PS/2 myši, ktoré sa zdalo zbytočne ťažkopádne. Bral som to teda ako príležitosť dozvedieť sa o jedinej podstatnej súčasti: rotačnom kodéri.
Zásoby
Rotačný kodér
Vývojová doska na báze ESP32
I2C OLED displej (dvojfarebná jednotka vyzerá obzvlášť cool)
Drobné chvíľkové tlačidlo
Odmasťované ložisko 608ZZ
Dva o -krúžky z železiarstva (~ 33 mm ID x ~ 1,5 mm priemer profilu - pozri komentáre)
Dve 2,5 mm samorezné skrutky do krytu
Dve 4 mm skrutky, matice a podložky na pripevnenie držiaka k tlačiarni
Zväzok drôtov
3D tlačiareň a nejaké vlákno
Krok 1: Vyberte rotačný kodér
Rotačné snímače prenášajú rotačný pohyb na elektrické impulzy. Všetky myši zo starej školy ich používali na meranie pohybu valiacej sa loptičky a modernejšie (ha ha) optické myši ich stále používali na rolovacie koliesko, čo som mal položené a používané na počiatočné experimentovanie. Ten môj bohužiaľ neponúkal žiadne zrejmé body pripojenia a jeho rozlíšenie bolo zlé.
Ak to stojí za to, stojí to za to. Kúpil som si teda veľký, priateľský, 360-pulzný kodér na otáčku a postavil som okolo toho svoj projekt. Rozhodol som sa pre inkrementálny optický rotačný kodér Signswise, typ LPD3806-360BM-G5-24C. Ale každý slušný kodér to urobí.
Krok 2: Pridajte kladku a napínacie koleso
Lineárny pohyb vlákna je kladkou prenášaný do rotačného pohybu kodéra. A vlákno drží napínaciu kladku proti kladke.
Kladka má dve drážky, z ktorých každá drží natiahnutý o-krúžok, takže nedochádza k skĺznutiu, Napínacie koleso má jednu v-drážku, ktorá udržuje vlákno v strede na remenici snímača. Sedí na ložisku 608ZZ, okolo ktorého som ležal, a ktoré je namontované na špirálovej pružine vytlačenej priamo v hlavnom telese môjho projektu. (Súbory STL sú priložené nižšie.)
Správne riešenie trvalo nejaký pokus a omyl, ale môj návrh by mal vyhovovať rôznym uhlom a polomerom cievky, aby sa vlákno odvíjalo z akejkoľvek časti cievky, od začiatku do konca tlače. A tlačená pružina uľahčuje vysúvanie alebo vysúvanie vlákna pri výmene cievok.
Krok 3: Kódovanie
Na počítanie vlákien poslúži akákoľvek doska pre vývojárov s dvoma digitálnymi vstupmi. Kodér, ktorý som si vybral, má štyri piny: Vcc, uzemňovací a dva piny kodéra. Toto je skutočne pekný zápis, ktorý vysvetľuje, ako rotačné kodéry fungujú a ako ich prepojiť s Arduino. (Tiež: tento článok o 3-kolíkových snímačoch.)
Základné počítanie je jednoduché: dva vstupy - nastavené na interné vytiahnutie, takže externé odpory nie je potrebné spájkovať s Vcc - a jedno prerušenie. Tiež som pridal tlačidlo nulovania/resetovania, ktoré vyžaduje ešte jeden vstup a prerušenie:
zrušiť 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); } neplatné IRAM_ATTR encoderPinDidChange () {if (digitalRead (ENCODER_PIN_1) == digitalRead (ENCODER_PIN_2)) {pozícia += 1; } else {pozícia -= 1; }} neplatné IRAM_ATTR zeroButtonPressed () {// zvládnuť nulu a resetovať}
Ale chcel som viac ako len hlúpy pult. S ESP32 (alebo ESP8266) a vstavaným WiFi môžem v skutočnosti niečo urobiť s údajmi, ktoré zbieram. Pomocou jednoduchého kódu časového limitu (vysvetleného nižšie) môžem určiť, kedy sa tlač začína a končí, a odoslať tieto udalosti ako oznámenia na môj telefón. V budúcnosti môžem pridať senzor vybitia a upozorniť seba (a pozastaviť tlačiareň), keď bude potrebná moja pozornosť.
Celý kód je na Github.
Niekoľko poznámok ku kódu:
Aby ste to prispôsobili svojmu zostaveniu, potrebujete iba rozlíšenie (encoderPPR) - v impulzoch na otáčku, čo je zvyčajne dvojnásobok uvedených špecifikácií - a polomer kladky (wheelRadius). Tieto hodnoty, plus ssid a heslo vašej siete Wi -Fi a konkrétne piny pripojené k tlačidlu, kodéru a obrazovke OLED, všetky idú do konfigurácie.h
Tlačidlo nuly slúži aj ako reset - podržte ho a reštartujte dosku, čo je užitočné pri ladení
Prerušenia sú silné - niekedy príliš silné. Jediné poklepanie na tlačidlo nula môže spôsobiť, že sa funkcia zeroButtonPressed () vyvolá 10-20-krát, preto som pridal nejakú logiku odskoku. Môj optický kodér to nepotreboval, ale YMMV
Kým sa prerušenia starajú o vstupy asynchrónne, rutina loop () zvláda účtovníctvo. EnkodérState - enum, ktorý sa môže podávať, zasúvať alebo zastavovať - sa aktualizuje so zmenou polohy kodéra. Časové limity potom určujú, kedy tlačiareň začala a ukončila tlač. Zložité však je, že 3D tlačiarne často spúšťajú a zastavujú pohyb, takže najlepšie fungovalo definovanie udalosti „dokončenie tlače“, ktorá sa nepretržite zastavovala najmenej na 5 sekúnd. Akýkoľvek pohyb spustí druhý časovač, ktorý definuje udalosť „spustená tlač“, iba ak v časovom rámci 15 sekúnd nenastane žiadna udalosť „dokončená tlač“. V praxi to funguje ako plávanie
Kód hlavnej slučky () teda môže bežať nezaťažený, kód pre odskok je spustený v slučke úloh RTOS. Podobne sú požiadavky HTTP na odosielanie upozornení synchrónne, a preto sú na pozadí. Animácie teda bežia hladko a počítanie sa nikdy nezastaví
V mojom prípade je veľa ďalších kódov na (A) nadviazanie a udržanie sieťového pripojenia pomocou WiFi a mDNS, (B) načítanie času zo servera NTC, aby som mohol časovo označiť svoje oznámenia o začiatku a konci a zobraziť hodiny s nadhľadom. na mojom OLED a (C) zvláda aktualizácie OTA, aby som kvôli aktualizácii kódu nemusel fyzicky pripojiť svoju dosku k počítaču Mac. V tejto chvíli je to všetko v jednom monolitickom súbore C ++, len preto, že som si nenašiel čas na jeho lepšiu organizáciu
Použil som úžasnú (a bezplatnú) aplikáciu Prowl iOS na odosielanie upozornení push na môj telefón iba pomocou metód HTTP Get
Na vývoj kódu a flashovanie dosky som použil veľkolepý PlatformIO spustený pod kódom Visual Studio Code, oba zadarmo
Pre svoj projekt som použil tieto knižnice: u8g2 od Olivera, elapsedMillis od Paula Stoffregena a HTTPClient od Markusa Sattlera, ktorý je dodávaný s platformou Espressif ESP32. Všetko ostatné je dodávané s knižnicou Arduino alebo platformou ESP32 v PlatformIO
Nakoniec som vytvoril šesť jednoduchých bitových máp svojej hlavnej kladky v rôznych uhloch, aby som mohol predviesť úhľadnú malú animáciu točivého kolieska na OLED za pultom. Pohybuje sa príslušným smerom pomocou kodéra, aj keď oveľa rýchlejšie pre dramatickejší efekt
Krok 4: Zapojenie
Navrhol som to tak, aby zapojenie bolo jednoduché, väčšinou aby bol môj kryt malý, ale aby ladenie bolo priame. Všimnite si stiesnených podmienok v mojej malej škatuľke.:)
Prvou požiadavkou bolo napájacie napätie 5 V môjho rotačného snímača. Z rôznych vývojových dosiek ESP32, ktoré som mal v skrýši, iba niekoľko dodávalo na pin Vcc skutočných 5 V pri napájaní z USB. (Ostatné merali 4,5-4,8 V, čo je v prípade zlej matematiky nižšie ako 5 V.) Doska, ktorú som použil, bol Wemos Lolin32.
Ďalej nasledujú dva signálne kolíky rotačného snímača. Keďže používam prerušenia, hlavnou obavou je, aby kolíky, ktoré používam, v ničom nerušili. Dokumenty ESP32 uvádzajú, že ADC2 nemožno používať súčasne s WiFi, takže to bohužiaľ znamená, že nemôžem používať žiadny z pinov GPIO ADC2: 0, 2, 4, 12, 13, 14, 15, 25, 26 alebo 27. Vybral som si 16 a 17.
Profesionálny tip: ak sa vám zdá, že keď to všetko spojíte, váš kodér počíta späť, stačí vymeniť dve priradenia pinov v súbore config.h.
Nakoniec pripojte uzemňovací vodič rotačného snímača k … valcu valca … uzemňovaciemu kolíku.
Ďalej sa tlačidlo nulovania/resetovania pripojí medzi zem a ďalší voľný kolík (vybral som GPIO 18).
Tlačidlo, ktoré som použil, bolo malým momentálnym spínačom, ktorý som zachránil z vyššie uvedenej počítačovej myši, ale akékoľvek tlačidlo, ktoré budete mať pri sebe, bude fungovať. Môžete to vidieť odpočívať v malom držiaku, ktorý som pre to vyrobil, priamo nad doskou.
Nakoniec, OLED, ak ešte nie je pripojený k vašej doske, potrebuje iba štyri piny: 3V3, pozemné, i2c hodiny a i2c údaje. Na mojej doske pre vývojárov sú hodiny a údaje 22 a 21.
Krok 5: Vytlačte diely
Pre túto zostavu som navrhol sedem častí:
Kladka, ktorá sa montuje priamo na hriadeľ rotačného snímača
Voľnobežné koleso, ktoré pasuje na ložisko 608ZZ (odstráňte podložky a odmastite WD40, aby sa voľne otáčalo)
Držiak, na ktorom sú namontované dve kotúče a snímač, - všimnite si špirálovej pružiny pre napínaciu kladku
Konzola na stabilizáciu držiaka. Fotografia v tomto kroku ukazuje, ako sa držiak pripevňuje k držiaku
Kryt (dole) na uloženie mojej dosky ESP32 dev s priestorom pre kábel USB na bočnej strane a druhým na vrchu pre konektor, ktorý som pridal k vodičom snímača. Tento je navrhnutý tak, aby vyhovoval Wemos Lolin32, takže tento dizajn budete možno musieť trochu upraviť, aby sa zmestil na inú dosku
Kryt (horný) na uchytenie obrazovky OLED, ďalšia špirála pre tlačidlo nula / reset
Držiak gombíkov prispôsobený pre malý vypínač, ktorý som mal, navrhnutý tak, aby spočíval medzi dvoma policami vo vnútri spodnej skrinky. Spájkovačkou som „prilepil“vypínač k držiaku; fotografiu nájdete v predchádzajúcom kroku
Všetko je navrhnuté tak, aby sa dalo tlačiť bez podpier. Všetko, čo potrebujete, je obyčajná PLA vo vami zvolenej farbe.
Dajte to všetko dohromady, pripojte k tlačiarni (tu môže byť potrebná určitá kreativita) a môžete ísť.
Odporúča:
Hudobne reaktívna stropná inštalácia hviezdy z optických vlákien: 11 krokov (s obrázkami)
Hudobne reaktívna inštalácia stropu z optických vlákien: Chcete mať doma kúsok galaxie? Nižšie nájdete informácie o tom, ako sa vyrába! Roky to bol môj vysnený projekt a nakoniec je hotový. Dokončenie trvalo nejaký čas, ale konečný výsledok bol taký uspokojivý, že som si istý, že to stálo za to. Trochu bi
Matica LED „optických vlákien“: 9 krokov (s obrázkami)
Matica LED „Fiber Optic“: V tomto projekte som vytvoril " vláknovú optiku " LED matica pomocou LED pásika WS2801 a lepiacich tyčiniek. Svetelné displeje majú iný vzhľad ako podobné LED kocky a majú niekoľko výhod. Po prvé, na displeji nevidíte skutočné LED diódy, pretože
Krídla z optických vlákien: 24 krokov (s obrázkami)
Krídla z optických vlákien: Už je to nejaký čas, čo som sa rýpala v mäsitom projekte, takže keď ma Joel z Mravencov na melóne požiadal, aby som vyrobil kostým pre uvedenie jeho nových produktov z optických vlákien, s potešením som to prijal. Na vláknovú optiku som použil baterku jeho predchádzajúcej generácie
Šialený elektrický Budet s dlhými doskami a palubou z uhlíkových vlákien: 6 krokov (s obrázkami)
Insane Electric Longboard Budet With Carbon Fiber Deck: Hej, než budem hovoriť o sebe a prečo som sa rozhodol ísť na túto cestu, rád by som povedal, prosím, pozrite sa na moje video, kde nájdete epickú jazdeckú montáž a moje postupy tvorby, čo je tiež dôležité, prihláste sa na odber. skutočne pomôže môjmu vysokoškolskému kurzu, pretože
Sukňa medúzy z optických vlákien: 16 krokov (s obrázkami)
Sukňa medúzy z optických vlákien: Pretože je efekt vláknovej optiky taký fascinujúci, premýšľal som o vytvorení oblečenia s vláknovou optikou a RGB LED diódami. Trvalo mi nejaký čas, kým som prišiel s návrhom a prišiel na to, ako pripevniť vlákna na pásik LED. Nakoniec som