Python - UCUq

Démonstration en ligne de UCUq avec Python #

Voici quelques programmes utilisant UCUq pour piloter une simulation de différents composants connectés à un ESP32.

Si ce n’est pas déjà fait, lancer les deux application ci-dessous pour utiliser la simulation Wokwi (plus de détails ici) :

Cliquer sur les encarts ci-dessous et observer le résultat dans le simulateur. Les programmes sont lancés automatiquement.

Il est possible de modifier un programme directement dans le navigateur et/ou le relancer avec le bouton run.

Réinitialisation #

import ucuq lcd = ucuq.HD44780_I2C(ucuq.SoftI2C(6, 7), 4, 20).backlightOn() oled = ucuq.SSD1306_I2C(128, 64, ucuq.I2C(8,9)).fill(1).show() ring = ucuq.WS2812(20, 8).fill((255,)*3).write() servo = ucuq.PWM(21, freq=50).setNS(500000) sevseg = ucuq.GPIO(2).high() ucuq.PWM(5, freq=500).setNS(0) ucuq.sleep(0.5) lcd.backlightOff() ring.fill([0,0,0]).write() oled.fill(0).show() servo.setNS(1500000) sevseg.low()

GPIO (afficheur 7 segments) #

Allumage de l’afficheur 7 segments.

import ucuq ucuq.GPIO(2).high()

SSD1306 (OLED) #

Affichage d’un message sur le petit afficheur OLED en haut à gauche.

import ucuq, datetime ucuq.SSD1306_I2C(128, 64, ucuq.I2C(8, 9))\ .text('Hello, World!', 0, 15)\ .text(f"{datetime.datetime.now().strftime('%d/%m/%Y %H:%M')}", 0, 35)\ .show()

PWM (buzzer) #

Émission d’un son grâce au buzzer passif.

FREQ = 440 import ucuq buzzer = ucuq.PWM(5)\ .setFreq(FREQ)\ .setU16(32000) ucuq.sleep(1) buzzer.setU16(0)

WS2812 (DELs RGB) #

Allumage de l’anneau de DELs RGB et de la petite DEL RGB rattachée.

# 0 to 255 R = 255 G = 0 B = 255 import ucuq ucuq.WS2812(20, 8).fill([R,G,B]).write()

PWM (servo) #

Rotation du servomoteur.

ANGLE = 135 # 0 to 180 import ucuq ucuq.PWM(21)\ .setFreq(50)\ .setNS(int(ANGLE * 31000 / 3 + 540000)) # NOTA! 0°: .54 ms; 180°: 2.4 ms

HD44780 (LCD) #

Affichage d’un message sur l’afficheur LCD.

import datetime LINE_1 = "Hello, World!" LINE_2 = f"{datetime.datetime.now().strftime("%d/%m/%Y %H:%M")}" import ucuq lcd = ucuq.HD44780_I2C(ucuq.SoftI2C(6, 7), 4, 20) lcd\ .putString(LINE_1)\ .moveTo(0,1)\ .putString(LINE_2)

Pour d’autres exemples d’utilisation de UCUq, voir ici.