logo UpyShell

V Octopus LAB se zaměřujeme na ESP32 ve spojení s Micropythonem. Hledáme limity a možnosti maximálního zjednodušení práce s mikrokontrolerem. Využíváme výborných vlastností Micropythonu (objektové, modulární, file-sytem…) v tuto chvíli už trochu na doraz, zápolíme s rychlostí i s velikostí paměti RAM i s omezeními dostupných standardních knihoven.

Emulátor Linuxového shellu

Přímo v Micropythonu jsme si napsali užitečný nástroj pro práci v Micropythonu, který se na první pohled chová jako klasický Linuxový shell (příkazová řádka v terminálu pro práci se soubory a pod.)

Jak to celé funguje můžete vidět v krátkém (zhruba dvouminutovém) videu: 🡒 youtube-upyshell

Zdrojový kód je na Githubu 🡒 /micropython-shell

Po úspěšném dokončení instalace octopusLAB frameworku, máme "uPyShell" k dispozici po zadání příkazu shell() v Micropythonovém REPLu - poznáte ho podle promptu >>>.

>>> shell()
uPyShell:~/$

shell-files

Jak vidíte, změnil se "prompt" na "linuxovou" verzi: uPyShell:~/$. Od této chvíle nepíšete metody Micropythonu, které musí mít závorky (), ale píšete "klasické" příkazy, např. ls (list - výpis souborů aktuálního adresáře)

uPyShell:~/$ ls
uPyShell:~/$ run examples/...
uPyShell:~/$ top
...

Práce se soubory

uPyShell:~/$ help
...
        cd | Change Directory         | cd examples / cd ..
       pwd | Print Working Dir.       |
        ls | LiSt files and dir.      | ls examples
     mkdir | make directory           | mkdir newdir
        cp | CoPy F (default M)       | cp test.py back.py
        rm | ReMove F                 | rm test.py

Jednoduchý řádkový editor

Tent editor se dá použít pro rychlé úpravy menších souborů (čítajících několik málo řádků). Vždy editujeme v jednu chvíli pouze jeden vybraný řádek, což je někdy "lepší než nic".

shell-editor

Práce s WiFi

shell-wifi

Spouštění procesů

Více „souběžně běžících procesů“

Na test se dá použít příkaz sleep 10 (pauza 10 vteřin). Když se spustí s & na konci: sleep 10 &, tak se rozběhne v samostatném vlákně / procesu. Stejně tak spouštíme ukázku – blikání ledky: run examples/blink.py & Běžící procesy pak vidíme v top – zatím není jednoduché je ukončit, máme značná omezení – takže řešíme dočasně resetem – ale pracujeme na tom.

shell-run

Pro základní seznámení doporučujeme samosatnou stránku workshopu 🡒 workshop UpyShell