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.
Cette page s’appuie sur une simulation Wokwi (plus de détails ici) :
- Simulation Wokwi ;
- configuration :
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
ucuq.HD44780_I2C(16, 2, ucuq.SoftI2C(6, 7))
ucuq.SSD1306_I2C(128, 64, ucuq.I2C(8,9))
ucuq.WS2812(8, 20)
servo = ucuq.PWM(21, freq=50).setNS(500000)
sevseg = ucuq.GPIO(2).high()
ucuq.PWM(5, freq=500).setNS(0)
ucuq.sleep(0.5)
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(8, 20).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(16, 2, ucuq.SoftI2C(6, 7))
lcd\
.putString(LINE_1)\
.moveTo(0,1)\
.putString(LINE_2)\
.backlightOn()
Pour d’autres exemples d’utilisation de UCUq, voir ici.