Obsah:
- Zásoby
- Krok 1: Vyberte rotační kodér
- Krok 2: Přidejte kladku a napínací kladku
- Krok 3: Kódování
- Krok 4: Zapojení
- Krok 5: Vytiskněte součásti
Video: Čítač vláken Smart 3D tiskárny: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Proč se trápit s počítáním vlákna? Několik důvodů:
Úspěšné výtisky vyžadují správně kalibrovaný extruder: když gcode říká extruderu, aby posunul vlákno o 2 mm, musí se pohybovat přesně o 2 mm. Špatné věci se stávají, pokud je vytlačují nebo nevytlačují. Dobře kalibrovaný počítač může udržet extrudér poctivý
Kráječe přibližují, kolik celkového vlákna daný tisk zabere (jak v délce, tak v hmotnosti) a rád bych tyto hodnoty zkontroloval
Měření pohybu vlákna mi také dalo vědět, kdy tisk začal a kdy se zastavil
Potřeboval jsem něco, co by zakrylo prostor, který zbyl po odstranění ošklivého obřího loga na přední straně mé tiskárny
To je super
Inspiroval jsem se tímto návodem, který repurponoval starou myš PS/2 jako čítač vláken pro 3D tiskárnu. Nejenže přidalo užitečnou funkci 3D tiskárně, ale také upravilo staré zařízení, které by jinak skončilo na skládce. Ale tento projekt byl postaven na rozhraní PS/2 myši, které se zdálo zbytečně těžkopádné. Vzal jsem to tedy jako příležitost dozvědět se o jediné podstatné součásti: rotačním kodéru.
Zásoby
Rotační kodér
Deska pro vývoj na bázi ESP32
I2C OLED displej (dvoubarevná jednotka vypadá obzvlášť cool)
Drobné chvilkové tlačítko
Odmaštěné ložisko 608ZZ
Dva o -kroužky z železářství (~ 33 mm ID x ~ 1,5 mm průměr profilu - viz komentáře)
Dva 2,5 mm samořezné šrouby pro skříň
Dva 4mm šrouby, matice a podložky k připevnění držáku k tiskárně
Svazek drátů
3D tiskárna a nějaké vlákno
Krok 1: Vyberte rotační kodér
Rotační kodéry převádějí rotační pohyb na elektrické impulsy. Všechny myši ze staré školy je používaly k měření pohybu valící se koule a modernější (ha ha) optické myši je stále používaly pro rolovací kolečko, což jsem měl kolem a používal jsem pro počáteční experimenty. Můj bohužel nenabídl žádné zjevné připojovací body a jeho rozlišení bylo špatné.
Pokud to stojí za to, stojí to za to. Tak jsem si koupil velký, přátelský, 360-pulzní kodér na otáčku a postavil kolem toho svůj projekt. Ten, který jsem vybral, byl přírůstkový optický rotační kodér Signswise, typ LPD3806-360BM-G5-24C. Ale každý slušný kodér to udělá.
Krok 2: Přidejte kladku a napínací kladku
Lineární pohyb vlákna se převádí na rotační pohyb kodéru kladkou. A vlákno drží napínací kladka proti kladce.
Kladka má dvě drážky, z nichž každá drží natažený o-kroužek, takže nedochází k uklouznutí, Napínací kladka má jedinou V drážku, která udržuje vlákno ve středu na kladce kodéru. Sedí na ložisku 608ZZ, které jsem položil, a to je namontováno na spirálové pružině vytištěné přímo v hlavním těle mého projektu. (Soubory STL jsou připojeny níže.)
Trvalo to trochu pokusu a omylu, než se dostal do pořádku, ale můj návrh by měl vyhovovat různým úhlům a poloměrům cívky, aby se vlákno odvíjelo z jakékoli části cívky, od začátku až do konce tisku. A potištěná pružina usnadňuje vysunutí nebo vysunutí vlákna při výměně cívek.
Krok 3: Kódování
Pro počítání vláken bude stačit jakákoli deska pro vývoj se dvěma digitálními vstupy. Kodér, který jsem vybral, má čtyři piny: Vcc, pozemní a dva piny kodéru. Zde je opravdu pěkný zápis, který vysvětluje, jak rotační kodéry fungují a jak je propojit s Arduinem. (Také: tento článek o 3kolíkových kodérech.)
Základní počítání je jednoduché: dva vstupy - nastaveny tak, aby interně vytahovaly, takže externí odpory nemusí být připájeny k Vcc - a jedno přerušení. Také jsem přidal tlačítko nula/reset, vyžadující ještě jeden vstup a přerušení:
zrušit 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)) {pozice += 1; } else {pozice -= 1; }} neplatné IRAM_ATTR zeroButtonPressed () {// zpracovat nulu a resetovat}
Ale chtěl jsem víc než jen hloupý pult. S ESP32 (nebo ESP8266) a jeho vestavěným WiFi mohu skutečně něco udělat s daty, která sbírám. Pomocí nějakého jednoduchého kódu časového limitu (vysvětleného níže) mohu určit, kdy tisk začíná a končí, a odeslat tyto události jako oznámení na můj telefon. V budoucnu možná přidám snímač vybití a upozorním (a pozastavím tiskárnu), když bude potřeba mé pozornosti.
Úplný kód je na Githubu.
Několik poznámek ke kódu:
Chcete -li to přizpůsobit svému sestavení, potřebujete pouze rozlišení (enkodérPPR) - v pulsech na otáčku, což je obvykle dvojnásobek uvedených specifikací - a poloměr kladky (wheelRadius). Tyto hodnoty, plus ssid a heslo vaší wifi a konkrétní piny připojené k tlačítku, kodéru a obrazovce OLED, všechny jdou v config.h
Tlačítko nuly slouží také jako reset - podržte jej a restartujte desku, což je užitečné pro ladění
Přerušení jsou silná - někdy příliš silná. Jediné klepnutí na tlačítko nula by mohlo způsobit vyvolání funkce zeroButtonPressed () 10–20krát, takže jsem přidal nějakou logiku odskoku. Můj optický kodér to nepotřeboval, ale YMMV
Zatímco se o vstupy starají asynchronně přerušení, rutina loop () zpracovává účetnictví. EnkodérState - výčet, který lze podávat, zasouvat nebo zastavovat - se aktualizuje se změnou polohy kodéru. Časové limity pak určí, kdy tiskárna zahájila a ukončila tisk. Ale ošemetné na tom je, že 3D tiskárny často spouští a zastavují pohyb, takže nejlépe fungovalo definování události „tisk dokončen“, která zůstávala nepřetržitě zastavena alespoň na 5 sekund. Jakýkoli pohyb spustí druhý časovač, který definuje událost „tisk zahájen“, pouze pokud v časovém rámci 15 sekund nedojde k žádné události „tisk dokončen“. V praxi to funguje jako plavání
Kód hlavní smyčky () tedy může běžet bez zatížení, kód pro odskakování běží ve smyčce úloh RTOS. Podobně jsou požadavky HTTP na odesílání oznámení synchronní, a proto na pozadí. Animace tedy běží hladce a počítání se nikdy nezastaví
V mém příkladu je spousta dalšího kódu pro (A) navázání a udržování síťového připojení pomocí WiFi a mDNS, (B) načítání času ze serveru NTC, abych mohl časově označit svá oznámení o zahájení a ukončení a zobrazit tak nadčasové hodiny na mém OLED a (C) zpracovávat aktualizace OTA, abych nemusel fyzicky připojovat desku k počítači Mac kvůli aktualizacím kódu. V tuto chvíli je vše v jednom monolitickém souboru C ++, jen proto, že jsem si neudělal čas na jeho lepší organizaci
Použil jsem úžasnou (a bezplatnou) aplikaci Prowl iOS k odesílání oznámení push na můj telefon s ničím jiným než metodami HTTP Get
K vývoji kódu a flashování desky jsem použil efektní PlatformIO běžící na Visual Studio Code, obojí zdarma
Pro svůj projekt jsem použil tyto knihovny: u8g2 od Olivera, elapsedMillis od Paula Stoffregena a HTTPClient od Markuse Sattlera, který je dodáván s platformou Espressif ESP32. Všechno ostatní přichází s knihovnou Arduino nebo platformou ESP32 v PlatformIO
Nakonec jsem vytvořil šest jednoduchých bitmap mé hlavní kladky v různých úhlech, abych mohl na OLED za pultem ukázat úhlednou malou animaci točícího se kola. S kodérem se pohybuje příslušným směrem, i když pro dramatičtější efekt mnohem rychleji
Krok 4: Zapojení
Navrhl jsem to tak, aby zapojení bylo jednoduché, většinou aby můj kryt mohl být malý, ale také aby ladění bylo přímé. Všimněte si stísněných podmínek v mé malé krabičce.:)
Prvním požadavkem bylo napájecí napětí 5V mého rotačního kodéru. Z různých desek pro vývojáře ESP32, které jsem měl ve své skrýši, dodávalo jen několik skutečných 5V na kolíku Vcc při napájení z USB. (Ostatní měřili 4,5–4,8 V, což je v případě, že je vaše matematika špatná, nižší než 5 V.) Deska, kterou jsem použil, byla Wemos Lolin32.
Dále přicházejí dva signální kolíky rotačního kodéru. Protože používám přerušení, hlavní starostí je, aby piny, které používám, ničemu nepřekážely. Dokumenty ESP32 uvádějí, že ADC2 nelze používat současně s WiFi, takže to bohužel znamená, že nemohu použít žádný z pinů GPC ADC2: 0, 2, 4, 12, 13, 14, 15, 25, 26 nebo 27. Vybral jsem 16 a 17.
Pro tip: pokud se vám po sčítání toho všeho zdá, že váš kodér počítá zpět, můžete jednoduše zaměnit dvě přiřazení pinů v config.h.
Nakonec připojte zemnící vodič rotačního kodéru k … válci bubnu … uzemňovacímu kolíku.
Dále se tlačítko nulování/resetování připojí mezi zem a další volný kolík (vybral jsem GPIO 18).
Tlačítko, které jsem použil, byl malý momentální přepínač, který jsem zachránil z výše zmíněné počítačové myši, ale každé tlačítko, které budete mít kolem, bude stačit. Můžete ho vidět odpočívat v malém držáku, který jsem pro něj vyrobil, přímo nad deskou.
Konečně, OLED, pokud již není připojen k vaší desce, potřebuje pouze čtyři piny: 3V3, pozemní, i2c hodiny a i2c data. Na mé desce pro vývoj jsou hodiny a data 22, respektive 21.
Krok 5: Vytiskněte součásti
Pro tuto sestavu jsem navrhl sedm částí:
Řemenice, která se montuje přímo na hřídel rotačního kodéru
Volnoběžné kolo, které pasuje na ložisko 608ZZ (odstraňte podložky a odmastěte WD40, aby se točilo volně)
Držák, na který jsou namontovány dva kotouče a kodér - všimněte si spirálové pružiny pro napínací kladku
Konzola pro stabilizaci držáku. Fotografie v tomto kroku ukazuje, jak se držák připevňuje k držáku
Skříň (dole), do které se vejde moje deska pro vývojáře ESP32, s prostorem pro kabel USB na straně a dalším nahoře pro konektor, který jsem přidal do vodičů kodéru. Tenhle je navržen tak, aby pasoval na Wemos Lolin32, takže možná budete muset tento design trochu upravit, aby se vešel na jinou desku
Kryt (nahoře) pro uložení obrazovky OLED, další spirála pro tlačítko nulování / resetování
Držák knoflíků přizpůsobený pro malý spínač, který jsem měl, navržený tak, aby spočíval mezi dvěma policemi uvnitř spodního krytu. Páječkou jsem „přilepil“vypínač k držáku; viz předchozí krok pro fotografii
Vše je navrženo tak, aby bylo možné tisknout bez podpěr. Vše, co potřebujete, je normální PLA ve zvolené barvě.
Dejte to všechno dohromady, připojte se k tiskárně (zde může být vyžadována určitá kreativita) a můžete vyrazit.
Doporučuje:
Vyrobte si tančícího robota bez 3D tiskárny a Arduina/#smartcreativity: 11 kroků (s obrázky)
Vyrobte si tančícího robota bez 3D tiskárny a Arduina/#smartcreativity: Dobrý den, přátelé, v tomto tutoriálu vám ukážu, jak si vyrobit tanečního robota doma bez 3D tiskárny a bez Arduina. Tento robot je schopen tančit, vyvažovat auto, produkovat hudbu a chodit. A design Robota také vypadá tak cool
MOSTER FET - duální 500Amp 40voltový ovladač MOSFET 3d tiskárny s vyhřívanou postelí: 7 kroků (s obrázky)
MOSTER FET - duální 500Amp 40voltový MOSFET 3D tiskárna vyhřívané ovladače postele: Pravděpodobně jste klikli na tuto myslící svatou krávu, 500 AMPS !!!!! Abych byl upřímný, deska MOSFET, kterou jsem navrhl, nebude schopna bezpečně dělat 500Amps. Krátce to mohlo, těsně předtím, než to vzrušeně vzplanulo, nebylo to navrženo tak, aby to bylo
Systém pouzdra ESP32-CAM a kamera 3D tiskárny: 10 kroků (s obrázky)
ESP32-CAM Case System a 3D Printer Cam: Zkoušel jsem vyměnit kameru na mé 3-D tiskárně za něco malého, jednoduchého a funkčního …. a levného. K modulu ESP32-Cam mě přivedlo několik vyhledávání Google. Najdete je za méně než 10 $, stejně jako méně, a fungují opravdu dobře
Jak snadno přidat jakékoli typy LED diod do vaší 3D tiskárny: 8 kroků (s obrázky)
Jak snadno přidat jakékoli typy LED diod do vaší 3D tiskárny: Máte nějaké náhradní LED diody, které shromažďují prach ve vašem sklepě? Jste unavení z toho, že nevidíte, co vaše tiskárna tiskne? Už nehledejte, tento Instructable vás naučí, jak přidat světelný pás LED na horní část tiskárny, aby
Tisk plošných spojů pomocí 3D tiskárny: 7 kroků (s obrázky)
Tisk desek s vlastním obvodem pomocí 3D tiskárny: Pokud 3D tiskárnu nevidíte poprvé, pravděpodobně jste někdy slyšeli někoho, kdo říká něco ve smyslu: 1) Koupit 3D tiskárnu 2) Vytisknout jinou 3D tiskárnu 3) Vrátit původní 3D tiskárna4) ???????? 5) ProfitNow někdo s