Heute möchte ich euch mal zeigen wie man ein Neopixel Rundlicht mit einem Raspberry Pi (w) kontrollieren und ansteuern kann.
Für ein Kunde musste ich ein Gerät zusammenbauen das ihn mit einem Lichteffekt darüber informiert, wenn in seinem Online Shop eine neue Bestellung eingegangen ist.
Aus diesem Grund zeige ich heute wie ihr so ein rundes Neopixel mit einem Raspberry Pico kontrollieren könnt. Natürlich könnt ihr auch ein normales Raspberry Pi 4 oder 5 verwenden oder sonst ein anderes Model. Ihr müsst dann halt einfach schauen, dass ihr beim Zusammenbau den korrekten Daten-GPIO erwischt und kein Strom-Pin 😛 Das wäre ja ein wenig ungeschickt.
Hier zeige ich euch mal wie so ein Aufbau genau aussieht – hier mal mit 1 einzelnen Neopixel Ringlicht oder dann auch eines mit 2.
Natürlich kann man auch 2 Neopixel gleichzeitig ansteuern und so sieht dann der Aufbau aus
Video
Python
Wenn ihr natürlih alle andere Pins verwendet, dann müsst ihr euer Script auch anpassen. Sobald das Script steht könnt ihr es erweitern mit anderen Farben, anderer Helligkeit oder oder oder.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | import neopixel from machine import Pin import time import random neo1_ws_pin = 0 neo2_ws_pin = 15 led_num = 12 BRIGHTNESS = 0.05 # Adjust the brightness (0.01 - 1.0) # Liste der Farben colors = [(255, 0, 0), # Rot (0, 0, 255), # Blau (0, 255, 0), # Grün (255, 255, 0) # Gelb ] neoRing1 = neopixel.NeoPixel(Pin(neo1_ws_pin), led_num) neoRing2 = neopixel.NeoPixel(Pin(neo2_ws_pin), led_num) def set_brightness(color): r, g, b = color r = int(r * BRIGHTNESS) g = int(g * BRIGHTNESS) b = int(b * BRIGHTNESS) return (r, g, b) # Function to turn off all LEDs def turn_off(): neoRing1.fill((0, 0, 0)) # Set all LEDs to black neoRing1.write() neoRing2.fill((0, 0, 0)) # Set all LEDs to black neoRing2.write() def main(): try: while True: # Turn off all LEDs turn_off() # Loop through each LED and light up one LED at a time for i in range(led_num): # Turn off all LEDs turn_off() random_color = random.choice(colors) # Set the color of the current LED neoRing1[i] = set_brightness(random_color) neoRing2[i] = set_brightness(random_color) # Write the colors to the LEDs neoRing1.write() neoRing2.write() # Delay before lighting up the next LED time.sleep(0.5) except KeyboardInterrupt: turn_off() # Turn off LEDs before exiting if __name__ == "__main__": main() |
0 Kommentare