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 59 : |
Ligne 62 : |
| {{parts-end}} | | {{parts-end}} |
| | | |
− | == Montage == | + | == Raccordements == |
| Les raccordements sont effectués comme suit: | | Les raccordements sont effectués comme suit: |
| | | |
Ligne 69 : |
Ligne 72 : |
| | | |
| {{ambox-stop|text=Attention: ne pas appliquer plus de 5V sur la carte d'évaluation ESP8266-EVB}} | | {{ambox-stop|text=Attention: ne pas appliquer plus de 5V sur la carte d'évaluation ESP8266-EVB}} |
| + | |
| + | Le raccordement du '''convertisseur USB-Série''' est identique à celui décrit dans le [[ESP8266-DEV|tutoriel ESP8266-DEV sous MicroPython]]. |
| + | |
| + | 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-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 == |