Modifications

Sauter à la navigation Sauter à la recherche
4 938 octets ajoutés ,  10 octobre 2018 à 14:49
Ligne 1 : Ligne 1 :  
== Introduction ==
 
== Introduction ==
{{traduction}}
+
[[Fichier:MICROPYTHON-MOD-IO-01.jpg|320px]]
   −
[[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.
 +
 
 +
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 74 : Ligne 77 :  
Etant donné que le l'ESP8266-DEV (et donc ESP8266-EVB) ne disposent pas de convertisseur USB-Série, il sera donc nécessaire d'utiliser {{pl|144|un câble console}} (USB-Série-TTL) pour communiquer avec la carte ESP8266.  
 
Etant donné que le l'ESP8266-DEV (et donc ESP8266-EVB) ne disposent pas de convertisseur USB-Série, il sera donc nécessaire d'utiliser {{pl|144|un câble console}} (USB-Série-TTL) pour communiquer avec la carte ESP8266.  
   −
[[Fichier:UEXT-SERIAL-wiring2.jpg|240px]] [[Fichier:UEXT-SERIAL-wiring.jpg|240px]]
+
[[Fichier:UEXT-SERIAL-wiring.jpg|360px]]
 +
 
 +
== Flasher MicroPython ==
 +
Pour flasher MicroPython sur l'ESP8266-DEV (module ESP8266) qui équipe la carte d'évaluation d'Olimex (ESP8266-EVB), nous vous proposons les lectures suivantes:
 +
 
 +
{{ESP8266-MICROPYTHON-SUBTUTO}}
 +
 
 +
== 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.
 +
 
 +
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].
 +
 
 +
{{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.
 +
 
 +
== 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 836

modifications

Menu de navigation