Taula de continguts:
- Subministraments
- Pas 1: trieu un codificador rotatiu
- Pas 2: afegiu una politja i un ralentí
- Pas 3: Codificació
- Pas 4: cablejat
- Pas 5: imprimiu les parts
Vídeo: Comptador de filaments de la impressora 3D intel·ligent: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Per què molestar-se a comptar els filaments? Alguns motius:
Les impressions amb èxit requereixen una extrusora calibrada correctament: quan el gcode indica a l’extrusora que mogui el filament 2 mm, ha de moure’s exactament 2 mm. Passen coses dolentes si s’extrudeix massa o s’extreu poc. Un comptador ben calibrat pot mantenir honest l’extrusora
Les talladores aproximen la quantitat de filament total que prendrà una determinada impressió (tant en longitud com en pes) i m'agradaria comprovar aquests valors
Mesurar el moviment del filament també em permet saber quan ha començat la impressió i quan s’ha aturat
Necessitava alguna cosa per cobrir l’espai que deixava l’eliminació del lletge gegant de la part frontal de la impressora
És genial
Em va inspirar aquest instructiu, que va reutilitzar un vell ratolí PS / 2 com a comptador de filaments per a una impressora 3D. No només va afegir una característica útil a una impressora 3D, sinó que va reutilitzar un dispositiu antic que d’altra manera hauria acabat en un abocador. Però aquest projecte es va construir al voltant de la interfície PS / 2 del ratolí, que semblava innecessàriament feixuga. Així que vaig aprofitar això per conèixer l’únic component essencial: el codificador rotatiu.
Subministraments
Codificador rotatiu
Taula de desenvolupament basada en ESP32
Pantalla OLED I2C (la unitat de dos colors es veu especialment genial)
Minúscul polsador momentani
Rodament 608ZZ desgreixat
Dues juntes tòriques de la ferreteria (~ 33 mm ID x ~ 1,5 mm diàmetre del perfil - veure comentaris)
Dos cargols autorroscants de 2,5 mm per al tancament
Dos cargols, femelles i arandeles de 4 mm per fixar el suport a la impressora
Un munt de cables
Impressora 3D i algun filament
Pas 1: trieu un codificador rotatiu
Els codificadors rotatius tradueixen el moviment de rotació en impulsos elèctrics. Tots els ratolins de la vella escola els feien servir per mesurar el moviment de la bola rodant i els ratolins òptics més moderns (ha ha) encara els feien servir per a la roda de desplaçament, que era el que tenia posat al voltant i que feia servir per a l’experimentació inicial. Malauradament, el meu no oferia cap punt de muntatge evident i la seva resolució era deficient.
Si val la pena fer-ho, val la pena fer-ho en excés. Així que vaig comprar un codificador gran, amigable i de 360 polsos per revolució i vaig construir el meu projecte al voltant d’ell. El que vaig triar va ser un codificador rotatiu òptic incremental Signswise, tipus LPD3806-360BM-G5-24C. Però qualsevol codificador decent ho farà.
Pas 2: afegiu una politja i un ralentí
El moviment lineal del filament es tradueix en moviment de rotació del codificador mitjançant una politja. I el filament és sostingut contra la politja per un ralentí.
La politja té dues ranures, cadascuna amb una junta tòrica estirada, de manera que no es pot relliscar, El ralentí té una ranura en V única per mantenir el filament centrat a la politja del codificador. S’assenta sobre un coixinet 608ZZ que tenia al voltant, i que està muntat en un ressort en espiral imprès just al cos principal del meu projecte. (Arxius STL adjunts a continuació.)
Això va suposar certes proves i errors, però el meu disseny hauria d’adaptar una gran varietat d’angles i radis de bobina, cosa que permetia que el filament es desenrotllés des de qualsevol part del carret, des del principi fins al final de la impressió. I la molla impresa facilita la introducció o sortida del filament quan es canvia de bobina.
Pas 3: Codificació
Per comptar només el filament, ho farà qualsevol placa de desenvolupament amb dues entrades digitals. El codificador que he escollit té quatre pins: Vcc, terra i dos pins del codificador. Aquí teniu una redacció molt agradable que explica com funcionen els codificadors rotatius i com s’interfacen amb Arduino. (També: aquest article sobre codificadors de 3 pins).
El recompte bàsic és senzill: dues entrades, configurades per arrossegar-se internament, de manera que no cal soldar resistències externes a Vcc, i una interrupció. També he afegit un botó de zero / reset, que requereix una entrada i una interrupció més:
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)) {posició + = 1; } else {posició - = 1; }} void IRAM_ATTR zeroButtonPressed () {// gestionar zero i restablir}
Però volia alguna cosa més que un comptador mut. Amb un ESP32 (o ESP8266) i el seu WiFi integrat, en realitat puc fer alguna cosa amb les dades que estic recopilant. Mitjançant un codi de temps d’espera senzill (que s’explica a continuació), puc determinar quan comença i acaba la impressió i enviar aquests esdeveniments com a notificacions al meu telèfon. En el futur, puc afegir un sensor d’esgotament i avisar-me (i posar en pausa la impressora) quan calgui la meva atenció.
El codi complet es troba a Github.
Algunes notes sobre el codi:
Per personalitzar-lo segons la vostra versió, només necessiteu la resolució (encoderPPR), en polsos per revolució, que normalment és el doble de l’especificació indicada, i el radi de la politja (wheelRadius). Aquests valors, més el ssid i la contrasenya del vostre wifi i els pins específics connectats al botó, al codificador i a la pantalla OLED, van a config.h
El botó zero també funciona com a restabliment; manteniu-lo premut per reiniciar el tauler, cosa que és útil per a la depuració
Les interrupcions són potents, de vegades massa potents. Un sol toc del botó zero podria fer que la funció zeroButtonPressed () es cridés de 10 a 20 vegades, de manera que he afegit una lògica de rebounce. El meu codificador òptic no el necessitava, però sí YMMV
Tot i que les interrupcions tenen cura de les entrades de manera asíncrona, la rutina loop () gestiona la comptabilitat. L'encoderState, un enum que pot alimentar-se, retractar-se o aturar-se, s'actualitza amb el canvi de posició del codificador. Els temps d'espera determinen llavors quan la impressora ha començat i ha finalitzat la impressió. Però el més complicat és que les impressores 3D freqüentment comencen i detenen el moviment, de manera que el que va funcionar millor va ser definir l'esdeveniment "imprimir completament" que romangui aturat contínuament durant almenys 5 segons. Qualsevol moviment provoca un segon temporitzador que defineix l'esdeveniment "impressió iniciada" només si no es produeix cap esdeveniment "impressió completa" en un període de 15 segons. A la pràctica, això funciona de forma nedant
Per tant, el codi de bucle principal () pot funcionar sense compromís, el codi de rebounce s’executa en un bucle de tasques RTOS. De la mateixa manera, les sol·licituds http per enviar notificacions són sincròniques i, per tant, són de fons. Així, les animacions funcionen sense problemes i el recompte no s’atura mai
Hi ha un munt de codi addicional al meu exemple per (A) establir i mantenir una connexió de xarxa amb WiFi i mDNS, (B) obtenir l’hora d’un servidor NTC per poder marcar les meves notificacions d’inici i finalització i mostrar un rellotge impecable. al meu OLED i (C) gestionar les actualitzacions OTA, de manera que no haig de connectar físicament la meva placa al Mac per obtenir actualitzacions de codi. De moment, tot està en un fitxer C ++ monolític, només perquè no m’he dedicat el temps a organitzar-lo millor
He utilitzat la meravellosa (i gratuïta) aplicació Prowl per a iOS per enviar notificacions push al meu telèfon amb res més que mètodes HTTP Get
Per desenvolupar el codi i fer flaixar la placa, he utilitzat l’espectacular PlatformIO que s’executa en Visual Studio Code, tots dos gratuïts
Per al meu projecte, he utilitzat aquestes biblioteques: u8g2 d'Oliver, elapsedMillis de Paul Stoffregen i HTTPClient de Markus Sattler, que inclou la plataforma Espressif ESP32. Tota la resta inclou la biblioteca Arduino o la plataforma ESP32 de PlatformIO
Finalment, vaig crear sis mapes de bits senzills de la meva politja principal amb diferents angles, de manera que podia mostrar una animada petita neteja a l’OLED darrere del taulell. Es mou en la direcció adequada amb el codificador, encara que molt més ràpid per obtenir un efecte més dramàtic
Pas 4: cablejat
He dissenyat això perquè el cablejat sigui senzill, sobretot perquè el meu recinte pugui ser petit, però també la depuració seria directa. Tingueu en compte les condicions estretes de la meva capsa.:)
El primer requisit era la tensió d’alimentació de 5V del meu codificador rotatiu. De les diverses taules de programació ESP32 que tenia a la meva reserva, només unes poques van proporcionar 5V veritables al pin Vcc quan s’alimentaven mitjançant USB. (Els altres mesuraven 4,5-4,8V, que, en cas que les vostres matemàtiques siguin dolentes, siguin inferiors a 5V). El tauler que he utilitzat era un Wemos Lolin32.
A continuació, vénen els dos pins de senyal del codificador rotatiu. Com que faig servir interrupcions, la principal preocupació és que els pins que faig servir no interfereixen en res. Els documents ESP32 indiquen que ADC2 no es pot utilitzar al mateix temps que el WiFi, de manera que malauradament significa que no puc utilitzar cap dels pins ADC2 GPIO: 0, 2, 4, 12, 13, 14, 15, 25, 26, o 27. Vaig triar 16 i 17.
Consell professional: si, després de reunir tot això, sembla que el vostre codificador compta cap enrere, només podeu canviar les assignacions de dos pins a config.h.
Finalment, connecteu el cable de terra del codificador rotatiu a … rotllo de tambor … al passador de terra.
A continuació, el botó de zero / reset es connecta entre terra i un altre pin lliure (he triat GPIO 18).
El botó que vaig fer servir era un petit interruptor momentani que vaig rescatar del ratolí de l’ordinador esmentat, però qualsevol botó que tingueu al voltant sí. Es pot veure descansant en una petita muntura que he fet per sobre del tauler.
Finalment, l'OLED, si encara no està connectat a la vostra placa, només necessita quatre pins: 3V3, terra, rellotge i2c i dades i2c. Al meu tauler de desenvolupament, el rellotge i les dades són 22 i 21, respectivament.
Pas 5: imprimiu les parts
He dissenyat set parts per a aquesta versió:
La politja, que es munta directament a l’eix del codificador rotatiu
El ralentí, que s’adapta a un coixinet de 608ZZ (traieu els llisos i desgreixeu amb WD40 perquè giri lliurement)
El suport, sobre el qual es munten els dos weels i el codificador, fixeu-vos en la molla helicoïdal del rodet
Un suport per estabilitzar el suport. La foto d’aquest pas mostra com es fixa el suport al suport
El recinte (inferior) per contenir la meva placa de desenvolupament ESP32, amb un espai per al cable USB al lateral i un altre a la part superior per al connector que he afegit als cables del meu codificador. Aquest està dissenyat per adaptar-se al Wemos Lolin32, de manera que és possible que hàgiu de modificar una mica aquest disseny per adaptar-lo a una altra placa
El recinte (superior) per mantenir la pantalla OLED, una altra espiral per al botó de zero / reset
Un porta-botons personalitzat per al petit interruptor que tenia, dissenyat per descansar entre els dos prestatges de l’interior del recinte inferior. Vaig utilitzar un soldador per "enganxar" l'interruptor al suport; consulteu el pas previ per obtenir una foto
Tot està dissenyat per imprimir-se sense suports. Tot el que necessiteu és un PLA normal en el vostre color.
Poseu-ho tot, connecteu-lo a la impressora (pot ser que calgui una mica de creativitat aquí) i ja ho podeu fer.
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: 6 passos (amb imatges)
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: el tutorial de Deze es troba a Engels, per a la versió del clàssic espanyol. Teniu un telèfon intel·ligent (antic) sense utilitzar? Convertiu-lo en una pantalla intel·ligent amb Fulls de càlcul de Google i paper i llapis seguint aquest senzill tutorial pas a pas. Quan hagis acabat
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint la comoditat
Rellotge despertador intel·ligent: un despertador intel·ligent fabricat amb Raspberry Pi: 10 passos (amb imatges)
Rellotge despertador intel·ligent: un rellotge despertador intel·ligent fet amb Raspberry Pi: Heu volgut mai un rellotge intel·ligent? Si és així, aquesta és la solució per a vosaltres. He creat Smart Alarm Clock (Rellotge despertador intel·ligent), aquest és un rellotge que permet canviar l’hora de l’alarma segons el lloc web. Quan l’alarma s’activi, hi haurà un so (brunzidor) i 2 llums
Com controlar l'interruptor intel·ligent bàsic Sonoff basat en ESP8266 amb un telèfon intel·ligent: 4 passos (amb imatges)
Com controlar el commutador intel·ligent bàsic de Sonoff basat en ESP8266 amb un telèfon intel·ligent: Sonoff és una línia de dispositius per a Smart Home desenvolupada per ITEAD. Un dels dispositius més flexibles i econòmics d’aquesta línia és Sonoff Basic. És un commutador habilitat per Wi-Fi basat en un gran xip, ESP8266. En aquest article es descriu com configurar el Cl