Vstup

MicroPython na malé destičce obsahuje některé moduly, které jinde nenajdeš. Ten hlavní se jmenuje machine a zpřístupňuje základní funkce zařízení. Zkus si:

from machine import Pin
pin = Pin(0, Pin.IN)
print(pin.value())

Zmáčkni a drž tlačítko FLASH vedle USB konektoru. Přitom pusť print(pin.value()) znovu. Jak se hodnota změní?

Jak tomuhle kódu rozumět? Třída Pin ti umožňuje ovládat jednotlivé „nožičky”, kterými zařízení komunikuje s vnějším světem: buď na nich nastavovat napětí, nebo zkoumat jestli na nich nějaké napětí je.

Pin(0, Pin.IN) vytvoří objekt třídy Pin, který bude načítat data z „nožičky” číslo 0. (IN znamená načítání – informace jdou do procesoru). Funkce pin.value() změří napětí na dané „nožičce” a vrátí buď 1 nebo 0 podle toho, jestli nějaké naměřila.

No a „nožička” číslo 0 je připojená k tlačítku FLASH, kterým se tak dá ono napětí ovládat. Informace o tom, která nožička je kam připojená, máš na taháku – můžeš si zkontrolovat, že Pin(0) u sebe má poznámku FLASH.

{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2019/brno-jaro-2019-pondeli:micropython:3",
      "title": "Vstup",
      "html": "\n          \n    \n\n    <h2>Vstup</h2>\n<p>MicroPython na mal&#xE9; desti&#x10D;ce obsahuje n&#x11B;kter&#xE9;\nmoduly, kter&#xE9; jinde nenajde&#x161;. Ten hlavn&#xED; se jmenuje\n<code>machine</code> a zp&#x159;&#xED;stup&#x148;uje z&#xE1;kladn&#xED; funkce za&#x159;&#xED;zen&#xED;. Zkus si:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">machine</span> <span class=\"kn\">import</span> <span class=\"n\">Pin</span>\n<span class=\"n\">pin</span> <span class=\"o\">=</span> <span class=\"n\">Pin</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"n\">Pin</span><span class=\"o\">.</span><span class=\"n\">IN</span><span class=\"p\">)</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">pin</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">())</span>\n</pre></div><p>Zm&#xE1;&#x10D;kni a dr&#x17E; tla&#x10D;&#xED;tko <code>FLASH</code> vedle USB konektoru.\nP&#x159;itom pus&#x165; <code>print(pin.value())</code> znovu.\nJak se hodnota zm&#x11B;n&#xED;?</p>\n<p>Jak tomuhle k&#xF3;du rozum&#x11B;t?\nT&#x159;&#xED;da <code>Pin</code> ti umo&#x17E;&#x148;uje ovl&#xE1;dat jednotliv&#xE9;\n&#x201E;no&#x17E;i&#x10D;ky&#x201D;, kter&#xFD;mi za&#x159;&#xED;zen&#xED; komunikuje s vn&#x11B;j&#x161;&#xED;m\nsv&#x11B;tem: bu&#x10F; na nich nastavovat nap&#x11B;t&#xED;, nebo zkoumat\njestli na nich n&#x11B;jak&#xE9; nap&#x11B;t&#xED; je.</p>\n<p><code>Pin(0, Pin.IN)</code> vytvo&#x159;&#xED; objekt t&#x159;&#xED;dy Pin,\nkter&#xFD; bude na&#x10D;&#xED;tat data z &#x201E;no&#x17E;i&#x10D;ky&#x201D; &#x10D;&#xED;slo 0.\n(<code>IN</code> znamen&#xE1; na&#x10D;&#xED;t&#xE1;n&#xED; &#x2013; informace jdou <em>do</em> procesoru).\nFunkce <code>pin.value()</code> zm&#x11B;&#x159;&#xED; nap&#x11B;t&#xED; na dan&#xE9;\n&#x201E;no&#x17E;i&#x10D;ce&#x201D; a vr&#xE1;t&#xED; bu&#x10F; 1 nebo 0 podle toho, jestli n&#x11B;jak&#xE9; nam&#x11B;&#x159;ila.</p>\n<p>No a &#x201E;no&#x17E;i&#x10D;ka&#x201D; &#x10D;&#xED;slo 0 je p&#x159;ipojen&#xE1; k tla&#x10D;&#xED;tku <code>FLASH</code>,\nkter&#xFD;m se tak d&#xE1; ono nap&#x11B;t&#xED; ovl&#xE1;dat.\nInformace o tom, kter&#xE1; no&#x17E;i&#x10D;ka je kam p&#x159;ipojen&#xE1;,\nm&#xE1;&#x161; na <a href=\"https://pyvec.github.io/cheatsheets/micropython/nodemcu-cs.pdf\">tah&#xE1;ku</a> &#x2013;\nm&#x16F;&#x17E;e&#x161; si zkontrolovat, &#x17E;e Pin(0) u sebe m&#xE1; pozn&#xE1;mku FLASH.</p>\n\n\n        "
    }
  }
}