create Dockerfile and config for rpi udp strip

This commit is contained in:
simon
2019-05-04 13:55:24 +02:00
parent 99787f74a1
commit add2e0b1a4
5 changed files with 77 additions and 58 deletions
+50 -43
View File
@@ -1,9 +1,12 @@
try:
import RPi.GPIO as GPIO
demo = False
except ImportError:
print("Install RPi.GPIO")
print("!!! Install RPi.GPIO, running demo !!!")
demo = True
# setup PRi.GPIO
GPIO.setmode(GPIO.BCM)
if not demo:
GPIO.setmode(GPIO.BCM)
class RGBStrip:
STRIP_NAME = None
@@ -25,48 +28,52 @@ class RGBStrip:
self.GREEN_PIN = GREEN_PIN
self.BLUE_PIN = BLUE_PIN
# setup RED
GPIO.setup(self.RED_PIN, GPIO.OUT)
self.RED_PWM = GPIO.PWM(self.RED_PIN, self.hertz)
self.RED_PWM.start(0)
# setup GREEN
GPIO.setup(self.GREEN_PIN, GPIO.OUT)
self.GREEN_PWM = GPIO.PWM(self.GREEN_PIN, self.hertz)
self.GREEN_PWM.start(0)
# setup BLUE
GPIO.setup(self.BLUE_PIN, GPIO.OUT)
self.BLUE_PWM = GPIO.PWM(self.BLUE_PIN, self.hertz)
self.BLUE_PWM.start(0)
if not demo:
# setup RED
GPIO.setup(self.RED_PIN, GPIO.OUT)
self.RED_PWM = GPIO.PWM(self.RED_PIN, self.hertz)
self.RED_PWM.start(0)
# setup GREEN
GPIO.setup(self.GREEN_PIN, GPIO.OUT)
self.GREEN_PWM = GPIO.PWM(self.GREEN_PIN, self.hertz)
self.GREEN_PWM.start(0)
# setup BLUE
GPIO.setup(self.BLUE_PIN, GPIO.OUT)
self.BLUE_PWM = GPIO.PWM(self.BLUE_PIN, self.hertz)
self.BLUE_PWM.start(0)
def RGB(self,red,green,blue,brightness = 100):
#print(self.STRIP_NAME,red,green,blue)
if(red < 0):
red = 0
if(red > 255):
red = 255
if(green < 0):
green = 0
if(green > 255):
green = 255
if(blue < 0):
blue = 0
if(blue > 255):
blue = 255
if(brightness < 0):
brightness = 0
if(brightness > 100):
brightness = 100
self.RED_PWM.ChangeDutyCycle(round(red/255*100,2))
self.GREEN_PWM.ChangeDutyCycle(round(green/255*100,2))
self.BLUE_PWM.ChangeDutyCycle(round(blue/255*100,2))
if demo:
print(self.STRIP_NAME,red,green,blue)
else:
if(red < 0):
red = 0
if(red > 255):
red = 255
if(green < 0):
green = 0
if(green > 255):
green = 255
if(blue < 0):
blue = 0
if(blue > 255):
blue = 255
if(brightness < 0):
brightness = 0
if(brightness > 100):
brightness = 100
self.RED_PWM.ChangeDutyCycle(round(red/255*100,2))
self.GREEN_PWM.ChangeDutyCycle(round(green/255*100,2))
self.BLUE_PWM.ChangeDutyCycle(round(blue/255*100,2))
def stop(self):
self.RED_PWM.ChangeDutyCycle(0)
self.GREEN_PWM.ChangeDutyCycle(0)
self.BLUE_PWM.ChangeDutyCycle(0)
self.RED_PWM.stop()
self.GREEN_PWM.stop()
self.BLUE_PWM.stop()
if not demo:
self.RED_PWM.ChangeDutyCycle(0)
self.GREEN_PWM.ChangeDutyCycle(0)
self.BLUE_PWM.ChangeDutyCycle(0)
self.RED_PWM.stop()
self.GREEN_PWM.stop()
self.BLUE_PWM.stop()