ported to CircuitPython
This commit is contained in:
parent
9cff521638
commit
4ff22ad5f1
3 changed files with 147 additions and 0 deletions
|
|
@ -0,0 +1,65 @@
|
|||
// Low power NeoPixel goggles example. Makes a nice blinky display
|
||||
// with just a few LEDs on at any time.
|
||||
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
#ifdef __AVR_ATtiny85__ // Trinket, Gemma, etc.
|
||||
#include <avr/power.h>
|
||||
#endif
|
||||
|
||||
#define PIN 0
|
||||
|
||||
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(32, PIN);
|
||||
|
||||
uint8_t mode = 0, // Current animation effect
|
||||
offset = 0; // Position of spinny eyes
|
||||
uint32_t color = 0xFF0000; // Start red
|
||||
uint32_t prevTime;
|
||||
|
||||
void setup() {
|
||||
#ifdef __AVR_ATtiny85__ // Trinket, Gemma, etc.
|
||||
if(F_CPU == 16000000) clock_prescale_set(clock_div_1);
|
||||
#endif
|
||||
pixels.begin();
|
||||
pixels.setBrightness(85); // 1/3 brightness
|
||||
prevTime = millis();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
uint8_t i;
|
||||
uint32_t t;
|
||||
|
||||
switch(mode) {
|
||||
|
||||
case 0: // Random sparks - just one LED on at a time!
|
||||
i = random(32);
|
||||
pixels.setPixelColor(i, color);
|
||||
pixels.show();
|
||||
delay(10);
|
||||
pixels.setPixelColor(i, 0);
|
||||
break;
|
||||
|
||||
case 1: // Spinny wheels (8 LEDs on at a time)
|
||||
for(i=0; i<16; i++) {
|
||||
uint32_t c = 0;
|
||||
if(((offset + i) & 7) < 2) c = color; // 4 pixels on...
|
||||
pixels.setPixelColor( i, c); // First eye
|
||||
pixels.setPixelColor(31-i, c); // Second eye (flipped)
|
||||
}
|
||||
pixels.show();
|
||||
offset++;
|
||||
delay(50);
|
||||
break;
|
||||
}
|
||||
|
||||
t = millis();
|
||||
if((t - prevTime) > 8000) { // Every 8 seconds...
|
||||
mode++; // Next mode
|
||||
if(mode > 1) { // End of modes?
|
||||
mode = 0; // Start modes over
|
||||
color >>= 8; // Next color R->G->B
|
||||
if(!color) color = 0xFF0000; // Reset to red
|
||||
}
|
||||
for(i=0; i<32; i++) pixels.setPixelColor(i, 0);
|
||||
prevTime = t;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
#
|
||||
# Kaleidoscope_Eyes_NeoPixel_LED_Goggles.py
|
||||
#
|
||||
import board
|
||||
import neopixel
|
||||
import time
|
||||
try:
|
||||
import urandom as random # for v1.0 API support
|
||||
except ImportError:
|
||||
import random
|
||||
|
||||
numpix = 32 # Number of NeoPixels
|
||||
pixpin = board.D0 # Pin where NeoPixels are connected
|
||||
|
||||
mode = 0 # Current animation effect
|
||||
offset = 0 # Position of spinny eyes
|
||||
|
||||
rgb_colors = ( [255,0,0], # red
|
||||
[0,255,0], # green
|
||||
[0,0,255] ) # blue
|
||||
|
||||
rgb_idx = 0 # index counter - primary color we are on
|
||||
color = rgb_colors[rgb_idx]
|
||||
prevtime = 0
|
||||
|
||||
pixels = neopixel.NeoPixel(pixpin, numpix, brightness=.3, auto_write=False)
|
||||
|
||||
def setup():
|
||||
prevtime = time.monotonic()
|
||||
|
||||
setup()
|
||||
|
||||
while True:
|
||||
i = 0
|
||||
t = 0
|
||||
|
||||
# Random sparks - just one LED on at a time!
|
||||
if ( mode == 0 ):
|
||||
i = random.randint(0, (numpix - 1))
|
||||
pixels[i] = color
|
||||
pixels.write()
|
||||
time.sleep(0.01)
|
||||
pixels[i] = (0,0,0)
|
||||
|
||||
# Spinny wheels (8 LEDs on at a time)
|
||||
elif ( mode == 1 ):
|
||||
for i in range(0, numpix):
|
||||
c = 0
|
||||
|
||||
# 4 pixels on...
|
||||
if (((offset + i) & 7) < 2):
|
||||
c = color
|
||||
|
||||
pixels[i] = c # First eye
|
||||
pixels[(numpix - 1) - i] = c # Second eye (flipped)
|
||||
|
||||
pixels.write()
|
||||
offset += 1
|
||||
time.sleep(0.05);
|
||||
|
||||
t = time.monotonic()
|
||||
|
||||
if ((t - prevtime) > 8): # Every 8 seconds...
|
||||
mode += 1 # Next mode
|
||||
if( mode > 1 ): # End of modes?
|
||||
mode = 0 # Start modes over
|
||||
|
||||
if ( rgb_idx > 2 ): # reset R-->G-->B rotation
|
||||
rgb_idx = 0
|
||||
|
||||
color = rgb_colors[rgb_idx] # next color assignment
|
||||
rgb_idx += 1
|
||||
|
||||
for i in range(0, numpix):
|
||||
pixels[i] = (0,0,0)
|
||||
|
||||
prevtime = t
|
||||
5
Kaleidoscope_Eyes_NeoPixel_LED_Goggles/README.md
Normal file
5
Kaleidoscope_Eyes_NeoPixel_LED_Goggles/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Kaleidoscope_Eyes_NeoPixel_LED_Goggles
|
||||
|
||||
Code to accompany this tutorial:
|
||||
|
||||
https://learn.adafruit.com/kaleidoscope-eyes-neopixel-led-goggles-trinket-gemma
|
||||
Loading…
Reference in a new issue