cs:pymlab
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Předchozí verze | |||
— | cs:pymlab [Unknown date] (aktuální) – upraveno mimo DokuWiki (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Komunikační knihovna pymlab ====== | ||
+ | |||
+ | Jde o softwarový balík, který umožňuje vytvářet senzorovou síť založenou na komunikačních rozhraních RS232, [[cs: | ||
+ | |||
+ | Princip funkce spočívá v definování struktury sítě a adres jednotlivých nódů v konfiguračním souboru ovládacího programu. Lze tak ke všem bodům v síti přistupovat pomocí jazyka Python. Pro routování I2C mezi jednotlivými segmenty obsahujícími čidla se stejnými adresami jsou využívány moduly | ||
+ | |||
+ | Výsledkem je možnost testovat a demonstrovat všechna nová čidla a zařízení. Bez nutnosti udržovat aktuální specifické zdrojové kódy pro všechny používané MCU. Lze tak dosáhnout nezávislosti na aktuálně používaných mikrokontrolérech, | ||
+ | |||
+ | ===== Instalace ===== | ||
+ | |||
+ | Pokud potřebujeme na sběrnici přistupovat přes rozhraní USB pomocí modulu [[cs: | ||
+ | |||
+ | sudo apt-get install libudev-dev libusb-1.0-0-dev libhidapi-dev python-setuptools python-smbus python-numpy cython git | ||
+ | |||
+ | Viz [[cs: | ||
+ | Instalaci samotného softwarového balíku pymlab pak provedeme snadno pomocí: | ||
+ | |||
+ | sudo easy_install pymlab | ||
+ | | ||
+ | nebo | ||
+ | sudo pip install pymlab | ||
+ | |||
+ | Oba příkazy jsou rovnocenné a využívají python balíčkovací systém ve kterém je [[https:// | ||
+ | |||
+ | ==== Vývojová verze ==== | ||
+ | |||
+ | Nejaktuálnější vývojová verze knihovny je k dispozici na githubu. Tu nainstalujeme následujícím způsobem. Výhoda využití gitu je v tom, že knihovnu můžeme snadno upravovat a vyvíjet. | ||
+ | |||
+ | git clone https:// | ||
+ | cd pymlab | ||
+ | git checkout dev | ||
+ | sudo python setup.py develop | ||
+ | |||
+ | Následně je užitečné úpravy knihovny zpětně vystavit na githubu, nebo vytvořit pull-request. | ||
+ | |||
+ | ==== i2c-tools ==== | ||
+ | [[https:// | ||
+ | |||
+ | git clone https:// | ||
+ | cd i2c-tools | ||
+ | make EXTRA=" | ||
+ | sudo make install | ||
+ | cd py-smbus | ||
+ | sudo python setup.py install | ||
+ | sudo ldconfig | ||
+ | |||
+ | Verze I2C-tools umístěná na MLAB githubu má oproti verzi z repozitářů Ubuntu přidané metody read_i2c_block a write_i2c_block, | ||
+ | |||
+ | ===== Použití ===== | ||
+ | |||
+ | Základní vlastností knihovny pymlab je možnost nadefinovat strukturu sítě senzorů. Obecně jde o síť zařízení se kterými komunikovat uživatelský kód. Definice sítě vypadá například takto: | ||
+ | |||
+ | cfg = config.Config( | ||
+ | i2c = { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | | ||
+ | bus = [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | | ||
+ | " | ||
+ | {" | ||
+ | ], | ||
+ | }, | ||
+ | ], | ||
+ | ) | ||
+ | |||
+ | Jde o JSON zápis struktury. Blok i2c definuje kořenové komunikační rozhraní. Ten má dva parametry. | ||
+ | Parametr //port// určuje systémové rozhraní které bude využito pro komunikaci. Může mít hodnoty buď číslo systémového [[cs: | ||
+ | Nebo řetězec, který určuje adresu k systémovému souboru, který se má použít pro komunikaci. | ||
+ | |||
+ | Volba " | ||
+ | |||
+ | * ' | ||
+ | * ' | ||
+ | * ' | ||
+ | |||
+ | Pokud má //device// hodnotu //None//, nebo není vůbec zadaný, tak se knihovna pokusí sekvenčně použít jednotlivé drivery. | ||
+ | |||
+ | |||
+ | <WRAP center round tip 80%> | ||
+ | Pro přímý přístup ke sběrnici I²C bez sudo je třeba být ve skupině i2c. Uživatele tam přidáme například takto. | ||
+ | sudo adduser kaklik i2c | ||
+ | |||
+ | Změna se projeví po odhlášení a přihlášení uživatele. | ||
+ | |||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | Poznámka: Pro seznámení se s jazykem [[http:// | ||
+ | |||
+ | ===== TODO ===== | ||
+ | |||
+ | ==== Grafické rozhraní ==== | ||
+ | |||
+ | Grafické rozhraní by v kombinaci s touto knihovnou mohlo být využito pro definování síťové topologie a případné vykreslování grafů ze senzorů zapojených do sítě. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Python interpreter pro ARM ===== | ||
+ | |||
+ | Pro použití Python frameworku na vyčítání čidel přímo z některého mikrokonroleru připojeného na sběrnici by bylo užitečné použít Python interpretr pro ARM. Například by mohl být použitelný [[https:// | ||
+ | |||
+ | ===== Cubesat Space Protocol ===== | ||
+ | |||
+ | Pro aplikace kde je potřeba větší spolehlivost, | ||
+ | |||
+ | |||
cs/pymlab.txt · Poslední úprava: 2017/02/23 12:17 (upraveno mimo DokuWiki)