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
| |