From 52e4bec41101c7f1308258535a11121f5ffc2589 Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Fri, 16 Feb 2018 20:05:50 -0700 Subject: [PATCH] ported to CircuitPython --- .../Animated_NeoPixel_Glow_Fur_Scarf.ino | 115 +++++++++++++ .../Animated_NeoPixel_Glow_Fur_Scarf.py | 154 ++++++++++++++++++ Animated_NeoPixel_Glow_Fur_Scarf/README.md | 4 + Breath_Tester/Breath_Tester.fzz | Bin 0 -> 61247 bytes 4 files changed, 273 insertions(+) create mode 100644 Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.ino create mode 100644 Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.py create mode 100644 Animated_NeoPixel_Glow_Fur_Scarf/README.md create mode 100644 Breath_Tester/Breath_Tester.fzz diff --git a/Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.ino b/Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.ino new file mode 100644 index 000000000..018295dbd --- /dev/null +++ b/Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.ino @@ -0,0 +1,115 @@ +#include + +#define LED_PIN 1 // which pin your pixels are connected to +#define NUM_LEDS 78 // how many LEDs you have +#define BRIGHTNESS 200 // 0-255, higher number is brighter. +#define SATURATION 255 // 0-255, 0 is pure white, 255 is fully saturated color +#define SPEED 10 // How fast the colors move. Higher numbers = faster motion +#define STEPS 2 // How wide the bands of color are. 1 = more like a gradient, 10 = more like stripes +#define BUTTON_PIN 2 // button is connected to pin 2 and GND + +#define COLOR_ORDER GRB // Try mixing up the letters (RGB, GBR, BRG, etc) for a whole new world of color combinations + +CRGB leds[NUM_LEDS]; +CRGBPalette16 currentPalette; +CRGBPalette16 targetPalette( PartyColors_p ); +TBlendType currentBlending; +int ledMode = 0; + + +//FastLED comes with several palettes pre-programmed. I like purple a LOT, and so I added a custom purple palette. + +const TProgmemPalette16 PurpleColors_p PROGMEM = +{ + CRGB::Purple, + CRGB::Purple, + CRGB::MidnightBlue, + CRGB::MidnightBlue, + + CRGB::Purple, + CRGB::Purple, + CRGB::BlueViolet, + CRGB::BlueViolet, + + CRGB::DarkTurquoise, + CRGB::DarkTurquoise, + CRGB::DarkBlue, + CRGB::DarkBlue, + + CRGB::Purple, + CRGB::Purple, + CRGB::BlueViolet, + CRGB::BlueViolet +}; + + +unsigned long keyPrevMillis = 0; +const unsigned long keySampleIntervalMs = 25; +byte longKeyPressCountMax = 80; // 80 * 25 = 2000 ms +byte longKeyPressCount = 0; + +byte prevKeyState = HIGH; // button is active low + +void setup() { + delay( 2000 ); // power-up safety delay + FastLED.addLeds(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); + FastLED.setBrightness( BRIGHTNESS ); + currentBlending =LINEARBLEND; + pinMode(BUTTON_PIN, INPUT_PULLUP); +} + +void loop() { + + byte currKeyState = digitalRead(BUTTON_PIN); + + if ((prevKeyState == LOW) && (currKeyState == HIGH)) { + shortKeyPress(); + } + prevKeyState = currKeyState; + + static uint8_t startIndex = 0; + startIndex = startIndex + 1; /* motion speed */ + + switch (ledMode) { + + case 0: + currentPalette = HeatColors_p; //Red & Yellow, Fire Colors + break; + case 1: + currentPalette = ForestColors_p; //Foresty greens and yellows + break; + case 2: + currentPalette = OceanColors_p; //Oceans are pretty and filled with mermaids + break; + case 3: + currentPalette = PurpleColors_p; //My custom palette from above + break; + case 4: + currentPalette = RainbowColors_p; //All the colors! + break; + case 5: + currentPalette = RainbowStripeColors_p; //Rainbow stripes + break; + case 6: + currentPalette = PartyColors_p; //All the colors except the greens, which make people look a bit washed out + break; + } + + FillLEDsFromPaletteColors( startIndex); + FastLED.show(); + FastLED.delay(1000 / SPEED); +} + +void FillLEDsFromPaletteColors( uint8_t colorIndex) { + for( int i = 0; i < NUM_LEDS; i++) { + leds[i] = ColorFromPalette( currentPalette, colorIndex, BRIGHTNESS, currentBlending); + colorIndex += STEPS; + } +} + +void shortKeyPress() { + ledMode++; + if (ledMode > 6) { + ledMode=0; + } +} diff --git a/Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.py b/Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.py new file mode 100644 index 000000000..55c10edb3 --- /dev/null +++ b/Animated_NeoPixel_Glow_Fur_Scarf/Animated_NeoPixel_Glow_Fur_Scarf.py @@ -0,0 +1,154 @@ +import board +import neopixel +import time +from digitalio import DigitalInOut, Direction, Pull +import adafruit_fancyled.adafruit_fancyled as fancy + +led_pin = board.D1 # which pin your pixels are connected to +num_leds = 78 # how many LEDs you have +brightness = 1.0 # 0-1, higher number is brighter +saturation = 255 # 0-255, 0 is pure white, 255 is fully saturated color +steps = 0.01 # how wide the bands of color are. +offset = 0 # cummulative steps +fadeup = True # start with fading up - increase steps until offset reaches 1 +index = 8 # midway color selection +blend = True # color blending between palette indices + +# initialize list with all pixels off +palette = [ 0 ] * num_leds + +# Declare a NeoPixel object on led_pin with num_leds as pixels +# No auto-write. +# Set brightness to max. +# We will be using FancyLED's brightness control. +strip = neopixel.NeoPixel(led_pin, num_leds, brightness=1, auto_write=False) + +# button setup +button = DigitalInOut(board.D2) +button.direction = Direction.INPUT +button.pull = Pull.UP +prevkeystate = False +ledmode = 0 # button press counter, switch color palettes + +# FancyLED allows for assigning a color palette using these formats: +# * The first (5) palettes here are mixing between 2-elements +# * The last (3) palettes use a format identical to the FastLED Arduino Library +# see FastLED - colorpalettes.cpp +forest = [ fancy.CRGB( 0, 255, 0 ), # green + fancy.CRGB( 255, 255, 0) ] # yellow + +ocean = [ fancy.CRGB( 0, 0, 255 ), # blue + fancy.CRGB( 0, 255, 0 ) ] # green + +purple = [ fancy.CRGB( 160, 32, 240 ), # purple + fancy.CRGB( 238, 130, 238 ) ] # violet + +all_colors = [ fancy.CRGB( 0, 0, 0 ), # black + fancy.CRGB( 255, 255, 255 ) ] # white + +washed_out = [ fancy.CRGB( 0, 0, 0 ), # black + fancy.CRGB( 255, 0, 255 ) ] # purple + +rainbow = [ 0xFF0000, 0xD52A00, 0xAB5500, 0xAB7F00, + 0xABAB00, 0x56D500, 0x00FF00, 0x00D52A, + 0x00AB55, 0x0056AA, 0x0000FF, 0x2A00D5, + 0x5500AB, 0x7F0081, 0xAB0055, 0xD5002B ] + +rainbow_stripe= [ 0xFF0000, 0x000000, 0xAB5500, 0x000000, + 0xABAB00, 0x000000, 0x00FF00, 0x000000, + 0x00AB55, 0x000000, 0x0000FF, 0x000000, + 0x5500AB, 0x000000, 0xAB0055, 0x000000 ] + +heat_colors = [ 0x330000, 0x660000, 0x990000, 0xCC0000, 0xFF0000, + 0xFF3300, 0xFF6600, 0xFF9900, 0xFFCC00, 0xFFFF00, + 0xFFFF33, 0xFFFF66, 0xFFFF99, 0xFFFFCC ] + + +def wheel(pos): + + # Input a value 0 to 255 to get a color value. + # The colours are a transition r - g - b - back to r. + if (pos < 0) or (pos > 255): + return (0, 0, 0) + if (pos < 85): + return (int(pos * 3), int(255 - (pos*3)), 0) + elif (pos < 170): + pos -= 85 + return (int(255 - pos*3), 0, int(pos*3)) + else: + pos -= 170 + return (0, int(pos*3), int(255 - pos*3)) + +def remapRange(value, leftMin, leftMax, rightMin, rightMax): + + # this remaps a value from original (left) range to new (right) range + # Figure out how 'wide' each range is + leftSpan = leftMax - leftMin + rightSpan = rightMax - rightMin + + # Convert the 0-1 range into a value in the right range. + return int(rightMin + (valueScaled * rightSpan)) + +def shortkeypress(color_palette): + + color_palette += 1 + + if ( color_palette > 6): + color_palette = 1 + + return ( color_palette ) + +while True: + + # check for button press + currkeystate = button.value + + # button press, move to next pattern + if ( ( prevkeystate == False ) and ( currkeystate == True ) ): + ledmode = shortkeypress(ledmode) + + # save button press state + prevkeystate = currkeystate + + # Fire Colors [ HEAT ] + if ( ledmode == 1 ): + palette = heat_colors + + # Forest + elif ( ledmode == 2 ): + palette = forest + + # Ocean + elif ( ledmode == 3 ): + palette = ocean + + # Purple Lovers + elif ( ledmode == 4 ): + palette = purple + + # All the colors! + elif ( ledmode == 5 ): + palette = rainbow + + # Rainbow stripes + elif ( ledmode == 6 ): + palette = rainbow_stripe + + # All the colors except the greens, washed out + elif ( ledmode == 7 ): + palette = washed_out + + for i in range(num_leds): + color = fancy.palette_lookup(palette, offset + i / num_leds) + color = fancy.gamma_adjust(color, brightness=brightness) + strip[i] = color.pack() + strip.show() + + if ( fadeup ): + offset += steps + if ( offset >= 1 ): + fadeup = False + else: + offset -= steps + if ( offset <= 0 ): + fadeup = True diff --git a/Animated_NeoPixel_Glow_Fur_Scarf/README.md b/Animated_NeoPixel_Glow_Fur_Scarf/README.md new file mode 100644 index 000000000..1794dc218 --- /dev/null +++ b/Animated_NeoPixel_Glow_Fur_Scarf/README.md @@ -0,0 +1,4 @@ +# Animated_NeoPixel_Glow_Fur_Scarf + +Code to accompany this tutorial: +https://learn.adafruit.com/animated-neopixel-gemma-glow-fur-scarf diff --git a/Breath_Tester/Breath_Tester.fzz b/Breath_Tester/Breath_Tester.fzz new file mode 100644 index 0000000000000000000000000000000000000000..12158bcd16e19b171752f3baccf6b99892642947 GIT binary patch literal 61247 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