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.
Na akci „hardwarové Pyvo 2019“ jsme představili náš #uPyshell (čti: u Pyšel) Vzniklo to trochu jako recese pro vánoční besídku, ale pravda, že příkazy: ls(„examples“), mkdir(„newTest“), cp(„f1″,“f2“), cat(„file.py“) jsme používali už dříve, ale psát („parametry“) je trochu otravné, když command lajna to má elegantně jen s mezerama.
(A to nemluvím o esptool, ampy, „kill“ screen..)
Takže pro jednoduchou práci se soubory, editaci nebo testování „paralelních“ procesů si zavolám:
>>> from shell import shell # často bývá už "přednastaveno" >>> shell() # a jsem v "Linuxu" - zkusíme "help":
uPyShell:~/$ help octopusLAB - simple shell help: ---------+--------------------------+-------------------- | F: file name | | M: "main.py" | octopusLAB 2020 ---------+--------------------------+-------------------- clear | clear display | free | free RAM (memory) | df | Disk Free (flash) | 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 (defaul M) | cp test.py back.py rm | ReMove F | rm test.py top | main proces info | wifi | wireless "fidelity" | wifi on / wifi scan ping | Packet InterNet Groper | ping google.com ifconfig | wifi InterFace conf. | wget | wget URL subdir download | wget https://my.web/f.py find | find "text" | find oled cat | concatenate F (defaul M) | cat back.py edit| edit (defaul M) | simple "line editor" ./ | run F | ./examples/blink.py | run F & > process/thread | run examples/blink.py & exit | back to uPy | > Micropython ---------+--------------------------+---------------------
Práce s adresáři a se soubory
90% si vystačíme s ls, cd, find, mkdir, top, find, free….a to už nám tam běží, navíc přidáváme „edit“ (jednoduchý řádkový editor pro malé python programy) a „run“ pro jejich spouštění.
Internetové připojení a práce s Wifi
$ ifconfig – nastavení a konfigurace připojení WiFi
$ ping „host“ – klasický „ping“ – odezva vzdálené IP
$ wget url-file – zatím alfa, kopíruje defaultně do adresáře download, který je nutno vytvořit: $ mkdir download
$ upgrade – základ už je
$ wifi param:
wifi on, wifi off (on = wifi on + connect, off = wifi disconnect) a wifi scan
Více „souběžně běžících procesů“
Na test se dá použít sleep 10 (pauza 10 vteřin) která 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.
Link na „core“ zdroj:
https://github.com/octopusengine/octopuslab/blob/master/esp32-micropython/shell/__init__.py
pracovní verze – krátký workshop:
https://docs.octopuslab.cz/ws-upyshell/