2. • Vladan Laxa
• Systems Engineer / Consultant
• Latraxa.cz
• VMware VCP 2,3,4,5,6,6.5 (2006 – 2019)
• 15 years in IT
• vlaxa@latraxa.cz
• @latraxa
• #automateitall
• https://github.com/vlaxa
Informace o mě
latraxa.cz
3. • Kompletní reimplementace Python3
• Designed pro efektivní využití prostředků
• Designed to run bare metal
• Obsahuje:
• Compiler, runtime a REPL (Read Evaluate Print Loop)
• Podporuje základní knihovny (moduly)
• Obvykle začínají na „u“ help(‘modules‘)
• https://github.com/micropython/micropython-lib
• Extra moduly pro ovládání hardware
• Damien George
• http://micropython.org/unicorn/
MicroPython je
latraxa.cz
16. • Další užitečné je zjištění velikosti flash a MAC adresy:
• sudo esptool.py --port /dev/tty.wchusbserial1420 flash_id
• sudo esptool.py --port /dev/tty.wchusbserial1420 read_mac
• Připojení provedeme skrz sériovou konzoli:
• picocom --b 115200 --flow n /dev/tty.wchusbserial1410
• Nebo alternativa:
• screen /dev/tty.wchusbserial1410 115200
Připojení na NodeMCU
latraxa.cz
17. • Import knihovny Výstup
pin.value(0)
• Vstup Blikání LED
• Pin.IN – konfiguruje pro čtení
• Pin.OUT – pro zápis PWM (Pulse Width Modulation) frekvence (freq) v Hz, střída (duty) 0-1024
NodeMCU – hrátky s MicroPython
latraxa.cz
22. • Nainstalujeme nástroje Ampy (Adafruit Micro Python tool)
• pip install adafruit-ampy
• Soubor nahrajeme
• ampy –p /dev/tty.wchusbserial1410 put scripts/DS18B20.py main.py
• Při bootu spouští boot.py následně se vykoná obsah souboru main.py
• Pozor, nelze nahrávat souboru, pokud máme aktivní připojení skrz
sériovou konzoli
• http://docs.micropython.org/en/v1.9/micropython-esp8266.pdf
NodeMCU – nahrání kódu na desku
latraxa.cz
23. • upip on bare metal upip.install(…)
• Moduly pro IoT: uasyncio, umqtt
• ujson.load, uzlib.DecompIO
• Xtensa (ESP8266) native emitter a inline assembler
• Soft IRQ handlers skrze micropython.schedule()
• https://forum.micropython.org
MicroPython tips
latraxa.cz
24. • Používat krátké názvy proměnných
• Upřednostňovat lokální proměnné (uvnitř funkce)
před globálními
• Snažit se vyhnout alokaci paměti a používat stack
• Používat funkce + preload a cache module
• Nepoužívat * a ** argumenty
• Dekorátor @micropython.native
• Dekorátor @micropython.viper (přímý zápis do
GPIO registrů)
• Dekorátor @micropython.asm_thumb (in-line
assembler in python syntax)
MicroPython optimalizace
latraxa.cz