You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							76 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							76 lines
						
					
					
						
							2.2 KiB
						
					
					
				| # NeoPixel library strandtest example
 | |
| # Author: Tony DiCola (tony@tonydicola.com)
 | |
| #
 | |
| # Direct port of the Arduino NeoPixel library strandtest example.  Showcases
 | |
| # various animations on a strip of NeoPixels.
 | |
| import time
 | |
| 
 | |
| from neopixel import *
 | |
| 
 | |
| 
 | |
| # LED strip configuration:
 | |
| LED_COUNT      = 494      # Number of LED pixels.
 | |
| LED_PIN        = 18      # GPIO pin connected to the pixels (must support PWM!).
 | |
| LED_FREQ_HZ    = 800000  # LED signal frequency in hertz (usually 800khz)
 | |
| LED_DMA        = 10      # DMA channel to use for generating signal (try 10)
 | |
| LED_BRIGHTNESS = 255     # Set to 0 for darkest and 255 for brightest
 | |
| LED_INVERT     = False   # True to invert the signal (when using NPN transistor level shift)
 | |
| LED_CHANNEL    = 0
 | |
| LED_STRIP      = ws.SK6812_STRIP_RGBW
 | |
| #LED_STRIP      = ws.SK6812W_STRIP
 | |
| 
 | |
| class Led:
 | |
| 	leds = []
 | |
| 	def __init__(self, id, x, y):
 | |
| 		self.x = x
 | |
| 		self.y = y
 | |
| 		Led.leds.append(self)
 | |
| 
 | |
| 
 | |
| 
 | |
| def colorFromIntensity(intensity):
 | |
| 	#intensity should be 0-255
 | |
| 	if intensity>20:
 | |
| 		return Color(0,int(intensity),int(intensity/2),int(intensity/8)+20)
 | |
| 	else:
 | |
| 		return Color(0,0,0,20)
 | |
| 
 | |
| def intensityFromDistance(distance):
 | |
| 	if distance<0:
 | |
| 		return 0
 | |
| 	intensity = 255-(distance/3)
 | |
| 	if intensity < 0:
 | |
| 		return 0
 | |
| 	else:
 | |
| 		return intensity
 | |
| 
 | |
| # Main program logic follows:
 | |
| if __name__ == '__main__':
 | |
| 	# Create NeoPixel object with appropriate configuration.
 | |
| 	strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL, LED_STRIP)
 | |
| 	# Intialize the library (must be called once before other functions).
 | |
| 	strip.begin()
 | |
| 
 | |
| 	print ('Press Ctrl-C to quit.')
 | |
| 
 | |
| 	with open("leds.txt", "r") as infile:
 | |
| 		for line in infile:
 | |
| 			 entry = [int(x) for x in line.split(',')]
 | |
| 			 Led(entry[0], entry[1], entry[2])
 | |
| 
 | |
| 	# all LEDs now ready
 | |
| 	edge = -500
 | |
| 	t = 0
 | |
| 	while True:
 | |
| 		t+=1
 | |
| 		for i, led in enumerate(Led.leds):
 | |
| 			if t % 2 ==0:
 | |
| 				strip.setPixelColor(i, Color(0b10101010,
 | |
|                                                              0b10101010,
 | |
|                                                              0b10101010,
 | |
|                                                              0b10101010))
 | |
| 			else:
 | |
| 				strip.setPixelColor(i, Color(0,0,0,0))
 | |
| 		strip.show()
 | |
| 		time.sleep(1)
 |