Tartalomjegyzék:
- Kellékek
- 1. lépés: Válasszon forgó kódolót
- 2. lépés: Adjon hozzá egy szíjtárcsát és alaplapátot
- 3. lépés: Kódolás
- 4. lépés: huzalozás
- 5. lépés: Nyomtassa ki az alkatrészeket
Videó: Intelligens 3D nyomtatószál számláló: 5 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Miért kell számolni az izzószállal? Néhány ok:
A sikeres nyomtatáshoz megfelelően kalibrált extruderre van szükség: amikor a gcode azt mondja az extrudernek, hogy mozgassa az izzószálat 2 mm-rel, akkor pontosan 2 mm-t kell mozognia. Rossz dolgok történnek, ha túl- vagy alul-extrudálnak. Egy jól kalibrált számláló becsületessé teheti az extrudert
A szeletelők hozzávetőlegesen hozzávetőlegesen mennyit vesznek el egy adott nyomatból (hosszban és súlyban egyaránt), és szeretném ellenőrizni ezeket az értékeket
Az izzószál mozgásának mérése is tudassa velem, mikor kezdődött a nyomtatás, és mikor állt le
Szükségem volt valamire, hogy lefedje azt a helyet, amelyet a nyomtató elején lévő csúnya óriás logó eltávolítása hagyott
Ez jó
Engem ez az oktatóanyag inspirált, amely egy régi PS/2 egeret reprezentált egy 3D nyomtató szálainak számlálójaként. Ez nemcsak hasznos funkciót adott hozzá a 3D nyomtatóhoz, hanem egy régi eszközt is újrahasznosított, amely egyébként hulladéklerakóba került volna. De ez a projekt az egér PS/2 interfésze köré épült, ami szükségtelenül nehézkesnek tűnt. Úgyhogy ezt a lehetőséget ragadtam meg, hogy megismerjem az egyetlen lényeges összetevőt: a forgó kódolót.
Kellékek
Forgó kódoló
ESP32 alapú fejlesztőtábla
I2C OLED kijelző (a kétszínű egység különösen jól néz ki)
Apró pillanatnyi nyomógomb
Zsírtalanított 608ZZ csapágy
Két O -gyűrű a hardverboltból (~ 33 mm azonosító x ~ 1,5 mm profilátmérő - lásd a megjegyzéseket)
Két 2,5 mm-es önmetsző csavar a házhoz
Két 4 mm -es csavar, anya és alátét a tartó rögzítéséhez a nyomtatóhoz
Egy csomó vezeték
3D nyomtató és néhány szál
1. lépés: Válasszon forgó kódolót
A forgó jeladók a forgó mozgást elektromos impulzusokká alakítják. Valamennyi régi iskolai egerek a gördülő golyó mozgásának mérésére használta őket, a korszerűbb (ha ha) optikai egerek pedig továbbra is a görgetőkerékhez használták, amit én helyeztem el és használtam a kezdeti kísérletekhez. Sajnos az enyém nem nyújtott nyilvánvaló rögzítési pontokat, és a felbontása gyenge volt.
Ha érdemes csinálni, akkor érdemes túlcsinálni. Tehát vettem egy nagy, barátságos, 360 impulzusenkénti fordulatszám-kódolót, és köré építettem a projektemet. Az általam választott LPD3806-360BM-G5-24C típusú Signswise növekményes optikai forgó kódoló volt. De minden tisztességes kódoló megteszi.
2. lépés: Adjon hozzá egy szíjtárcsát és alaplapátot
Az izzószál lineáris mozgását a szíjtárcsa forgómozgássá alakítja át. Az izzószálat pedig egy üresjárat tartja a szíjtárcsa ellen.
A szíjtárcsa két horonnyal rendelkezik, amelyek mindegyike kifeszített O-gyűrűt tart, így nincs csúszás, Az üresjárat egyetlen v-horonnyal rendelkezik, hogy az izzószálat az enkóder-tárcsa közepén tartsa. Egy 608ZZ -es csapágyon ül, amelyet körbefektettem, és egy spirálrugóra van felszerelve, amely közvetlenül a projektem törzsébe van nyomtatva. (STL fájlok alább csatolva.)
Ez némi próbálkozást és hibát igényelt, hogy helyes legyen, de a tervezésemnek számos szöget és orsó sugarat kell alkalmaznia, lehetővé téve, hogy az izzószál letekeredjen az orsó bármely részéről, egészen a nyomtatás elejétől a végéig. A nyomtatott rugó pedig megkönnyíti az izzószál be- vagy kihajtását orsócsere során.
3. lépés: Kódolás
Az izzószálak számlálásához bármelyik két digitális bemenettel rendelkező fejlesztői kártya megfelel. Az általam választott kódolónak négy csapja van: Vcc, földelt és két kódolócsap. Íme egy nagyon szép írás, amely elmagyarázza a forgó kódolók működését és az Arduino-val való illesztést. (Továbbá: ez a cikk a 3 tűs kódolókról.)
Az alapvető számlálás egyszerű: két bemenet - belsőleg felhúzva, így a külső ellenállásokat nem kell Vcc -hez forrasztani - és egy megszakítás. Hozzáadtam egy nulla/reset gombot is, amely további bemenetet és megszakítást igényel:
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)) {pozíció += 1; } else {pozíció -= 1; }} void IRAM_ATTR zeroButtonPressed () {// nulla kezelése és visszaállítás}
De többet akartam, mint egy buta számlálót. Az ESP32 (vagy ESP8266) és a beépített WiFi segítségével valóban tudok valamit kezdeni az általam gyűjtött adatokkal. Néhány egyszerű időtúllépési kód használatával (az alábbiakban ismertetjük) meg tudom határozni, hogy mikor kezdődik és mikor fejeződik be a nyomtatás, és értesítésként elküldhetem ezeket az eseményeket a telefonomra. A jövőben hozzáadhatok egy kifogyás-érzékelőt, és értesíthetem magam (és szüneteltethetem a nyomtatót), ha szükség van a figyelmemre.
A teljes kód a Githubon található.
Néhány megjegyzés a kódról:
Ahhoz, hogy ezt testre szabhassa, csak a felbontásra (encoderPPR) van szükség - impulzusonként fordulatonként, ami jellemzően kétszerese a megadott specifikációnak - és a szíjtárcsa sugarára (wheelRadius). Ezek az értékek, valamint a wifi SSID -je és jelszava, valamint a gombhoz, kódolóhoz és OLED -képernyőhöz csatlakoztatott speciális érintkezők mind a config.h
A nulla gomb visszaállításként is szolgál - tartsa lenyomva a tábla újraindításához, ami hasznos a hibakereséshez
A megszakítások erősek - néha túl erősek. A nulla gomb egyetlen érintése miatt a zeroButtonPressed () függvény 10-20 alkalommal hívható meg, ezért hozzáadtam némi visszalépési logikát. Az optikai kódolómnak nem kellett, de az YMMV -nek
Míg a megszakítók aszinkron módon gondoskodnak a bemenetekről, a loop () rutin kezeli a könyvelést. Az encoderState - egy enum, amely táplálható, visszahúzható vagy leállítható - frissül a kódoló helyzetének változásával. Az időtúllépések meghatározzák, hogy a nyomtató mikor kezdte el és fejezte be a nyomtatást. A trükkös rész azonban az, hogy a 3D nyomtatók gyakran elindítják és leállítják a mozgást, így a legjobban az volt a meghatározva, hogy a "nyomtatás kész" esemény legalább 5 másodpercig folyamatosan leáll. Bármilyen mozgás elindít egy második időzítőt, amely csak akkor határozza meg a "nyomtatás megkezdése" eseményt, ha 15 másodpercen belül nem történik "nyomtatás kész" esemény. A gyakorlatban ez úszósan működik
Tehát a fő hurok () kód tehermentesen futhat, a visszakapcsolási kód pedig RTOS feladatkörben. Hasonlóképpen, az értesítések küldésére vonatkozó http -kérések szinkronban vannak, és ezért háttérrel rendelkeznek. Így az animációk zökkenőmentesen futnak, és a számlálás soha nem áll le
Példámban van egy csomó további kód, amellyel (A) hálózati kapcsolatot létesíthet és tarthat fenn WiFi-vel és mDNS-sel, (B) lekérheti az időt egy NTC-szerverről, így időbélyegzővel láthatom el a kezdő és a végső értesítéseket, és megjeleníthetem az óvatlan órát az OLED -en, és (C) kezeli az OTA frissítéseket, így nem kell fizikailag csatlakoztatnom a lapomat a Mac -hez a kódfrissítésekhez. Jelenleg minden egy monolitikus C ++ fájlban van, csak azért, mert nem szántam rá az időt a jobb megszervezésére
A csodálatos (és ingyenes) Prowl iOS alkalmazást használva küldtem push értesítéseket a telefonomra, csak HTTP Get módszerekkel
A kód kifejlesztéséhez és a tábla villogásához a látványos, Visual Studio Code -on futó PlatformIO -t használtam, mindkettőt ingyen
A projektemhez ezeket a könyvtárakat használtam: Oliver u8g2, Paulstoffregen elapsedMillis és Markus Sattler HTTPClient, amely az Espressif ESP32 platformhoz tartozik. Minden más az Arduino könyvtárhoz vagy a PlatformIO ESP32 platformjához tartozik
Végül elkészítettem hat egyszerű bitképet a főtárcsámról különböző szögekből, így mutathattam egy ügyes kis forgó kerék animációt a pult mögötti OLED -en. A kódolóval a megfelelő irányba mozog, bár sokkal gyorsabb a drámaibb hatás érdekében
4. lépés: huzalozás
Ezt úgy terveztem, hogy a kábelezés hirtelen egyszerű legyen, főleg így a házam kicsi lehet, de a hibakeresés is egyenes. Jegyezze meg a szűk körülményeket a kis dobozomban.:)
Az első követelmény a forgó kódolóm 5 V -os tápfeszültsége volt. A különböző ESP32 fejlesztői táblák közül, amelyek a tárolómban voltak, csak néhány szállított valódi 5 V -os feszültséget a Vcc tűn, ha USB -ről táplálják. (A többiek 4,5-4,8 V-ot mértek, ami rossz matek esetén alacsonyabb, mint 5 V.) Az általam használt tábla Wemos Lolin32 volt.
Ezután jöjjön a két forgó jeladó jelzőcsapja. Mivel megszakításokat használok, a fő gond az, hogy az általam használt csapok ne zavarjanak semmit. Az ESP32 dokumentumok szerint az ADC2 nem használható a WiFi -vel egyidejűleg, így sajnos azt jelenti, hogy nem használhatom az ADC2 GPIO csapokat: 0, 2, 4, 12, 13, 14, 15, 25, 26, vagy 27. A 16 -ot és a 17 -et választottam.
Profi tipp: ha mindezek összeszedése után úgy tűnik, hogy a kódoló visszafelé számol, akkor egyszerűen kicserélheti a két tű hozzárendelést a config.h -ban.
Végül csatlakoztassa a forgó jeladó földelő vezetékét a… dobhengerhez… a földelőcsaphoz.
Ezután a nulla/reset nyomógomb csatlakozik a föld és egy másik szabad tű közé (a GPIO 18 -at választottam).
A gomb, amelyet használtam, egy apró pillanatkapcsoló volt, amelyet a fent említett számítógépes egérből mentettem ki, de minden gomb, amely körül van, megteszi. Láthatod, hogy pihen egy kis tartóban, amelyet közvetlenül a tábla felett készítettem.
Végül az OLED -hez, ha még nincs csatlakoztatva az alaplaphoz, mindössze négy érintkezőre van szükség: 3V3, föld, i2c óra és i2c adatok. A fejlesztői táblán az óra és az adatok 22, illetve 21.
5. lépés: Nyomtassa ki az alkatrészeket
Hét alkatrészt terveztem ehhez a konstrukcióhoz:
A szíjtárcsa, amely közvetlenül a forgó jeladó tengelyére szerelhető
Az alapjárat, amely 608ZZ csapágy fölé illeszkedik (távolítsa el a lemezeket és zsírtalanítsa WD40 -el, hogy szabadon forogjon)
A tartó, amelyre a két heveder és az enkóder rögzíthető - jegyezze meg az alapjárat spirálrugóját
Konzol a tartó stabilizálásához. Ebben a lépésben a fénykép azt mutatja, hogyan rögzül a tartó a tartóhoz
A ház (alul) az ESP32 fejlesztőkártyám tartásához, az USB -kábel helyével az oldalán, a másikkal pedig a csatlakozóhoz, amelyet hozzáadtam a kódoló vezetékeimhez. Ezt úgy tervezték, hogy illeszkedjen a Wemos Lolin32 -hez, ezért előfordulhat, hogy kissé módosítania kell ezt a kialakítást, hogy illeszkedjen egy másik táblához
A ház (felül) az OLED képernyő tartásához, egy másik spirál a nulla / visszaállítás gombhoz
Egy gombtartó, amelyet a nálam lévő apró kapcsolóhoz szabtak, és amelyet úgy terveztek, hogy az alsó házban lévő két polc között pihenjen. Forrasztópáka segítségével "ragasztottam" a kapcsolót a tartóhoz; lásd a fénykép előző lépését
Mindent úgy terveztek, hogy alátámasztás nélkül nyomtasson. A normál PLA a választott színben minden, amire szüksége van.
Tegye össze az egészet, csatlakoztassa a nyomtatóhoz (itt némi kreativitás szükséges), és már indulhat is.
Ajánlott:
Frekvencia számláló Arduino -val: 8 lépés (képekkel)
Frekvenciaszámláló az Arduino segítségével: Ez egy egyszerű és olcsó arduino alapú frekvenciaszámláló, kevesebb mint 4 dollárba került, nagyon hasznos volt a kis áramkörök mérése
Hogyan barkácsoljunk intelligens redőnyöket SONOFF intelligens kapcsolókkal?: 14 lépés
Hogyan barkácsoljunk intelligens redőnyöket a SONOFF intelligens kapcsolókkal?: Használja a reteszelés módot a SONOFF intelligens kapcsolókban, hogy a szokásos redőnyöket/redőnyöket intelligensekké tegye és este lehúzni? Egyébként én
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: 10 lépés (képekkel)
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: Szeretett volna valaha okos órát? Ha igen, akkor ez a megoldás az Ön számára! Készítettem intelligens ébresztőórát, ez egy óra, amellyel megváltoztathatja az ébresztési időt a webhely szerint. Amikor a riasztó megszólal, hangjelzés (csipogó) és 2 lámpa hallatszik
IoT alapú intelligens kertészet és intelligens mezőgazdaság ESP32 használatával: 7 lépés
IoT alapú intelligens kertészet és intelligens mezőgazdaság ESP32 használatával: A világ idővel változik, és így a mezőgazdaság is. Manapság az emberek minden területen integrálják az elektronikát, és ez alól a mezőgazdaság sem kivétel. Az elektronika egyesülése a mezőgazdaságban segíti a gazdákat és a kerteket kezelő embereket. Ebben
Intelligens tárcsázás - automatikus javító intelligens hagyományos telefon: 8 lépés
Intelligens tárcsázás-automatikus javító intelligens hagyományos telefon: Az intelligens tárcsázás egy intelligens, automatikus korrekciós telefon, amelyet speciális igényű idősek számára fejlesztettek ki, és lehetővé teszi az idősek számára, hogy közvetlenül a megszokott hagyományos telefonokról tárcsázzanak. Csak a helyi idősek gondozási központjában végzett önkéntes munkával tudtam