Tutorial

Table Of Contents
76
'''
Use the Threading module to create threads, inherit directly from threading.Thread, and
then override the __init__ method and the run method
'''
class RobotLight(threading.Thread):
def __init__(self, *args, **kwargs):
'''
Here initialize some settings about LED lights
'''
self.LED_COUNT = 16 # Number of LED pixels.
self.LED_PIN = 12 # GPIO pin connected to the pixels (18 uses PWM!).
self.LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz)
self.LED_DMA = 10 # DMA channel to use for generating signal (try 10)
self.LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest
self.LED_INVERT = False # True to invert the signal (when using NPN transistor
level shift)
self.LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53
'''
Set the brightness of the three RGB color channels, no need to change here, these
values will be automatically set after the subsequent call of the breathing light function
'''
self.colorBreathR = 0
self.colorBreathG = 0
self.colorBreathB = 0
self.breathSteps = 10
'''
The mode variable, 'none' will make the thread block and hang, the light will not
change;
'police' is a police light mode, red and blue flash alternately;
'breath' breathing light, you can set the specified color.
'''
self.lightMode = 'none' #'none' 'police' 'breath'
# Create NeoPixel object with appropriate configuration.
self.strip = Adafruit_NeoPixel(self.LED_COUNT, self.LED_PIN, self.LED_FREQ_HZ,
self.LED_DMA, self.LED_INVERT, self.LED_BRIGHTNESS,
self.LED_CHANNEL)
# Intialize the library (must be called once before other functions).
self.strip.begin()