Sdílejte nás



RSS feeds

ESP32 OctopusLAB shell 1Tisk

V Octopus LAB (sledujte nás na FB) jsme se poslední dobou hodně soustředili na ESP32 ve spojení s Micropythonem. Hledáme limity a možnosti maximálního zjednodušení práce s tímto stále více populárním mikrokontrolérem. Využíváme výborných vlastností Micropythonu (objektové, modulární, file-system…) a 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.

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.
Zatím nikdo nekomentoval. Buďte první kdo vloží svůj komentář.

Přidat komentář

Pro přidání komentáře musíte být přihlášený.

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.
5,218,405 návštěv