Auto bed leveling, automatikus ágyszint kalibrálás

3D nyomtatáskor nagyon fontos az első réteg megfelelő tapadása. Ehhez az szükséges, hogy a 3D nyomtatófej mozgása és az ágy egy síkban legyen, a Z irányú eltérés ne legyen nagyobb 0,1 mm-nél. Amikor a fejnek az asztal felett például 0,2 mm-es távolságban kell mozognia, akkor a tényleges távolság ne legyen 0,15 mm-nél kisebb és 0,25 mm-nél nagyobb. Ezt a pontosságot nem egyszerű tartani hosszú távon. A 3D nyomtatók szokványos koordináta-rendszere a következő: XY a vízszintes sík, a Z tengely függőleges.
3D nyomtató koordináta rendszere
Szerencsére van szoftveres megoldás, az ,,auto bed leveling'', ami valójában nem automatikus ágy szintezés, hanem automatikus ágyszint mérés és korrekció. Vagyis egy eszközzel a gép maga megméri az ágy ideális síktól való eltérését és kompenzálja azt. A mérés úgy zajlik, hogy több ponton -- például az ágy négy sarkában -- megméri a szoftver az ágy magasságát. Ha van eltérés, akkor az XY síkon mozgáskor a szoftver magától Z irányban is kicsit mozgatja az ágyat.
Az ágyszint-méréshez használható érzékelő lehet:

  • induktív közelítéskapcsoló,
  • kapacitív közelítéskapcsoló,
  • mechanikus kapcsoló (mikrokapcsoló),
  • elektronikus kapcsoló (a fém fej érintkezik a fém ággyal),
  • piezoelektromos kapcsoló: szerintem ez a legjobb és erről írok kicsit bővebben.

Induktív közelítéskapcsoló

Az induktív közelítéskapcsoló előnye, hogy az ágytól 1-2 mm-es távolságból érzékel vagyis nem ér hozzá az ágyhoz. Hátránya, hogy csak acél esetleg alumínium asztalokkal működik, üveglap feltéttel nem! Én üveglapra szeretek nyomtatni, mert azt nyomtatás után azonnal ki lehet venni a nyomtatóból és ráér leválasztani később, mehet a következő nyomtatás egy másik üvegre. Másik hátránya, hogy a nyomtatófej és a kapcsoló között mindig lesz 10-20 mm távolság. Induktív kapcsolót próbáltam, több nyomtatómon is, de nekem nem vált be. Az induktív kapcsolóknál az adatlapban megadott érzékelési távolság vasra érvényes, alumíniumnál lényegesen kisebb távolságnál kapcsol.

Mechanikus kapcsoló

Előnye, hogy a mikrokapcsoló egyszerű és olcsó. Hátránya, hogy kell egy külön mozgató mechanika, ami először a fej szintje alá mozgatja a kapcsolót, mérés után pedig elviszi az útból. Ezt legegyszerűbben egy modellezésben használt RC szervóval lehet megoldani. Sajnos ez a mechanizmus pontatlanságot visz a rendszerbe, lötyögnek az RC csapágyak, nem elég pontos a pozícióba állás. Másik hátránya, hogy a nyomtatófej és a mikrokapcsoló között lesz egy kis távolság, mint a közelítéskapcsolóknál. Mikrokapcsolót és RC szervót próbáltam egy nyomtatómon, de nem vált be, itt látható működés közben:

Elektronikus kapcsoló

Előnye, hogy az érzékelő és a fej ugyanaz. Hátránya, hogy az ágynak és a fejnek vezetőnek kell lennie, vagyis csak fém ággyal működik. Ha kapton szalag, kék festő szalagot használ az ember, már nem működik. Ezt a megoldást nem próbáltam, mert mindenképpen üvegre szeretnék nyomtatni és ezzel nem megy.

Piezoelektromos kapcsoló

A piezo kristályok mechanikai behatásra elektromos impulzust adnak és elektromos jel hatására megváltoztatják alakjukat. Legtöbbször hangkeltésre szokták használni, de az Epson tintasugaras nyomtatókban piezokristály lövi ki a festékcseppeket. Az elektronikai boltokban kapható piezo csipogó-hangkeltő egy érzékelő is egyben.
A piezo érzékelőt -- ami általában egy korong -- egy olyan helyre kell beépíteni a 3D nyomtatóban, ahol deformálódhat, amikor az ágy érintkezik a fejjel: vagy az ágyat megtámasztó 3-4 lábhoz kerül vagy a 3D nyomtató fejhez. Én az E3D fej végéhez tettem a piezót, egy olyan változatot, aminek a közepe ki lett fúrva.
A mérés, amit a G29-es paranccsal lehet indítani, így néz ki az én gépemen:

Előnye, hogy az érzékelő és a fej ugyanaz, hátránya, hogy kell egy külön kis elektronikát venni vagy építeni, ami a piezoról érkező jelet digitalizálja.
Piezo érzékelő, auto bed leveling, automatikus ágy kalibrálás Piezo érzékelő, auto bed leveling, automatikus ágy kalibrálás 2. Auto bed leveling, automatikus ágy kalibrálás
Innen származik az elektronika kapcsolási rajza, nem én terveztem:
Piezo érzékelőhöz kapcsolási rajz
Az O_IN bemenetre és a földre kell kötni a piezo-t, a jobb oldali SIGNAL pedig a mikrovezérlőnk bemenetére megy. 5V-tal kell megtáplálni az LM358-at -- ez a kapcsolási rajzon nem látszódik --, a VCC az IC 8. lába, a föld pedig a 4. Én a LED-hez nem 1 kΩ, hanem 220 Ω ellenállást tettem. Szintén hiányzik a kapcsolási rajzról: a LED katódja nem a ,,levegőben lóg'', hanem földre van kötve.
Bal oldalon egy aluláteresztő szűrő van, ami 2,85 Hz-nél vág, 14,35-szörös erősítés mellett. A jobb oldalon egy komparátor van, ami R8 értéknél meghatározott jelszint felett magas kimenetet állít elő.
Így sikerült megépíteni a fenti kapcsolást:
Piezo érzékelőhöz elektronika Piezo érzékelőhöz elektronika (alulról)
Itt látható, hogy a Marlin firmware-t, hogyan konfiguráltam, hogy működjön az auto bed leveling. Arduino+RAMS 1.4 elektronikám van és a piezo érzékelőt a ZMAX helyére építettem be, a ZMIN továbbra is mechanikus végálláskapcsoló. Úgy kell hangolni a gépet, hogy home-oláskor a mechanikus kapcsoló (ZMIN) később jelezzen, mint a piezo (ZMAX), különben nem fog működni a G29-es parancs.