ESP32 OctopusLAB shell 1
- March 17 2020
- OctopusLab
- 1254x Přečteno
Další díl si můžete přečíst na https://chiptron.cz/articles.php?article_id=257
Dalších několik článků se Vám pokusí přiblížit velmi zajímavé možnosti popisovaného propojení ESP s MicroPythonem. Probereme základy práce se soubory: přesouvání, editace, stahování z webu. Dotkneme se práce s WiFi ale i s BLE (Bluetooth Low Energy). A na závěr nás čeká pár ukázek pokročilejšího multithreadingu nebo async – možností, jak nechat mikrokontrolér dělat víc úloh zároveň.
Cílem článků je seznámit s emulátorem „POSIX“ konzole, který výrazně zjednodušuje práci s ESP, především pro uživatele, kteří nemají zkušenost s mikrokontroléry, ale znají prostředí terminálu z GNU/Linux.
1. Rychlé připomenutí: ESP32
Pro základní práci by Vám mohla posloužit libovolná verze s ESP32 – což je ta „stříbrná známka“ na modulu DoIt s 2x15ti piny. Modul má výhodu snadného programování (obsahuje i stabilizátor 5 > 3.3V) a pro základní experimenty si vystačíme s vestavěnou LED (je na pinu 2).
Pokud využíváme složitější zapojení v náročnějších projektech, vyplatilo by se nám použít ROBOTboard – což je další rozšiřující deska, ke které se dá přímo připojit celá řada senzorů, displejů i motorů.
2. Rychlé připomenutí: Micropython
Micropython je odlehčená verze Pythonu – velmi populárního programovacího jazyka. Jak tento zázrak do ESP nahrát a nakonfigurovat jsme se snažili popsat v jiném článku a shrnout pak zde: https://www.octopuslab.cz/micropython-octopus/
Jednou z největších bariér je stále samotná instalace Micropythonu.
Instalace ve zkratce:
Stáhněte si u nás poslední Micropython:
https://octopusengine.org/download/micropython/micropython-octopus.bin
(na našem webu je k dispozici aktuální verze, nyní: v1-12-258)
Tento Octopus fork Micropythonu se pomocí esptool nahraje do ESP32:
Windows / cmd:
vas-adresar\esptool.exe --chip esp32 -p COM6 write_flash -z 0x1000 vas-adresar\micropython-octopus.bin
Mac/Linux / terminal:
vas-adresar/esptool --chip esp32 -p /dev/ttyUSB0 write_flash -z 0x1000 vas-adresar/micropython-octopus.bin
("vas-adresar", "download" i port "COM6" či "/dev/ttyUSB0" si modifikujte podle svého systému)
Micropython pak v připojeném terminálu poznáte podle promptu:
>>>
Verze octopus- Micropython se liší tím, že jsme přidali modul
octopus_initial s metodou setup, pro snadnější instalaci celého systému z našeho cloudu. Ten se stahuje, průběžně rozbaluje a ukládá ze souboru typu tar (historicky: tape archiver).
Instalace systému s uPyShell:
octopus_initial.setup()
w
a -> přidání a nastavení wifi
SSID: vaše síť
PSW: a heslo
cw -> připojení k wifi
sd -> měla by se nahrát spousta souborů z cloudu
Ještě si připomeňme dvě hlavní klávesové zkratky řízení ESP:
CTRL+C přeruší běh programu
CTRL+D je soft reset, i nastavení z RAM by se mělo „vytratit“
Někdy je nutno provést Hard Reset (tlačítkem RST nebo EN, občas dokonce vypnutím a zapnutím ESP) hlavně po přehrávání některých souborů, kdy stará verze v RAM ještě chvíli trčí a my nechápeme, co se děje. (Například nejnověji změněný config po pouhém CTRL+D nemusí být aktuální)
3. uPyShell
Na akci české Python komunity „hardwarové Pyvo“ (doporučuji: https://pyvo.cz/ ) jsme představili náš experiment #uPyShell (čti: u Pyšel).
Nápad, vytvořit něco jako Linux pro ESP (v Micropythonu), se zrodil už dříve. Jeho realizace jsme se ale (oprávněně) obávali . Nakonec první verze „hloupého jádra“ vznikla za odpoledne jako recese pro vánoční besídku 2019. Některé příkazy jsme totiž měli již naprogramované, například: ls(„examples“), mkdir(„newTest“), cp(„f1″,“f2“), cat(„file.py“) .
Právě proto, že psát parametry se závorkami a uvozovkami je hrozně zdlouhavé, změnili jsme formát volání příkazů na čistý „command-line“ styl. A samotné nás dost překvapilo, o kolik je tento způsob efektivnější a příjemnější. (Bavíme se o používání v příkazové řádce, při psaní programu je to delší vypisování s python-syntaxí rozhodně opodstatněné.)
Verze 2019.
>>> from util.shell import ls
>>> ls("examples")
takto se to mohlo používat už minulý rok
Ale už máme uPyShell! Takže pro jednoduchou práci se soubory, editaci nebo testování „paralelních“ procesů si zavoláme:
>>> from util.shell import shell
>>> shell()
# a jsem jakoby v Linuxu, kde stačí psát bez závorek jenom:
ls
Základní příkazy
Co nás zajímá nejvíce: Kolik mám na ESP volného místa? Co všechno tam mám nainstalováno? Můžu něco přesunout? Smazat? Přejmenovat?
Na 90% si vystačíme s ls, cd, mkdir, cp, rm, free… a to už nám tam běželo. Navíc k tomu přidáváme edit (jednoduchý řádkový editor pro malé python programy) a run pro jejich spouštění. A ještě pár dalších novinek, ale nepředbíhejme.
Příkaz ls (list) ukáže adresáře, soubory i jejich velikosti.
Po příkazu ls (na obrázku nahoře) následuje i ukázka spouštění jednoduchého kódu, běžícího v samostatném vlákně pomocí příkazu run. Ještě nás ale čeká podrobnější popis a seznámení s dalšími částmi shellu.
Ale o tom až v příštím díle. Napište, zda se se Vám podařilo uPyShell vůbec rozeběhnout.
Další díl si můžete přečíst na https://chiptron.cz/articles.php?article_id=257