Josef Průša

3D tištěný multimediální ovladač k počítači a základy práce s Arduinem

02. 08. 2019 | by Mikolas Zuza

Většinu věcí na počítači dnes ovládáte pomocí všemožných softwarových tlačítek a posuvníků, které táhnete kurzorem. Není ale nad fyzické rozhraní – něco, co můžete cítit. Když otočíte fyzickým knoflíkem, máte představu o tom, jak velkou změnu jste provedli, aniž byste se na něj dívali. A určitě jste se už někdy setkali s tlačítkem, které je doslova radost zmáčknout a cítit „kliknutí“ jako zpětnou vazbu. Proto si dnes vytiskneme obří multimediální USB ovladač hlasitosti! Postavíme nekonečně otočné a klikatelné tlačítko, které umí přehrávat / pozastavovat aktuální skladbu nebo přeskakovat na další dvojitým kliknutím, aniž byste opustili aktuálně otevřenou aplikaci!

U videa si nezapomeňte zapnout české titulky! A můžete se také přihlásit k odběru našeho YouTube kanálu.

Základní myšlenka

Nebudeme fyzicky posílat zvukový signál skrz ovladač. Pokud bychom to udělali, a použili například potenciometr k úpravě hlasitosti, nevyhnuli bychom se zkreslení a degradaci signálu. Místo toho se náš ovladač hlasitosti bude chovat velmi podobně jako klávesnice s multimediálními klávesami. Jednoduše pošleme operačnímu systému požadavek na změnu hlasitosti, a ten se už postará o zbytek. Tento přístup má celou řadu výhod. Váš operační systém ví, zda máte spuštěnou aplikaci jakou je třeba Spotify nebo video na YouTube, takže jí příkaz jednoduše předá. A funguje to na operačních systémech Windows, Mac i ve většině Linuxových distribucí.

3D tisk ovladače

Začněme tím, čemu pravděpodobně rozumíte nejvíc – 3D tiskem. Připravili jsme pro vás několik různých verzí, z nichž si můžete vybrat. Všechny modely jsou správně orientované a připravené k tisku na Prusaprinters.org.

Samotné knoflíky jsou zaměnitelné, takže si můžete vybrat kterýkoliv z nich a použít jej s libovolným tělem ovladače. A pokud si vytvoříte svůj vlastní, nezapomeňte jej sdílet s ostatními. 🙂

Hardware

Potřebujeme pouze 2 komponenty!

Rotační enkodér je stejná součástka, jakou najdete pod ovládacím tlačítkem vaší 3D tiskárny. Můžete s ním neomezeně točit, což je super –  není třeba řešit co se stane, až dosáhnete konce. A také ho lze zmáčknout! Když jej stisknete, otočný enkodér se chová stejně jako tlačítko. To otevírá překvapivé množství funkcí, protože můžete mapovat různé akce na jedno kliknutí, dvojité kliknutí nebo na dlouhé stisknutí.

A co Arduino?

Arduino základy

Budeme předpokládat, že s deskami Arduino nemáte vůbec žádné zkušenosti. Pokud tomu tak není, můžete přeskočit v článku o kousek níže.

Arduino je open-source projekt, který je zodpovědný za celou řadu jednodeskových mikrokontrolérů. Představte si je jako malé počítače. Tyto desky jsou vybaveny analogovými a digitálními vstupy a výstupy (I / O), které vám umožňují komunikovat se světem. Číst data ze snímače teploty, vyslat signál pro zapnutí ventilátoru, zkontrolovat, zda teplota poklesla, a tak podobně. Existuje mnoho různých typů desek Arduino. Některé jsou velké (Arduino UNO), ale mají spoustu I / O pinů a širokou škálu vstupního napětí – což je skvělé pro prototypování. Některé mají méně I / O pinů, ale jsou neuvěřitelně malé (Arduino Pro Micro).

Používáte originální desky Arduino?

Stejně jako tiskárny Original Prusa, i Arduino projekt je open-source. Pokud se po nich podíváte online, najdete klony desek Arduino za 100-150Kč. Tak proč utratit více za originály? V krátkosti – kvalita výroby, dokumentace, vývoj. Bez investic do vývoje nedojde k žádným inovacím. Desku můžete klonovat znovu a znovu, ale časem byste chtěli věci, jako nové energeticky účinnější Bluetooth nebo Wi-Fi připojení, lepší vývojový software s příjemnějším uživatelským rozhraním nebo rychlejší procesor. Tak alespoň zvažte nákup originální desky Arduino. 🙂

Samozřejmě to neznamená, že nemůžete použít neoriginální Arduino. Některé z klonových desek s menším počtem I / O pinů se mohou naopak hodit, pokud je místa opravdu málo, což je i případ našeho ovladače.

Úkolem Arduina bude načíst vstup z rotačního enkodéru a převést jej na stisknutí multimediální klávesy. Všechna Arduina mají vestavěnou základní funkci emulace klávesnice. Ale na rozdíl od Arduina Uno nebo Nano, které používají USB na sériový adaptér, Arduino Pro Micro podporuje USB přímo, díky mikročipu ATmega32u4. To je důležitý rozdíl! Multimediální klávesy nebudou fungovat na Arduinu Uno / Nano (pokud složitě nepřeprogramujete mikrokontrolér). Kromě toho, jak již název napovídá, Pro Micro je opravdu malý počítač a má konektor micro USB, takže je pro nás ideální volbou.

Zapojení

Protože máme pouze dvě komponenty, zapojení je to opravdu jednoduché. Propojte piny označené GND (zem) k GND a plus k VCC (5V). Vedle toho jsou na enkodéru dva piny, které kontrolují rotaci, obvykle označené CLK a DT. Spojte je s analogovými vstupy označenými A0 a A1. Nakonec je zde pin pro tlačítko s označením SW, připojte jej k analogovému vstupu A2.

Pokud se označení na vašem rotačním enkodéru liší, nic se neděje. Po nahrání kódu můžete jednoduše zkusit přehodit 3 kabely zapojené do analogových vstupů.

Můžete použít propojovací vodiče typu zásuvka-zásuvka, které jsou ideální pro testování. Jakmile bude všechno fungovat, zvažte připájení kabelů přímo na desku. Zůstanou pak bezpečně na svém místě a ušetříte i trochu místa. Nebo ještě lépe, použijte nové Arduino, které na sobě nemá připájené piny. Pak můžete vložit kabely skrz malé díry, kde by piny normálně byly, což vám výrazně zjednoduší pájení a výsledná velikost bude ještě menší. A Arduino Pro Micro s piny si můžete schovat pro prototypování vašeho dalšího projektu.

Programování Arduina

Na rozdíl od firmwaru 3D tiskárny není běžné sdílet předkompilovaný kód pro Arduino. Místo toho sdílíme zdrojový kód, takže kdokoli může snadno provádět změny nebo zvolit jiný typ cílové desky. Před nahráním budete muset zdrojový kód, který pro vás máme připravený, zkompilovat. Ale je to celkem jednoduché.

  1. Nejprve si stáhněte, nainstalujte a otevřete Arduino IDE
  2. Poté stáhněte zdrojový kód pro multimediální ovladač
  3. Přepněte si Arduino IDE do češtiny (File – Preferences – Editor language)
  4. Otevřete stažený zdrojový kód v Arduino IDE (Soubor – Otevřít)

Náš kód používá knihovnu „HID-project“, která obsahuje definice multimediálních kláves a kód je díky ní opravdu snadno srozumitelný.

  1. Na horním panelu nástrojů vyberte Nástroje – Spravovat knihovny
  2. V novém okně zadejte do vyhledávacího pole HID-project
  3. Klikněte na HID-project od autora Nicohood a vyberte Instalace
  4. Nyní můžete Správce knihoven zavřít

Budeme také používat další knihovnu, tedy vlastně dvě, pro čtení dat z rotačního kodéru. První z nich se nazývá „TimerOne“ a můžete ji nainstalovat přesně stejným způsobem, jako bylo popsáno výše. Jen do vyhledávacího pole místo „HID-project“ napište „TimerOne“.

Poslední knihovnu, nazvanou „ClickEncoder“, je nutné nainstalovat ručně.

  1. Stáhněte si knihovnu ClickEncoder
    • Použijte zelené tlačítko Clone or download – Download ZIP
  2. Vyberte Projekt – Přidat knihovnu – Přidat .ZIP Knihovnu a vyberte soubor stažený v kroku 1

Nyní musíme Arduino IDE sdělit, kterou desku používáme, a na které USB / sériové rozhraní by se měl kód nahrát.

  1. Vyberte Nástroje – Vývojová Deska a vyberte Arduino / Genuino Micro
    • Pokud používáte jinou desku, nezapomeňte ji změnit zde
  2. Připojte Arduino Pro Micro k počítači
  3. Vyberte Nástroje – Port
  4. Měli byste vidět COM1 a COM? (Arduino / Genuino Micro), kde ? je nějaké číslo jiné než 1 (např. COM6)
  5. Vyberte COM? (Arduino / Genuino Micro)
  6. Stiskněte tlačítko Nahrát

A to je vše! Po dokončení nahrávání můžete vyzkoušet ovladač hlasitosti. Pokud rotace mění hlasitost nesprávným směrem, jednoduše prohoďte dva kabely, které rotaci detekují (CLK a DT). Nebo v kódu přepište VOLUME_UP na VOLUME_DOWN a naopak. Výchozí chování je jedno kliknutí pro přehrávání / pozastavení, dvojité kliknutí pro přeskočení na další skladbu.

Analýza a změna kódu

Dali jsme si práci s okomentováním každé části kódu, takže by měla být hračka jej pochopit. Hlavní struktura každého kódu Arduino vypadá takto:

  1. Definice kolíků a proměnných
  2. Funkce setup (), která se spustí jednou po spuštění desky Arduino
  3. loop () funkce, která běží  ve smyčce, dokud není přerušeno napájení

Neváhejte se udělat v kódu libivolnou změnu a vyzkoušejte, jak se změní funkce ovladače.

Závěr

Máme funkční 3D tištěný multimediální ovladač! Jakmile si na něj zvyknete, už ho nebudete chtít dát z ruky. Během psaní tohoto článku jsem se po něm sáhl nesčetněkrát, jen abych si uvědomil, že je to ve studiu pro nahrávání videa 🙂 Neváhejte remixovat design a vylepšit nebo úplně změnit zdrojový kód. A pokud tak učiníte, nezapomeňte to sdílet s ostatními! Bylo by opravdu skvělé na ovladači spustit třeba projekt Spacenav, což je kompatibilní open-source alternativa k proprietárnímu ovladači 3Dconnexion (3D myš).

Dejte nám vědět v komentářích, pokud se vám tento článek líbil a podělte se o své nápady pro další návod!


Originální 3D tiskárna Prusa i3

Podívejte se na originální Prusa i3 MK3 3D tiskárnu!
Nejlevnější je už od 19 990 Kč

Průša 3D tiskárny na faceboku