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 [Unknown date] (aktuální) – upraveno mimo DokuWiki (Unknown date) 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)