Modifications

Sauter à la navigation Sauter à la recherche
5 262 octets ajoutés ,  18 novembre 2018 à 09:05
Ligne 1 : Ligne 1 : −
{{traduction}}
  −
   
== Introduction ==
 
== Introduction ==
 
MOD-RGB est une carte d'interface d'Olimex utilisant le port UEXT.
 
MOD-RGB est une carte d'interface d'Olimex utilisant le port UEXT.
Ligne 14 : Ligne 12 :  
* Cavalier pour alimenter la carte via UEXT
 
* Cavalier pour alimenter la carte via UEXT
 
* Connecteur UEXT
 
* Connecteur UEXT
 +
 +
=== Stabilité sous MicroPython ===
 +
{{ambox-stop|text=La communication I2C avec le module MOD-RGB peut présenter une instabilité sous MicroPython. [https://www.olimex.com/forum/index.php?topic=6721.0 Un ticket est ouvert sur les forums d'Olimex à ce sujet]. }}
    
== Matériel utilisé ==
 
== Matériel utilisé ==
Ligne 53 : Ligne 54 :     
{{parts-end}}
 
{{parts-end}}
 +
 +
== Raccordements ==
 +
Les raccordements sont effectués comme suit:
 +
 +
[[Fichier:MICROPYTHON-RGB-20.jpg|640px]]
 +
 +
* La carte MOD-RGB est utilisée avec un ruban LED analogique 12V.
 +
* Une alimentation 12V est utilisée avec sur la carte MOD-RGB pour alimenter le Ruban LED.
 +
* Le cavalier DMX_EN doit être ouvert (puisque nous travaillons en I2C).
 +
* Le cavalier UPWR_E est également ouvert.
 +
 +
{{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 modrgb ==
 +
Avant d'utiliser le script d'exemple, il est nécessaire de transférer la '''bibliothèque modrgb''' sur votre carte MicroPython.
 +
 +
La [https://github.com/mchobby/esp8266-upy/tree/master/modrgb bibliothèque '''modrgb''' 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|modrgb.py}} sur la carte MicroPython.
 +
* Copier le fichier {{fname|rgbfx.py}} sur la carte MicroPython.<br />Ce fichier n'est utile que si pour produire des effets lumineux.
 +
 +
Vous pouvez également transférer le script de test {{fname|test.py}} et {{fname|testfx.py}} sur la carte MicroPython.
 +
 +
La script {{fname|testoff.py}} permet de désactiver rapidement les sorties PWM.
 +
 +
Le script {{fname|stress.py}} permet de stresser le contrôleur en modifiant continuellement les couleurs.
 +
 +
== Code ==
 +
=== BUS I2C ===
 +
La carte MOD-RGB utilise le bus I2C (adresse par défaut est 0x20) 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}} ou même {{pl||MicroPython Pyboard}}.
 +
 +
=== Fonctionnalité du MOD-RGB ===
 +
 +
<syntaxhighlight lang="python"># Utilisation du MOD-RGB d'Olimex avec un ESP8266 sous MicroPython
 +
#
 +
# Shop: [UEXT RGB board (MOD-RGB)](http://shop.mchobby.be/product.php?id_product=1410)
 +
# Wiki: https://wiki.mchobby.be/index.php?title=MICROPYTHON-MOD-RGB
 +
 +
from machine import I2C, Pin
 +
from time import sleep_ms
 +
from modrgb import MODRGB
 +
 +
i2c = I2C( sda=Pin(2), scl=Pin(4) )
 +
rgb = MODRGB( i2c ) # adresse par defaut=0x20
 +
 +
# Un code couleur est composé à l'aide
 +
#    d'un tuple (r,g,b)
 +
# Fixer la couleur à rose
 +
rgb.set_rgb( (255, 102, 204) )
 +
sleep_ms( 5000 )
 +
 +
# Une simple suite de couleur
 +
red=(255,0,0)
 +
green=(0,255,0)
 +
blue=(0,0,255)
 +
color_suite = [red,green,blue,(255,255,255)]
 +
for c in color_suite:
 +
    rgb.set_rgb( c )
 +
    sleep_ms( 2000 )
 +
 +
rgb.black()
 +
print( "That's the end folks")</syntaxhighlight>
 +
 +
Le fichier d'exemple {{fname|textfx.py}} utilise la bibliothèque complémentaire {{fname|rgbfx.py}} pour proposer des animations lumineuses.
 +
 +
<syntaxhighlight lang="python"># Effet RGB avec MOD-RGB d'Olimex avec un ESP8266 sous MicroPython
 +
#
 +
# Shop: http://shop.mchobby.be/product.php?id_product=1410
 +
# Wiki: https://wiki.mchobby.be/index.php?title=MICROPYTHON-MOD-RGB
 +
 +
from machine import I2C, Pin
 +
from time import sleep_ms
 +
from modrgb import MODRGB
 +
import rgbfx
 +
 +
i2c = I2C( sda=Pin(2), scl=Pin(4) )
 +
rgb = MODRGB( i2c ) # adresse par défaut=0x20
 +
rgb.pwm( True )
 +
 +
# Couleur en rose
 +
rose = (255, 102, 204)
 +
rgb.set_rgb( rose )
 +
sleep_ms( 1000 )
 +
 +
# Effet de chandelle
 +
rgb.pwm( True )
 +
rgbfx.candle( rgb )
 +
rgb.pwm( False )
 +
sleep_ms( 1000 )
 +
 +
# Fade-in / Fade-out
 +
rgb.pwm( True )
 +
rgbfx.fade_inout( rgb, rose )
 +
rgb.pwm( False )
 +
sleep_ms( 1000 )
 +
 +
# Roue des couleurs cyclique
 +
rgb.pwm( True )
 +
rgbfx.cycle_wheel( rgb )
 +
rgb.pwm( False )
 +
sleep_ms( 1000 )
 +
 +
# Désactivé
 +
rgb.pwm( False )
 +
print( "That's the end folks")</syntaxhighlight>
 +
 +
== Changer l'adresse I2C de la carte MOD-RGB ==
 +
L'exemple suivant montre comment changer l'adresse courante de la carte MOD-RGB (0x20) vers 0x22.
 +
 +
ATTENTION: Il faut avoir le cavalier fermé pendant l'exécution de la commande {{fname|change_address()}} .
 +
 +
<syntaxhighlight lang="python"># Modifier l'adresse de MOD-RGB d'Olimex vers 0x22
 +
#
 +
# Shop: http://shop.mchobby.be/product.php?id_product=1410
 +
 +
from machine import I2C, Pin
 +
from modrgb import MODRGB
 +
 +
i2c = I2C( sda=Pin(2), scl=Pin(4) )
 +
brd = MODRGB( i2c, addr=0x20 )
 +
brd.change_address( 0x22 )</syntaxhighlight>
    
== Où acheter ==
 
== Où acheter ==
Ligne 59 : Ligne 201 :  
* {{pl|1412|UEXT Splitter}}
 
* {{pl|1412|UEXT Splitter}}
 
* {{pl|144|Câble console}}
 
* {{pl|144|Câble console}}
  −
https://github.com/mchobby/esp8266-upy/tree/master/modrgb
 
29 837

modifications

Menu de navigation