Uživatelské nástroje

Nástroje pro tento web


cs:i2c

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
Následující verzeObě strany příští revize
cs:i2c [2014/08/13 14:19] kaklikcs:i2c [2014/11/29 18:32] – [Související stránky] kaklik
Řádek 8: Řádek 8:
 ===== Spojování I²C zařízení ===== ===== Spojování I²C zařízení =====
  
-I2C je sbernice původně určená k propojování zařízení na malé vzdálenosti. (Původně na rozměru plošných spojů). Avšak s použitím vhodných technik je možné její rozsah zvětšit na řádově desítky metrů. (Použití na delší vzdálenosti nemusí být bezpečné, protože delší vodiče se může snadno indukovat elektrostaticky a elektromagnaticky vysoké napětí, které poškodí připojená zařízení) Přesná vzdálenost na kterou lze I2C používat je proto dána především prostředím ve kterém sběrnici používáme a také požadovanou spolehlivostí výsledného systému.+I2C je sbernice původně určená k propojování zařízení na malé vzdálenosti. (Původně na rozměru plošných spojů). Avšak s použitím vhodných technik je možné její rozsah zvětšit na řádově desítky metrů(( [[http://cladlab.com/electronics/circuit-design/communication-protocols/i2c-protocol#gallery|I2C Transmission Distances And Buffer’s]] )). (Použití na delší vzdálenosti nemusí být bezpečné, protože delší vodiče se může snadno indukovat elektrostaticky a elektromagnaticky vysoké napětí, které poškodí připojená zařízení) Přesná vzdálenost na kterou lze I2C používat je proto dána především prostředím ve kterém sběrnici používáme a také požadovanou spolehlivostí výsledného systému.
  
 V MLABu je spojování I2C zařízení řešeno na několika úrovních podle zvoleného rozsahu sítě. Lokálně (v rozsahu několika metrů) jsou moduly spojovány přímo MLAB kablíky. A oddělovány modulem [[cs:i2chub]], tímto modulem je také řešen převod mezi logickými úrovněmi 3,3V a +5V.  V MLABu je spojování I2C zařízení řešeno na několika úrovních podle zvoleného rozsahu sítě. Lokálně (v rozsahu několika metrů) jsou moduly spojovány přímo MLAB kablíky. A oddělovány modulem [[cs:i2chub]], tímto modulem je také řešen převod mezi logickými úrovněmi 3,3V a +5V. 
Řádek 15: Řádek 15:
  
 Pro rozsáhlé sítě je I²C nahrazeno jinou fyzickou vrstvou (CAN, Ethernet), která propojuje jednotlivé I2C síťové segmenty.  Pro rozsáhlé sítě je I²C nahrazeno jinou fyzickou vrstvou (CAN, Ethernet), která propojuje jednotlivé I2C síťové segmenty. 
 +
 +
 +==== Programový balík Pymlab ====
 +
 +Jde o softwarový balík, který umožňuje vytvářet síť z I²C zařízení a modulů, které slouží jako routovací body. Princip funkce spočívá v definování struktury sítě a adres jednotlivých nódů ve zdrojovém souboru ovládacího programu, pak lze ke všem bodům v síti přistupovat pomocí jednoduchých příkazů jazyka Python.
 + 
 +Instalaci samotného softwarového balíku [[cs:pymlab|pymlab]] pak provedeme snadno pomocí: 
 +
 +  sudo pip install pymlab
 +
 +V případě, že již nějakou starší verzi pymlab máme nainstalovanou, tak stačí spustit: 
 +
 +  sudo pip install --upgrade pymlab
 +
 +Oba příkazy jsou rovnocenné a využívají python balíčkovací systém ve kterém je [[https://pypi.python.org/pypi/pymlab/0.2|pymlab zařazen]].
 +
 +Tím by se měly stáhnout i balíky se kterými pymlab pracuje, jako je například cython-hidapi v pythonu označovaný pouze jako modul hid.  Nenainstaluje se alelibusb. To stále musíme provést ručně pomocí:
 +
 +  sudo apt-get install libudev-dev libusb-1.0-0-dev libhidapi-dev python-setuptools python-smbus cython 
  
  
Řádek 114: Řádek 133:
  
 V jiných operačních systémech, jako Windows či MAC OS, kde nemůžeme nebo nechceme využít podporu I²C rozhraní v jádře, můžeme použít pro ovládaní I2C  prostředí jazyka Python, který je multiplatformní a běží na všech známých OS.  V jiných operačních systémech, jako Windows či MAC OS, kde nemůžeme nebo nechceme využít podporu I²C rozhraní v jádře, můžeme použít pro ovládaní I2C  prostředí jazyka Python, který je multiplatformní a běží na všech známých OS. 
-==== MLAB I²C Python framework ==== 
- 
-Jde o softwarový balík, který umožňuje vytvářet senzorovou síť z I²C čidel a modulů [[cs:i2chub|I2Chub02A]], které slouží jako routovací body pro čidla, která nemohou být na jedné sběrnici. Víc informací viz[[https://github.com/MLAB-project/MLAB-I2c-modules|pyMLAB]] na Githubu. 
- 
-Princip funkce spočívá v definování struktury sítě a adres jednotlivých nódů ve zdrojovém souboru ovládacího programu, pak lze ke všem bodům v síti přistupovat pomocí jednoduchých příkazů jazyka Python. 
-  
-Výsledkem je možnost testovat a demonstrovat všechna nová čidla a zařízení. Bez nutnosti udržovat aktuální všechny specifické zdrojové kódy pro používané MCU. Lze tak dosáhnout nezávislosti na aktuálně používaných mikrokontrolérech, protože v blízké době by mělo být možné z Pythonu generovat program pro různé platformy. 
- 
-Pokud však 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 
-]]. 
-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://pypi.python.org/pypi/pymlab/0.2|pymlab zařazen]]. 
- 
-<WRAP info> V některých případech dochází k instalaci staré verze balíku pymlab. Chybná verze je 0.1, která nefunguje s modulem [[cs:usbi2c]]. Nová verze je 0.2 je potřeba to zkontrolovat během instalace. </WRAP> 
-  
-Tím by se měly stáhnout i balíky se kterými pymlab pracuje, jako je například cython-hidapi v pythonu označovaný pouze jako modul hid.  Nenainstaluje se alelibusb. To stále musíme provést ručně pomocí: 
- 
-  sudo apt-get install libudev-dev libusb-1.0-0-dev libhidapi-dev python-setuptools python-smbus cython  
- 
-=== Rozšíření iPython === 
-  
-Vhodným řešením pro testová použít interaktivní prostředí iPython, kde můžeme přímo interaktivně zkoušet jednotlivé části kódu a zpracovávat data.  
- 
-Jeho základní instalace se v Ubuntu provede instalací těchto balíků:  
-  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 
- 
-Pro přímý přístup ke sběrnici I²C bez sudo je třeba být ve skupině i2c:  
-  sudo adduser kaklik i2c 
- 
----- 
-Poznámka: Pro seznámení se s jazykem [[http://www.tutorialspoint.com/python/|Python]] můžete využít [[http://physics.muni.cz/~janak/pyzen/|Zenovou školu Pythonu]] od Zdeňka Janáka. 
- 
-=== Python interpreter pro ARM  STM32 === 
- 
-Pro použití Python frameworku na vyčítání čidel by bylo potřeba na [[cs:stm32f10xrxt]] zprovoznit Python interpretr. Řešením by ale mohl být [[http://code.google.com/p/python-on-a-chip/|Python on a chip]].  
- 
- 
  
 ===== Související stránky ===== ===== Související stránky =====
  
-  * [[cs:usbi2c|USBI2C]] - rozplánovaný modul určený k přímému převodu I2C na USB+  * [[cs:usbi2c]]
   * [[cs:i2c-pic-usb|I2C-PIC-USB]] - Konvertor I²C na USB s PIC   * [[cs:i2c-pic-usb|I2C-PIC-USB]] - Konvertor I²C na USB s PIC
   * [[cs:i2c_avr_usb|I2C-AVR-USB]] - Konvertor I²C na USB s AVR   * [[cs:i2c_avr_usb|I2C-AVR-USB]] - Konvertor I²C na USB s AVR
Řádek 170: Řádek 143:
   * [[cs:friendlyarm]]   * [[cs:friendlyarm]]
   * [[cs:i2chub]]   * [[cs:i2chub]]
 +  * [[cs:pymlab]]
  
cs/i2c.txt · Poslední úprava: 2022/09/02 21:20 autor: kaklik