Modifications

Sauter à la navigation Sauter à la recherche
4 247 octets ajoutés ,  10 octobre 2018 à 14:49
Ligne 1 : Ligne 1 :  
== Introduction ==
 
== Introduction ==
{{traduction}}
+
[[Fichier:MICROPYTHON-MOD-IO-01.jpg|320px]]
 +
 
 +
{{pl|1408|MOD-IO}} est une carte de développement permettant d'ajouter des entrées analogiques et digitales sur n'importe quelles cartes disposant d'un connecteur UEXT ou Bus I2C. Si vous avez besoin de plus d'entrée/sortie (ou entrée analogiques) sur votre projet alors cette carte est le produit qu'il vous faut.
   −
[[Fichier:MICROPYTHON-MOD-IO-01.jpg|320px]]
+
Le connecteur UEXT facilite grandement le raccordement et permet de disposer de 4 relais, 4 entrées digitales opto-isolée, 4 entrée analogique (3.3v Max).  
   −
{{pl|1408|MOD-IO}} is a stackable development board which adds analog and digital inputs and outputs to any of our development boards with UEXT. If you work with any of our development boards with a UEXT connector and you need more digital and analog inputs and outputs, you can add these by connecting MOD-IO to your development board. This board allows easy interfacing to 4 relays, 4 optoisolated digital inputs, 4 analog inputs. MOD-IO is stackable and addressable, what does this mean? It means that these boards can plug together so that you can add as many inputs and outputs as you want! E.g. 2-4-6-8 etc.! The MOD-IO has an ATmega16 microcontroller and the firmware is available for modification.
+
Les cartes MOD-IO sont chaînables et adressables. Cela signifie que vous pouvez connecter plusieurs cartes MOD-IO ensemble (après avoir modifié leurs adresses) et vous pourrez toutes les commander indépendamment les unes des autres. Au final, cela fait plein de relais, d'entées/sortie et entrées analogiques! MOD-IO est propulsé par un microcontrôleur ATmega16 et le firmware est disponible en Open-Source chez le fabriquant.
    
[[Fichier:MICROPYTHON-MOD-IO-02.png|480px]]
 
[[Fichier:MICROPYTHON-MOD-IO-02.png|480px]]
   −
It features:
+
Caractéristiques de la carte:
* Open source hardware board with ATmega16L-8AU microcontroller à 8 MHz.
+
* Carte Open Source Hardware avec Microcontrôleur ATmega16L-8AU à 8 MHz.
* EXT extension connector
+
* Connecteur d'extension UEXT
* Status LED
+
* LED de statut
* Reset IC ZM33064 to protect the board againt low voltage running.
+
* IC Reset ZM33064 pour empêcher la carte de fonctionner si la tension d'alimentation est trop faible (évite les comportements erratiques).
* Power plug-in jack, DC-DC with input voltage 8-30VDC (compatible avec les alimentations industrielles 24V)
+
* Jack d'alimentation avec un convertisseur DC-DC supportant une tension d'alimentation de 8-30V continu (compatible avec les alimentations industrielles 24V)
* 4-optocoupler isolated inputs with screw terminals with Input status LEDs
+
* 4x Entrée digitale avec optocoupleur. Entrée équipée de bornier et de LED de statut.
* 4-relay outputs with 5A/250VAC contacts with screw terminals with Output status LEDs
+
* 4x relais en sortie capable de commander des appareils jusqu'à 5A sour 250VAC. Sortie également équipée de bornier avec LEDs de statut.
* Dimensions 80x100 mm
+
* 4x Entrée analogie (0-3.3V) avec convertisseur analogique/digital 10 bits (de 0 à 1023).
 +
* Dimensions: 80x100 mm
    
Voyez {{pl|1408|notre fiche produit pour plus d'informations}}, schéma, utilisation OlinuXino, etc.
 
Voyez {{pl|1408|notre fiche produit pour plus d'informations}}, schéma, utilisation OlinuXino, etc.
Ligne 81 : Ligne 84 :  
{{ESP8266-MICROPYTHON-SUBTUTO}}
 
{{ESP8266-MICROPYTHON-SUBTUTO}}
   −
== Bibliothèque ==
+
== Bibliothèque modio ==
 
Avant d'utiliser le script d'exemple, il est nécessaire de transférer la '''bibliothèque modio''' sur votre carte MicroPython.
 
Avant d'utiliser le script d'exemple, il est nécessaire de transférer la '''bibliothèque modio''' sur votre carte MicroPython.
    
La [https://github.com/mchobby/esp8266-upy/tree/master/modio bibliothèque '''modio''' et sa documentation] sont disponibles dans le [https://github.com/mchobby/esp8266-upy GitHub esp8266-uPy].
 
La [https://github.com/mchobby/esp8266-upy/tree/master/modio bibliothèque '''modio''' et sa documentation] sont disponibles dans le [https://github.com/mchobby/esp8266-upy GitHub esp8266-uPy].
   −
* Copiez le fichier {{fname|modio.py}} sur la carte micropython.
+
{{download-box|Télécharger la bibliothèque ESP8266-uPy|https://github.com/mchobby/esp8266-upy/archive/master.zip}}
 +
 
 +
Puis:
 +
* Copier le fichier {{fname|modio.py}} sur la carte micropython.
    
Vous pouvez également transférer le script de test {{fname|test.py}} sur la carte MicroPython.
 
Vous pouvez également transférer le script de test {{fname|test.py}} sur la carte MicroPython.
 +
 +
== Code ==
 +
=== BUS I2C ===
 +
La carte MOD-IO utilise le bus I2C (adresse par défaut est 0x58) pour communiquer avec le MicroContrôleur.
 +
 +
Ce bus I2C est disponible sur le connecteur UEXT de notre ESP8266-EVB comme le montre le tableau suivant.
 +
 +
[[Fichier:ESP8266-DEV-12.jpg|480px]]
 +
 +
En adaptant le code (et les raccordements du bus I2C), vous pourriez tout aussi facilement faire fonctionner des cartes ESP8266 comme {{pl|67|Feather ESP8266 Huzza}} ou {{cl|121|Wemos D1}}.
 +
 +
=== Fonctionnalités du MOD-IO ===
 +
Voici l'exemple commenté en Français.
 +
 +
<syntaxhighlight lang="python">
 +
# Utilisation du MOD-IO d'Olimex avec un ESP8266 sous MicroPython
 +
#
 +
# Shop: http://shop.mchobby.be/product.php?id_product=1408
 +
# GitHub: https://github.com/mchobby/esp8266-upy/tree/master/modio
 +
 +
from machine import I2C, Pin
 +
from time import sleep_ms
 +
from modio import MODIO
 +
 +
# Bus I2C sur le connecteur UEXT
 +
i2c = I2C( sda=Pin(2), scl=Pin(4) )
 +
brd = MODIO( i2c ) # Adresse par défaut=0x58
 +
 +
# === Lire les entrées analogiques ===========================
 +
for input_index in range( 4 ):
 +
    print( 'Analogique %s : %s Volts' %( input_index,brd.analogs[input_index] ) )
 +
 +
brd.analogs.raw = True
 +
for input_index in range( 4 ):
 +
    print( 'Analogique %s : %s of 1023' %( input_index,brd.analogs[input_index] ) )
 +
 +
print( 'Lire toutes les entrées analogiques, mode RAW, en une seule opération' )
 +
print( brd.analogs.states )
 +
 +
print( 'Lire les tensions, en VOLTS, de toutes les entrée analogiques en une seule opération' )
 +
brd.analogs.raw = False # Réactiver la conversion en tension
 +
print( brd.analogs.states )
 +
 +
# === Lire les entrées Opto-Isolées =========================
 +
print( 'Lire toutes les entrées Opto-Isolées' )
 +
print( brd.inputs.states )
 +
print( 'Lire la 3ieme entrée Opto-Isolée' )
 +
# Python donc indexé à partir de 0!
 +
print( brd.inputs[2] )
 +
 +
# === RELAIS ======================================
 +
# Activer les relais REL1 et REL3 (Python donc indexé à 0)
 +
print( 'Modifier les relais par index' )
 +
brd.relais[0] = True
 +
brd.relais[2] = True
 +
print( 'Etat des Relais[0..3] : %s' % brd.relais.states )
 +
sleep_ms( 2000 )
 +
# Eteindre tous les relais
 +
brd.relais.states = False
 +
 +
print( 'Commander un relais à la fois')
 +
for irelay in range( 4 ):
 +
    print( '  relais %s' % (irelay+1) )
 +
    brd.relais[irelay] = True # Activer
 +
    sleep_ms( 1000 )
 +
    brd.relais[irelay] = False # Désactiver
 +
    sleep_ms( 500 )
 +
 +
print( 'Mettre tous les relais à jour en une seule opération' )
 +
brd.relais.states = [True, True, False, True]
 +
sleep_ms( 2000 )
 +
print( 'Activer tous les relais' )
 +
brd.relais.states = True
 +
sleep_ms( 2000 )
 +
print( 'Désactiver tous les relais' )
 +
brd.relais.states = False
 +
 +
print( "That's the end folks")
 +
</syntaxhighlight>
 +
 +
=== Changer l'adresse I2C de la carte ===
 +
Les cartes MOD-IO sont conçues pour être chaînable. Il faut donc que chacune d'entre-elles aient une adresse différente sur le bus I2C.
 +
 +
Si vous voulez utiliser plusieurs cartes, il faudra configurer une adresse I2C différente pour chacune d'entre-elles (adresse qu'il fait configurer en connectant une seule carte à la fois).
 +
 +
{{ambox-stop|text=Il faut maintenir le bouton BUT enfoncé pendant l'exécution de la commande {{fname|change_address()}} .}}
 +
 +
<syntaxhighlight lang="python">
 +
# Modifier l'adresse de MOD-IO d'Olimex vers 0x22
 +
#
 +
# Shop: http://shop.mchobby.be/product.php?id_product=1408
 +
# GitHub: https://github.com/mchobby/esp8266-upy/tree/master/modio
 +
 +
from machine import I2C, Pin
 +
from modio import MODIO
 +
 +
i2c = I2C( sda=Pin(2), scl=Pin(4) )
 +
brd = MODIO( i2c, addr=0x58 )
 +
brd.change_address( 0x22 )
 +
</syntaxhighlight>
    
== Où acheter ==
 
== Où acheter ==
29 837

modifications

Menu de navigation