Uživatelské nástroje

Nástroje pro tento web


cs:pymlab

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
cs:pymlab [2016/04/03 16:03] – [Použití] kaklikcs: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:pdn|polymorfní sítě přístrojů]].+Jde o softwarový balík, který umožňuje vytvářet senzorovou síť založenou na komunikačních rozhraních RS232, [[cs:i2c|I²C]], Ethernet a USB. Jde o pokusnou implementaci [[cs:pdn|polymorfní sítě přístrojů]].
  
 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  [[cs:i2chub|I2Chub02A]], které slouží jako routovací body pro zařízení, která nemohou být na jedné větvi sběrnice. Což je například více senzorů se stejnou I²C adresou. Zdrojové soubory knihovny a příkladů použití jsou v repozitáři [[https://github.com/MLAB-project/MLAB-I2c-modules|pyMLAB]] na  MLAB Githubu. 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  [[cs:i2chub|I2Chub02A]], které slouží jako routovací body pro zařízení, která nemohou být na jedné větvi sběrnice. Což je například více senzorů se stejnou I²C adresou. Zdrojové soubory knihovny a příkladů použití jsou v repozitáři [[https://github.com/MLAB-project/MLAB-I2c-modules|pyMLAB]] na  MLAB Githubu.
Řádek 9: Řádek 9:
 ===== Instalace ===== ===== Instalace =====
  
-Pokud potřebujeme na sběrnici přistupovat přes rozhraní USB pomocí modulu [[cs:usbi2c|USBI2C01A]], tak je potřeba nainstalovat balík s hidapi a další nástroje. Viz [[cs:usbi2c|stránka tohoto modulu]].+Pokud potřebujeme na sběrnici přistupovat přes rozhraní USB pomocí modulu [[cs:usbi2c|USBI2C01A]], tak je potřeba nainstalovat balík s hidapi, libusb a další nástroje. 
 + 
 +  sudo apt-get install libudev-dev libusb-1.0-0-dev libhidapi-dev python-setuptools python-smbus python-numpy cython git 
 + 
 + Viz [[cs:usbi2c|stránka tohoto modulu]].
 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://pypi.python.org/pypi/pymlab/|pymlab zařazen]]. Tím by měly být staženy i závislosti se kterými pymlab pracuje, jako je například cython-hidapi v pythonu označovaný pouze jako modul hid.  Nenainstaluje se ale libusb. To stále musíme provést ručně pomocí: +Oba příkazy jsou rovnocenné a využívají python balíčkovací systém ve kterém je [[https://pypi.python.org/pypi/pymlab/|pymlab zařazen]]. Tím by měly být staženy i závislosti se kterými pymlab pracuje, jako je například cython-hidapi v pythonu označovaný pouze jako modul hid.  
- +
-  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 nainstalovat do systému knihovnu přitom vyvíjet.+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://github.com/MLAB-project/pymlab.git   git clone https://github.com/MLAB-project/pymlab.git
Řá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://github.com/MLAB-project/i2c-tools|i2c-tools]] je balík nástrojů pro manipulaci s I²C zařízeními v prostředí Linuxu. Mimo jiné ale obsahuje zdrojové kódy knihovny python-smbus, která je důležitá pro fungování pymlabu. 
 +
 +  git clone https://github.com/MLAB-project/i2c-tools.git
 +  cd i2c-tools
 +  make EXTRA="py-smbus"
 +  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, které umožňují komunikaci se zařízeními, kterým nestačí SMBus podmnožina příkazů sběrnice. 
  
 ===== Použití ===== ===== Použití =====
Řádek 38: Řádek 53:
   cfg = config.Config(   cfg = config.Config(
       i2c = {       i2c = {
-          "port": 0, # I2C bus number or system device address in case of serial driver. +          "port": '/dev/ttyUSB0', # I2C bus number eg 0 or system device address in case of serial driver'/dev/ttyUSB0'
           "device": 'serial',  # here you can explicitly set I2C driver with 'hid', 'smbus', 'serial'           "device": 'serial',  # here you can explicitly set I2C driver with 'hid', 'smbus', 'serial'
       },       },
Řádek 58: Řádek 73:
 Nebo řetězec, který určuje adresu k systémovému souboru, který se má použít pro komunikaci.  Nebo řetězec, který určuje adresu k systémovému souboru, který se má použít pro komunikaci. 
  
 +Volba "device" pak může mít několik hodnot podle typu rozhraní, které má být použito. Aktuálně jsou podporovány tyto typy:
  
-==== Interaktivní uživatelské rozhraní iPython ==== +  * 'smbus' - Systémové smbus/I²C rozhraní 
-  +  * 'hid' - Připojení přes HIDAPI, což je například případ použití modulu [[cs:usbi2c|]] 
-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 zpracovávat, nebo vykreslovat měřená data. +  * 'serial' - Systémové seriové rozhraní například kombinace [[cs:usb232r|]] [[cs:i2c232v|]]
  
-Ubuntu iPython získáme instalací těchto balíků:  +Pokud má //device// hodnotu //None//, nebo není vůbec zadaný, tak se knihovna pokusí sekvenčně použít jednotlivé drivery. 
-  sudo apt-get install ipython-notebook python-scipy python-numpy+
  
-Pak již můžeme iPython spustit z příkazového řádku 
-  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. 
  
 +<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.
 +
 +</WRAP>
  
 ---- ----
Řádek 87: Řádek 101:
 {{ :cs:sw:flowchart.png?direct&500 |}} {{ :cs:sw:flowchart.png?direct&500 |}}
  
-===== 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://micropython.org/|MicroPython]].  
 + 
 +===== Cubesat Space Protocol ===== 
 + 
 +Pro aplikace kde je potřeba větší spolehlivost, ale je výhodné zachovat fyzickou vrstvu [[cs:i2c|I2C]] by mohlo být výhodné implementovat [[https://en.wikipedia.org/wiki/Cubesat_Space_Protocol|Cubesat Space Protocol]].
  
-Pro použití Python frameworku na vyčítání čidel přímo z [[cs:stm32f10xrxt]] by bylo užitečné použít Python interpretr pro ARM. Například by mohl být použitelný [[http://code.google.com/p/python-on-a-chip/|Python on a chip]].  
  
  
cs/pymlab.1459699391.txt.gz · Poslední úprava: 2016/04/03 16:03 (upraveno mimo DokuWiki)