Rozšíření Micropythonu
Možnost rozšíření Micropythonu o vlastní moduly jsme si již zmínili u octopus_initial.setup(). Máme více možností, zmíníme tři základní varianty.
-
Rozšíření je implementováno do samotného Mictopythonu (což využíváme ve forku micropython-octopus).
-
Máme možnost si přihrát vlastní modul (například do adresáře
/lib
), což je například celý Octopus FrameWork. -
Varianta, na kterou se zaměříme je využití
pip
(package installer for Python) v případě Micropythonu upip.
octopuslab_installer
Pro instalci Octopus FrameWork využíváme metody deploy()
z "balíčku" octopuslab_installer
.
... WiFi conncect
import upip
upip.install('micropython-octopuslab-installer')
# wait for install
from lib import octopuslab_installer
octopuslab_installer.deploy()
itertools
V "dospělém" Pythonu existuje "modul" itertools, který umožní pokročilejší práci s "iterátory".
Například podle následující ukázky využíváme metodu cycle()
s možností next()
:
import itertools as it
players = ["John", "Alice", "Bob"]
player_choice = it.cycle(players)
print(next(player_choice)) # John
print(next(player_choice)) # Alice
print(next(player_choice)) # Bob
print(next(player_choice)) # John
print(next(player_choice)) # Alice
...
V Micropythonu itertools nenajdeme, ale naštěstí existuje možnost snadné instalace upip.install("micropython-???")
:
... WiFi conncect
>>> import upip
>>> upip.install('micropython-itertools')
Installing to: /lib/
Warning: micropython.org SSL certificate is not validated
Installing micropython-itertools 0.2.3 from https://micropython.org/pi/itertools/itertools-0.2.3.tar.gz
Některé další moduly
(ok) testováno a zdá se funkční | (+) zkoušeno a něco tam nefunguje
-
https://libraries.io/pypi/micropython-vec vectors (ok)
-
https://pypi.org/project/micropython-pcf8591/ i2c (4x A/D, 1x D/A)
-
https://pypi.org/project/micropython-pcd8544/ nokia displ.
Část knihoven má zdroj na githubu v 🡒 micropython/micropython-lib, ostatní jsou dílem "třetích stran".