cs:pymlab
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| cs:pymlab [2016/04/03 15:56] – kaklik | cs:pymlab [Neznámé datum] (aktuální) – upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| ====== Komunikační knihovna pymlab ====== | ====== 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, I²C, Ethernet a USB. Jde o pokusnou implementaci [[cs: | + | Jde o softwarový balík, který umožňuje vytvářet senzorovou síť založenou na komunikačních rozhraních RS232, |
| 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 | 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 | ||
| Řádek 9: | Řádek 9: | ||
| ===== Instalace ===== | ===== Instalace ===== | ||
| - | Pokud potřebujeme na sběrnici přistupovat přes rozhraní USB pomocí modulu [[cs: | + | 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í: | Instalaci samotného softwarového balíku pymlab pak provedeme snadno pomocí: | ||
| Řádek 17: | Řádek 21: | ||
| sudo pip install pymlab | sudo pip install pymlab | ||
| - | Oba příkazy jsou rovnocenné a využívají python balíčkovací systém ve kterém je [[https:// | + | Oba příkazy jsou rovnocenné a využívají python balíčkovací systém ve kterém je [[https:// |
| - | + | ||
| - | sudo apt-get install libudev-dev libusb-1.0-0-dev libhidapi-dev python-setuptools python-smbus cython | + | |
| ==== Vývojová verze ==== | ==== Vývojová verze ==== | ||
| - | Nejaktuálnější vývojová verze knihovny je k dispozici na githubu. Tu taktéž můžeme | + | 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 |
| git clone https:// | git clone https:// | ||
| Řádek 31: | Řádek 33: | ||
| Následně je užitečné úpravy knihovny zpětně vystavit na githubu, nebo vytvořit pull-request. | 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í ===== | ===== 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: | ||
| - | ==== Interaktivní uživatelské rozhraní iPython ==== | + | cfg = config.Config( |
| - | + | i2c = { | |
| - | Vhodným řešením pro testování zařízení je použití interaktivního prostředí iPython, kde můžeme přímo interaktivně zkoušet jednotlivé části kódu a zpracovávat, nebo vykreslovat měřená data. | + | " |
| + | " | ||
| + | }, | ||
| + | |||
| + | bus = [ | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | |||
| + | " | ||
| + | {" | ||
| + | ], | ||
| + | }, | ||
| + | ], | ||
| + | ) | ||
| - | Ubuntu iPython získáme instalací těchto balíků: | + | Jde o JSON zápis struktury. Blok i2c definuje kořenové komunikační rozhraní. Ten má dva parametry. |
| - | sudo apt-get install ipython-notebook python-scipy python-numpy | + | Parametr //port// určuje systémové rozhraní které bude využito pro komunikaci. Může mít hodnoty buď číslo systémového [[cs:i2c|I2C]] portu na který se má knihovna pymlab připojit. |
| + | Nebo řetězec, který určuje adresu k systémovému souboru, který se má použít pro komunikaci. | ||
| - | Pak již můžeme iPython spustit z příkazového řádku | + | Volba " |
| - | ipython notebook --pylab inline | + | |
| - | Tento příkaz spustí server iPythonu a obvykle otevře i okno systémového webového prohlížeče s otevřenou složkou ze které jsme iPython server spustili. Vytvořené notebooky se pak ukládají s adresou relativní k této složce. | + | * ' |
| + | * ' | ||
| + | * ' | ||
| + | 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. | 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 | sudo adduser kaklik i2c | ||
| Změna se projeví po odhlášení a přihlášení uživatele. | Změna se projeví po odhlášení a přihlášení uživatele. | ||
| + | |||
| + | </ | ||
| ---- | ---- | ||
| Řádek 63: | Řádek 101: | ||
| {{ : | {{ : | ||
| - | ===== Python interpreter pro ARM STM32 ===== | + | ===== 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, | ||
| - | Pro použití Python frameworku na vyčítání čidel přímo z [[cs: | ||
cs/pymlab.1459698975.txt.gz · Poslední úprava: 2016/04/03 15:56 (upraveno mimo DokuWiki)
