```python= import neopixel from random import randrange from machine import Pin, ADC from time import sleep led = 16 np = neopixel.NeoPixel(Pin(5),led) led1 = 16 np1 = neopixel.NeoPixel(Pin(17),led1) led2 = 16 np2 = neopixel.NeoPixel(Pin(16),led2) led3 = 16 np3 = neopixel.NeoPixel(Pin(4),led3) nakl = (randrange(255),randrange(255),randrange(255)) nakl1 = (randrange(255),randrange(255),randrange(255)) NUM_LED = 16 sz = [4,8,12,16] n1 = 16 pot = ADC(Pin(25)) leds = neopixel.NeoPixel(Pin(15),n1) t1 = 0 while True: t = (randrange(255),randrange(255),randrange(255)) for i in range(led): np[i] = t np.write() sleep(0.5) for i in range(led): np[i] = [0,0,0] np.write() sleep(0.1) if t1 >= led1: t1 = 0 for p in range(led1): np1[p] = [0,0,0] np1[t1] = [155,155,155] t1 = t1 + 1 np1.write() sleep(0.001) t2 = (randrange(255),randrange(255),randrange(255)) for k in range(led2): np2[k] = t2 np2.write() sleep(0.01) for z in range(led3): np3[z] = nakl np3.write() sleep(0.02) for z in range(led3 -1,-1,-1): np3[z] = nakl1 np3.write() sleep(0.02) for m in range(n1): leds[m-1] = [0, 0, 0] leds[m] = [150, 500, 50] sleep(max(pot.read() / 1000, 0.1)) leds.write() ``` # Poenostavljena koda: ```python= import neopixel from random import randrange from machine import Pin, ADC from time import sleep def set_leds_color(strip, color): for i in range(NUM_LED): strip[i] = color strip.write() def blink_random_color(strip, delay_on, delay_off): color = (randrange(255), randrange(255), randrange(255)) set_leds_color(strip, color) sleep(delay_on) set_leds_color(strip, (0, 0, 0)) sleep(delay_off) NUM_LED = 16 np = [neopixel.NeoPixel(Pin(pin), NUM_LED) for pin in [5, 17, 16, 4]] pot = ADC(Pin(25)) t1 = 0 while True: blink_random_color(np[0], 0.5, 0.1) if t1 >= NUM_LED: t1 = 0 set_leds_color(np[1], (0, 0, 0)) np[1][t1] = (155, 155, 155) t1 += 1 np[1].write() sleep(0.001) blink_random_color(np[2], 0.01, 0) gradient_color = (randrange(255), randrange(255), randrange(255)) for z in range(NUM_LED): np[3][z] = gradient_color if z % 2 == 0 else (gradient_color[2], gradient_color[1], gradient_color[0]) np[3].write() sleep(max(pot.read() / 1000, 0.02)) ``` # DHT SENZOR ```python= import neopixel from machine import Pin import dht NUM_LEDS = 30 # Število LED diod na traku PIN_NUM = 5 # Pin, na katerega je priključen LED trak np = neopixel.NeoPixel(Pin(PIN_NUM), NUM_LEDS) dht_sensor = dht.DHT22(Pin(4)) # Nadomestite s številko pina, na katerega je priključen DHT22 def update_color(): dht_sensor.measure() temp = dht_sensor.temperature() humidity = dht_sensor.humidity() # Spremenite formulo za barvo glede na vaše potrebe return (int(temp * 2), int(humidity * 2), 0) while True: np.fill(update_color()) np.write() ``` # VSE V ENEM Utripajoči LED-pikseli (2 točki): Pikseli na traku morajo utripati namerno. Kroženje svetlobe (2 točki): Svetloba na traku mora krožiti okoli LED-kroga. Spreminjanje barve LED-pikselov: Naključno spreminjanje barv (1 točka). Logično spreminjanje barv (2 točki): Barva LED-pikselov je odvisna od prejšnje barve naslednjega piksla. Spreminjanje smeri animacije (3 točke): Animacija spreminja svojo smer glede na poljuben dejavnik.) ```python= import neopixel from machine import Pin from time import sleep from random import randrange NUM_LEDS = 30 PIN_NUM = 5 np = neopixel.NeoPixel(Pin(PIN_NUM), NUM_LEDS) def utripajoci_led(): for i in range(NUM_LEDS): np[i] = (randrange(255), randrange(255), randrange(255)) np.write() sleep(0.5) for i in range(NUM_LEDS): np[i] = (0, 0, 0) np.write() sleep(0.5) def krozenje_svetlobe(): for i in range(NUM_LEDS): np[i] = (255, 255, 255) if i > 0: np[i - 1] = (0, 0, 0) np.write() sleep(0.1) def spreminjanje_barv(logicno=False): predhodna_barva = (0, 0, 0) for i in range(NUM_LEDS): nova_barva = (randrange(255), randrange(255), randrange(255)) np[i] = predhodna_barva if logicno else nova_barva predhodna_barva = nova_barva np.write() sleep(0.1) def spreminjanje_smeri_animacije(dejavnik): obratna_smer = dejavnik range_func = range(NUM_LEDS-1, -1, -1) if obratna_smer else range(NUM_LEDS) for i in range_func: np[i] = (255, 0, 0) np.write() sleep(0.1) np[i] = (0, 0, 0) while True: utripajoci_led() krozenje_svetlobe() spreminjanje_barv(logicno=True) spreminjanje_smeri_animacije(dejavnik=randrange(2)) ``` # PREJŠNJI TEST:(3) ------------------------------------------------------------------------- utripajoči led pixli - led pixli na traku utripajo pomeni da se lucka prizge uganse prizge uganse... Zrcaljenje animacije - animacija naj bo simetricna(ali levo ali desno, ali gor ali dol) Spreminajnje barv led pixlov - glede na predhodni pixel(gradient) Izmenicne barve LED pixlov - v animaciji je vsak drugi pixel pobarvan z isto barvo. Vsak prvi pa isto s svojo barvo(recimo ledica 1-rdeča, ledica 2-modra,ledica 3-rdeca, ledica 4-modra...) Nadzor močnosti barve z uporao potenciometra Kontrola animacije z gumbom(animacija se zacne od začetka ob pritisku na gumb) Animaciaj spreminja hitrost glede na DHT22 senzor(od vlage ali teperature) To mi je naredu chatgpt: ```python from machine import Pin, ADC import neopixel import dht import time # Nastavitve pinov LED_PIN = 15 # Pin, na katerega so povezani LED trakovi BUTTON_PIN = 14 # Pin, na katerega je povezan gumb POT_PIN = 32 # Pin, na katerega je povezan potenciometer DHT_PIN = 4 # Pin, na katerega je povezan senzor DHT22 DHT_SENSOR_TYPE = dht.DHT22 # Nastavitve LED trakov NUM_LEDS = 10 # Število LED pikslov PIXEL_COLORS = [(255, 0, 0), (0, 0, 255)] # Barve LED pikslov BRIGHTNESS = 0.5 # Privzeta svetlost LED pikslov (0-1) # Inicializacija komponent leds = neopixel.NeoPixel(Pin(LED_PIN), NUM_LEDS) button = Pin(BUTTON_PIN, Pin.IN, Pin.PULL_UP) pot = ADC(Pin(POT_PIN)) dht_sensor = dht.DHT22(Pin(DHT_PIN)) # Funkcija za branje vrednosti potenciometra in pretvorbo v svetlost def read_pot_brightness(): return pot.read_u16() / 65535 # Vrednost potenciometra normaliziramo na obseg 0-1 # Funkcija za branje temperature iz senzorja DHT22 def read_temperature(): dht_sensor.measure() return dht_sensor.temperature() # Funkcija za branje vlage iz senzorja DHT22 def read_humidity(): dht_sensor.measure() return dht_sensor.humidity() # Funkcija za izmenične barve LED pikslov def alternate_colors(): for i in range(NUM_LEDS): if i % 2 == 0: leds[i] = PIXEL_COLORS[0] leds.write() else: leds[i] = PIXEL_COLORS[1] leds.write() # Funkcija za zrcaljenje animacije def mirror_animation(): for i in range(NUM_LEDS): leds[i] = PIXEL_COLORS[i % len(PIXEL_COLORS)] leds.write() # Funkcija za utripajoči led piksli def flashing_pixels(): while True: for color in PIXEL_COLORS: for i in range(NUM_LEDS): leds[i] = color leds.write() time.sleep(0.5) # Funkcija za nadzor močnosti barve z uporabo potenciometra def control_brightness(): while True: brightness = read_pot_brightness() leds.brightness(brightness) time.sleep(0.1) # Funkcija za nadzor animacije z gumbom def control_animation(): while True: if not button.value(): flashing_pixels() # Na pritisni gumb zaženemo utripajoče piksle # Funkcija za spreminjanje hitrosti animacije glede na temperaturo def control_speed(): while True: temperature = read_temperature() # Prilagodite hitrost animacije glede na temperaturo delay = int(1000 / (temperature + 1)) # Lahko prilagodite glede na potrebe time.sleep_ms(delay) # Začetek izvajanja kode flashing_pixels() mirror_animation() # Začetna animacija (na primer zrcaljena animacija) control_animation() # Začne nadzor animacije z gumbom ``` par stvari mi dela ostalo ne tam k pise #zacetek izvajanja kode das ime funkcije, v funkcije pa dodas se leds.write() # OD DORIANA ```python #utripajoči led pixli # - led pixli na traku utripajo pomeni da se lucka prizge uganse prizge uganse... # Zrcaljenje animacije # - animacija naj bo simetricna(ali levo ali desno, ali gor ali dol) #Spreminajnje barv led pixlov # - glede na predhodni pixel(gradient) # Izmenicne barve LED pixlov # - v animaciji je vsak drugi pixel pobarvan z isto barvo. Vsak prvi pa isto s svojo barvo(recimo ledica #1-rdeča, ledica 2-modra,ledica 3-rdeca, ledica 4-modra...) # Nadzor močnosti barve z uporao potenciometra # # Kontrola animacije z gumbom(animacija se zacne od začetka ob pritisku na gumb) # Animaciaj spreminja hitrost glede na DHT22 senzor(od vlage ali teperature) from machine import Pin, ADC from time import sleep import neopixel import random nl = 16 led = neopixel.NeoPixel(Pin(18), nl) speed = ADC(Pin(32)) btn = Pin(2, Pin.IN, Pin.PULL_UP) def off(): led.fill([0,0,0]) led.write() def fill(): led.fill([255,0,0]) led.write() def zrcaljenje(): zb = [] for i in range(16): if i == 0 or i == 8: led[i] = (255, 0, 0) led.write() zb.append((255, 0, 0)) sleep(0.2) elif i < 8: led[i] = (0, 255, 0) led.write() zb.append((0, 255, 0)) sleep(0.2) else: led[i] = (0, 0, 255) led.write() zb.append((0, 0, 255)) sleep(0.2) for i in range(5): off() sleep(0.5) for i in range(16): led[i] = zb[i] led.write() sleep(0.5) while True: for i in range(5): fill() sleep(0.5) off() sleep(0.5) zrcaljenje() sleep(5) ``` # jernej poglj u grupo z alenam za test mas not cis ucpodi