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.