micropython-octopus-old

Aktuální návod na instalaci celého systému je na samostatné stránce:
https://www.octopuslab.cz/micropython-octopus/

Původní instalace byla trochu náročnější, ale stále ji lze použít:
Z gitu si stáhněte a rozbalte v pracovním adresáři:
https://github.com/octopusengine/octopuslab/tree/master/esp32-micropython 

Máme rozpracováno několik možností zprovoznění:

 
off-line - spouští se deploy
(deploy.sh pro Linux nebo  deploy.bat ve Windows)
který kopíruje "vše" (nebo co si nastavíte v sh/bat)
Je to pomalé a poměrně nespolehlivé. 
Jelikož ampy není úplně "stabilní".
Proto zvolme raději plán B)


on-line - lepší varianta: dávkový soubor prepare (.sh pro Linux nebo .bat pro Windows), který vytvoří základní adresáře a kopíruje jen první část nezbytných souborů.
> spusťte:

D:\vas-adresar\prepare.bat COM6 - samozřejmě s vaším COM portem
Dá se nahrávat i postupně, pomocí ampy - potřebujete především:
prepare.bat
boot.py
util/setup.py util/setup.py
util/wifi_connect.py  


Pak se přes terminál v ESP se spustí:  
>>> setup() 

Hello, this will help you initialize your ESP
ver: 0.62 / 13.7.2019 (c)octopusLAB
Press Ctrl+C to abort
 ==============================
         S E T U P
 ============================== 
 [w]   - wifi submenu
 [cw]  - connect wifi
 [sd]  - system download > stable (update octopus modules from URL) 
 [sdp] - system download > petrkr (beta octopus modules from URL)
 [sdo] - system download > octopus (alfa octopus modules from URL)
 [ds]  - device setting
 [ios] - I/O setting submenu
 [iot] - I/O test - run io_test()
 [mq]  - mqtt() and sending data setup
 [st]  - set time
 [si]  - system info
 [wr]  - run web repl
 [od]  - run octopus() demo
 [x]   - exit setup


Zatím budeme postupně potřebovat pouze w, cw a sd 
select: 
> w < pro nastavení WiFi: 
 ==============================
        S E T U P - W I F I
 ============================== 
 [a]  - Add wifi network
 [r]  - Remove wifi network
 [s]  - Show configuration

> a < pro přidání vaší wifi sítě do zařízení (uloží se v config/wifi.json)
SSID: název Vaší wifi
PASSWORD: a heslo do ní

Pak se v select setupu napíše: sd (system download from url), 
které provede nahrání obsahu TARu z našeho cloudu - vše se do ESP samo stáhne a rozbalí. Průběžně uvidíte všechny soubory (včetně podadresářů).

webrepl - "vzdálený terminál"
Jelikož je nutné ho konfigurovat a mít již nastavený přístup k wifi - některé ukázky a možnosti si ponecháme na další pokračování.
Ideální by bylo přepnutí ESP do AP (access pointu) pro nastavení wifi přes webové rozhraní - ale to nám pro Micropython ještě chvíli potrvá.

Pracujeme zároveň i na verzi: blockly and webrep >
https://github.com/octopusengine/octopuslab/tree/master/esp32-micropython-blockly 
Původní verze octopus() – jako testovací konzole – z roku 2018

Aktálně jsme web repl začlenili do našeho web_server IDE:
https://www.octopuslab.cz/micropython-web-ide/

Původní verze 2017:

Příprava na PC: Nainstatujte si Python3 – hezky popsáno v [7]
Pak jsem jel částečně podle [6] (kde je to pro Linux – musel jsem krapet ohýbat pro okna)
Někdy je ještě nutno rešit ovladač USB>UART https://www.pololu.com/docs/0J7/all, ale Win10 už většinou nemá problémy.

Instalace na ESP:
1) Je nutno stáhnout Micropython – vybíral jsem z [1] a nahrál jsem ho „vedle“ do adresáře: moje_pracovní_cesta/down
2) Pak nainstalovat esptool [2] „pip install esptool“
3) Připojí se ESP (Linux obvykle  /dev/ttyUSB0, na Win jsem detekoval port /COM6)

4) Musí se „smazat“ celá FLASH paměť – příprava pro nahrání jádra Micropythonu:

esptool.py --chip esp32 -p /COM6 erase_flash

5) Pak se stažená binárka [1] opět pomocí esptool  [2] z příkazové řádky uploadne do ESP32:

esptool.py --chip esp32 -p /COM6 write_flash -z 0x1000 ./down/esp32-20180821-v1.9.4-479-g828f771e3.bin

6) A už by to mělo běžet. Testy lze provádět podle  [5] – což jsem dělal přes terminál v Putty [10] (v [1] je to také popsáno).
A soubory se nahrávají pomocí Ampy [8] – zde např boot.py (základ, co jede po spuštění):

ampy -p /COM6 get boot.py
# This file is executed on every boot (including wake-boot from deepsleep)

Další možnosti „přednastavení“:

set AMPY_PORT=COM6
ampy ls
AMPY_BAUD=115200
...

..uf. No a microPython – to už je pohoda. Pokračujte na > Micropython-octopus()
Pokud teda nechcete používat souběžně několik přesných časovačů, hw přerušení, multithreading a fragmenty assemblerového přístupu k registrům.

[1] https://micropython.org/download#esp32
[2] https://github.com/espressif/esptool
[3] http://iot-bits.com/esp32/esp32-flash-download-tool-tutorial/
[4] https://www.14core.com/micropython-flashing-programming/
[5] https://naucse.python.cz/lessons/beginners/micropython/
[6] https://boneskull.com/micropython-on-esp32-part-1/
[7] https://naucse.python.cz/course/pyladies/beginners/install/
[8] https://github.com/adafruit/ampy
[9] https://forum.micropython.org/viewforum.php?f=18&sid=41a4da3dede37eb032a0227238fcfdec
[10] Putty
[11] Moduly, které jsou implementovány: http://docs.micropython.org/en/latest/py-modindex.html
[12] Můžete zkusit i „pokročilejší“ prostředí:  https://dfrobot.gitbooks.io/upycraft/content/
[13] Testování a pár ukázek – http://micropython.org/live/


Aktuálně jedeme v režimu:
– stažené a funkční esptool, micropython.bin i ampy, známé připojení k wifi >
(1) erase flash + upload micropython – návod nahoře: [4] [5]
(2) spustí se prepare.sh (Linux) nebo prepare.bat (Win)
což nahraje základ: 
util/setup.py
util/wifi_connect.py
a boot připaraví pro setup
(3) po restartu ESP se spustí setup
>>> setup()
(4) nastaví se wifi [w] pak se znovu spustí setup na připojí se [wc]
(5) dotřetice po setup() se stáhne s rozbalí tar [i]
který nahraje vše potřebné
(6) už se ladí přes octopus()
[i] info
[s] > znovu setup nastaví se device [d]