Steampunkové hodiny z manometrů a Arduina

Už několik let jsem měl v hlavě nápad postavit netradiční hodiny ze starých analogových měřáků. Nechtěl jsem klasický ciferník s ručičkami, ale něco, co bude vypadat spíš jako staré industriální zařízení. Základem jsou dva manometry, mosazné trubky, T-kus a klasický ventil. Jeden měřák ukazuje hodiny ve 24hodinovém formátu, druhý minuty.

Celý projekt je laděný do steampunkového a retroindustriálního stylu. Zvenku působí jako staré mechanické zařízení, ale uvnitř se o pohyb ručiček starají 270° serva a elektronika. Nastavování času není řešené obyčejnými tlačítky, ale upraveným ventilem, do kterého je ukrytý rotační enkodér. Díky tomu zůstal zachovaný vzhled starého potrubního systému a ventil přitom stále slouží jako ovládací prvek.

Regulace času

K nastavení času jsem použil starý mosazný ventil, který zároveň pěkně zapadá do celkového vzhledu hodin.

původní ventil

Ventil jsem rozebral, abych si prohlédl jeho jednotlivé součásti a vymyslel, jak do něj co nejlépe schovat ovládání. Všechny díly jsem krátce namočil do kyseliny citronové a následně vyčistil kartáčem, aby se jejich vzhled sjednotil s novými mosaznými díly.

demontovaný ventil

Úpravu jsem začal tělem ventilu, ve kterém jsem odvrtal a odfrézoval vnitřní přepážky, aby později nepřekážely vedení kabelů.

upravené tělo ventilu

Následně jsem se pustil do úpravy hřídele. Nejprve jsem obrousil původní závit a odřízl mističku pro těsnění. Poté jsem na konci hřídele vybrousil úzkou plošku, která zapadá do upravené drážky v enkodéru.

upravená hřídel s enkodérem

Přes celý spoj jsem následně nasadil smršťovací bužírku, která ho zpevnila a zároveň zakryla.

upravená hřídel s enkodérem a smršťovačkou

Celý komplet krásně zapadá do původní hlavice ventilu. Pouze jsem odstranil původní těsnění, aby se hřídel otáčela co nejlehčeji a chod byl plynulý.

nasazená hlavice

Pájené spoje jsem zaizoloval smršťovací bužírkou a celý enkodér jsem ještě pro jistotu omotal izolační páskou.

izolace přívodů

Přívodní vodiče jsem protáhl tělem ventilu a enkodér napasoval dovnitř. Na tělo enkodéru jsem přidal tenkou podložku, aby hřídel nedrhla o hlavu ventilu a mohla se volně otáčet.

montáž enkodéru v těle ventilu

Dovnitř těla ventilu, pod enkodér, jsem umístil kousek plastové hadice. Ta drží enkodér na správném místě a zároveň ponechává prostor pro protažení dalších vodičů.

uvnitř těla ventilu

Nakonec jsem začistil ostré hrany i omačkané plochy šestihranu a ventil znovu smontoval dohromady. Na první pohled přitom vypadá stejně jako před úpravou, takže se podařilo zachovat jeho původní vzhled.

hotový upravený ventil

Zobrazení času

Pro zobrazování aktuálního času jsem zvolil dva staré ručkové manometry. Každý je sice trochu jiný, ale oba mají stejný průměr přibližně 15 cm a stejné šroubení.

Níže popíšu úpravu pouze jednoho z nich, protože mechanicky jsou oba stejné. Lišit se budou hlavně stupnicí – jeden bude ukazovat hodiny a druhý minuty.

původní manometry

Začal jsem kompletní demontáží a vyčištěním všech dílů. Ručičku se z osičky nepodařilo sundat, takže jsem ji nakonec odstřihl kleštěmi. Pro další úpravy to ale nebude vadit.

demontovaný manometr

Z mosazného vnitřního mechanismu jsem nechal jen základní nosnou část a zbytek odřízl. Do nosné trubky jsem vyvrtal větší otvor pro protažení řídicích vodičů. Bohužel jsem se úplně netrefil do osy a vrták mi vyjel stěnou ven. Naštěstí to ale není nic tragického a půjde s tím dál pracovat.

nosná část
převrtaná hlavní trubka

Nosný díl jsem přišrouboval zpět do základního krytu. Poškozenou hlavní trubku jsem omotal samovulkanizační páskou a protáhl jí přívodní vodiče.

Do středu krytu jsem přilepil servo. Použil jsem oboustrannou pásku a po přesném vystředění ho ještě zajistil trochou lepidla Mamut. Vše jsem propojil na malém kousku univerzální DPS, na které je i rezistor 330R pro LEDku. Ještě je zde volně umístěná červená LED, která bude sloužit jako indikace.

Připravená základna

Do původního ciferníku jsem vyvrtal malý otvor pro LED diodu. Novou stupnici jsem vytiskl na silnější papír a přilepil ji na původní ciferník. LED diodu jsem potom přilepil do místa otvoru. Když nesvítí, není vidět, a když se rozsvítí, světlo prosvítá skrz papír.

LEDka na spodku ciferníku

Z původní ručičky jsem odstranil zbytek hřídelky a nalepil na ni unašeč od serva, aby ji bylo možné nasadit přímo na servo.

Poté už zbývalo jen vše poskládat zpátky a ukazatele času byly hotové.

Montáž potrubí

Nyní jsem mohl začít s kompletací potrubí. Kabely jsem protáhl vnitřkem potrubí, takže zvenku nejsou vůbec vidět. Při šroubování bylo nutné dávat pozor, aby se vodiče nezamotaly, ale nakonec se to povedlo. Závity jsem zajistil závitovým lepidlem Loctite 542.

Smontované potrubí

Základna

Původně jsem přemýšlel, že základnu udělám z kusu masivního dřeva, podobně jako u e-ink zobrazovadla. Nakonec jsem ale s ohledem na těžiště a celkovou hmotnost použil hotovou dřevěnou krabičku, kterou jsem jen trochu upravil.

původní krabička 20 x 20 x 9 cm

Pro vyztužení horní části jsem vyrobil dvě výztuhy z plechu o tloušťce 2 mm. Ty zpevní slabou překližku ve víku krabičky.

výztuhy

Do krabičky jsem vyvrtal otvor pro potrubí a USB kabel. Poté jsem ji natřel lazurou Balakryl DIXOL v odstínu mahagon a následně připevnil celou potrubní sestavu.

sestaveno

Elektronika a software

Jako řídicí mozek celých hodin slouží Arduino Nano doplněné o RTC modul DS3231.

Arduino s RTC modulem

Zapojení je následující:

  • D2 – LED – minuty
  • D3 – LED – hodiny
  • D5 – SERVO – minuty
  • D6 – SERVO – hodiny
  • D7 – enkodér 1
  • D8 – enkodér tlačítko
  • D9 – enkodér 2
  • A4 – SDA – RTC
  • A5 – SCL – RTC
  • GND – společná zem
  • +5V – společné napájení
uvnitř základny

Arduino je uvnitř základny vlepené tavným lepidlem. USB konektor je přístupný otvorem v zadní části a slouží k napájení i případné úpravě programu.

Program pro hodiny je postavený kolem RTC modulu DS3231, který drží přesný čas i po odpojení hlavního napájení, pokud má osazenou záložní baterii. Arduino si z RTC modulu pravidelně načítá aktuální hodiny a minuty a podle nich nastavuje polohu obou serv. Každý ukazatel má vlastní kalibrační tabulku, protože ručičky nejsou řízené pouze jednoduchým přepočtem, ale podle reálně naměřených poloh na konkrétním ciferníku.

Hodinový ukazatel pracuje ve 24hodinovém režimu. Ručička se neposouvá jen po celých hodinách, ale její poloha se dopočítává i podle aktuálních minut. Díky tomu se chová podobně jako ručička u běžných analogových hodin a během hodiny pomalu postupuje k další hodnotě. Minutový ukazatel má samostatnou stupnici 0–60 minut a poloha ručičky se nastavuje podle aktuální minuty.

Nastavení času se provádí pomocí upraveného ventilu, ve kterém je ukrytý rotační enkodér s tlačítkem. Při běžném provozu hodiny pouze zobrazují čas. Pokud se tlačítko podrží přibližně dvě sekundy, program přejde do nastavovacího režimu. Rozsvítí se LED u hodinového ukazatele a otáčením ventilu se nastavují hodiny. Krátkým stiskem tlačítka se hodnota uloží a program přejde na nastavení minut.

Při nastavování minut se rozsvítí druhá LED. Ventilem se nastaví požadovaná minuta a dalším stiskem tlačítka se nový čas uloží do RTC modulu. Potom obě LED zhasnou a hodiny se vrátí zpět do běžného režimu zobrazování času.

Video nastavení času

Celé ovládání je tak schované do jediného prvku. Zvenku zůstává zachovaný vzhled starého ventilu, ale uvnitř slouží jako moderní ovládací prvek pro nastavení času.

Pro práci s RTC modulem DS3231 používám knihovnu RTClib by Adafruit. Ta zjednodušuje komunikaci s hodinovým modulem a umožňuje pohodlně načítat aktuální datum a čas, případně čas do modulu zapsat při nastavování.

Knihovna se dá nainstalovat přímo v Arduino IDE přes Manažéra knihoven. Stačí do vyhledávání napsat RTClib a nainstalovat knihovnu RTClib by Adafruit. Při instalaci se může Arduino IDE zeptat i na instalaci závislosti Adafruit BusIO, tu je potřeba také povolit.

Program pro Arduino je ke stažení tady:

Závěr

Výsledek nakonec dopadl přesně tak, jak jsem si na začátku představoval. Z venku zůstaly hlavními prvky staré manometry, mosazné potrubí a ventil, takže hodiny pořád působí jako kus starého technického zařízení. Uvnitř se ale schovává Arduino, RTC modul a dvojice serv, které z toho dělají plně funkční hodiny.

Nejvíc se mi na celé stavbě líbí právě spojení mechanických dílů a elektroniky. Některé části bylo potřeba upravit trochu metodou pokus omyl a ne všechno vyšlo úplně dokonale, ale to k podobnému bastlení patří. Důležité je, že čas se zobrazuje na manometrech, nastavení funguje přes původní ventil a celé to má vzhled, který jsem od toho chtěl.

Tenhle projekt pro mě byl zase další připomínkou, že i staré díly, které by jinak skončily někde v krabici nebo ve šrotu, se dají použít úplně jinak. Stačí trochu času, pár nápadů, Arduino a chuť si s tím pohrát.

Související články

8 komentářů u „Steampunkové hodiny z manometrů a Arduina“

  1. Pěkné to je. Ale příště prosím udělat s plně funkčními manometry prosím. To by teprv bylo něco! :))

    (snímat polohu rafiček, řídit čerpadla a ventily, aby to bručelo, cvakalo a syčelo….)

    1. Díky! Jo to by asi taky šlo, tenhle typ už pár lidí řikalo. Myslim že by to udělat šlo, ale hodiny s kompresorem by doma asi neprošli 😀 Ale pokusně by to třeba šlo 🙂

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *