diff --git a/1 - Code/hl3.py b/1 - Code/hl3.py index 077170385e60bd7442b47142f06df020825b3f09..698fb53eb34e84c675e44707d09654ac5cc32bfd 100644 --- a/1 - Code/hl3.py +++ b/1 - Code/hl3.py @@ -2,7 +2,7 @@ from machine import Pin from neopixel import NeoPixel import utime -nb_line = 16 +nb_line = 8 nb_row = 8 gpio_neopixel = 0 @@ -258,4 +258,105 @@ def afficher_texte(text, color, speed): for step in range(h_offset + len(text) * (width + spacewidth) + 1): for i in range(nb_row): printColumn(step + i, i, text) - utime.sleep(speed) \ No newline at end of file + utime.sleep(speed) + +def christmas(): + + color = 0x3 + prime1=439 + prime2=17005013 + + masque_blanc= 0x0f0f0f # setup LEDs intensity + masque_rouge=0x0f0000 + masque_bleu=0x00000f + + period = .01 + + # Balles glissantes + for r in range(100): + color = (color * prime1) % prime2 + # horizontale et verticale + if color&4 == 4: + for i in range(8): + temp = (4-int(abs(4.5-i))+1) + temp = max(3-2*int(temp/2),0) + for j in range(temp,8-temp): + if (color&3 == 0): + diagonal=min(int((i+j)),7) + elif (color&3 == 1): + matrix.set_led(i,j, color&masque_blanc) + elif (color&3 == 2): + matrix.set_led(7-i,j, color&masque_blanc) + else: + matrix.set_led(j,7-i, color&masque_blanc) + utime.sleep(period) + + # Diagonale + else: + for k in range(2,9): + for i in range(k+1): + if (4.5-(k-i))**2+(4.5-i)**2 < 5**2: + if (color&3 == 0): + matrix.set_led((k-i),(i), color&masque_blanc) + elif (color&3 == 1): + matrix.set_led((i),(k-i), color&masque_blanc) + elif (color&3 == 2): + matrix.set_led((7-(k-i)),(i), color&masque_blanc) + else: + matrix.set_led((i),7-(k-i), color&masque_blanc) + utime.sleep(period) + + + # Clear the matrix + matrix.clear(0) + + # Couleurs clignote + period = .5 + for r in range(20): + color = (color * prime1) % prime2 + for i in range(8): + for j in range(8): + matrix.set_led(j,i,color*(i+1)*(j+11) & masque_blanc) + utime.sleep(period) + matrix.clear(0) + utime.sleep(period/10) + + # Bleu aléatoire + period = .05 + for r in range(20): + color = (color * prime1) % prime2 + for i in range(8): + for j in range(8): + matrix.set_led(j,i,color*(i+1)*(j+11) >> 4 & masque_bleu) + utime.sleep(period) + + # Couleurs aleatoire + period = .05 + for r in range(10): + color = (color * prime1) % prime2 + for i in range(8): + for j in range(8): + matrix.set_led(j,i,color*(i+1)*(j+11) & masque_blanc) + utime.sleep(period) + + # Rouge aléatoire + period = .05 + for r in range(10): + color = (color * prime1) % prime2 + for i in range(8): + for j in range(8): + matrix.set_led(j,i,color*(i+1)*(j+11) & masque_rouge) + utime.sleep(period) + + # Lignes + period = .05 + for r in range(10): + color = (color * prime1) % prime2 + for i in range(8): + matrix.set_led(color%8,i,color*(i+1)*(j+11) & masque_blanc) + utime.sleep(period) + matrix.clear(0) + for i in range(8): + matrix.set_led(i,color%8,color*(i+1)*(j+11) & masque_blanc) + utime.sleep(period) + matrix.clear(0) \ No newline at end of file diff --git a/1 - Code/main.py b/1 - Code/main.py index 58feec519b74bb715826fb45b33dd4be1cf5c486..4338e9aa31fd55e655b454109d8ca9ad91bbab54 100644 --- a/1 - Code/main.py +++ b/1 - Code/main.py @@ -1,4 +1,4 @@ from hl3 import * -import time -afficher_texte("Hello world!", color.ORANGE, 0.1) +while True: + christmas() diff --git a/2 - Reports/Michael_Divia.md b/2 - Reports/Michael_Divia.md index 2932f92f3569cfc027e960f7efc914c7b0ed3a4c..2defc7a39b6cc6f23a4cc86a9db2b732a74722cd 100644 --- a/2 - Reports/Michael_Divia.md +++ b/2 - Reports/Michael_Divia.md @@ -42,7 +42,11 @@ J'ai ensuite pris du temps afin de souder des pin à la matrice de LED afin de f ## Mardi, 18 Juin 2024 -J'ai commencé par créer `hl3.py` afin d'avoir un fichier librairie avec toutes les fonctions que nous allons implémentées. Je me suis ensuite attelé à la finalisation de la fonction `matrix`. J'ai aussi profité d'implémenter toute les couleurs que nous devions implémentées d'après la documentation. J'ai ensuite enchaîné avec l'ajout de la fonction `set_line`,`set_column`, `set_led`, `get_led` puis, avec l'aide de Gaspard, nous avons implémenter la fonction `afficher_texte`. +J'ai commencé par créer `hl3.py` afin d'avoir un fichier librairie avec toutes les fonctions que nous allons implémentées. Je me suis ensuite attelé à la finalisation de la fonction `matrix`. + +J'ai aussi profité d'implémenter toute les couleurs que nous devions implémentées d'après la documentation. J'ai ensuite enchaîné avec l'ajout de la fonction `set_line`,`set_column`, `set_led`, `get_led` puis, avec l'aide de Gaspard, nous avons implémenter le début de la fonction `afficher_texte`. + +J'ai ensuite créer un fonction de démo `christmas` afin de démontré le bon fonctionnement des LEDs. Cette fonction est une ré-implémentation de la fonction de M. Gluck que vous pouvez trouver [ici](https://gitedu.hesge.ch/cores/projects/hepialight2/hepialight2-examples/-/blob/02261b68aad94dd52c6b35fdb83ed1d54028061b/peripherals/display/christmas_ball.py). # Creators