Created
          May 19, 2016 21:13 
        
      - 
      
- 
        Save dries007/26a2f36770c28500b912b0ecf1276129 to your computer and use it in GitHub Desktop. 
    Micropython esp2866 (ESP12-E) Neopixel demo
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | import time | |
| from machine import Pin | |
| from esp import neopixel_write | |
| # From colorsys.py | |
| def hsv_to_rgb(h, s, v): | |
| if s == 0.0: | |
| return v, v, v | |
| i = int(h*6.0) | |
| f = (h*6.0) - i | |
| p = v*(1.0 - s) | |
| q = v*(1.0 - s*f) | |
| t = v*(1.0 - s*(1.0-f)) | |
| i = i%6 | |
| if i == 0: | |
| return v, t, p | |
| if i == 1: | |
| return q, v, p | |
| if i == 2: | |
| return p, v, t | |
| if i == 3: | |
| return p, q, v | |
| if i == 4: | |
| return t, p, v | |
| if i == 5: | |
| return v, p, q | |
| # Fixed version from MicroPython | |
| class NeoPixel: | |
| def __init__(self, pin, n): | |
| self.pin = pin | |
| self.n = n | |
| self.buf = bytearray(n * 3) | |
| self.pin.init(pin.OUT) | |
| def __setitem__(self, index, val): | |
| r, g, b = val | |
| self.buf[index * 3] = g | |
| self.buf[index * 3 + 1] = r | |
| self.buf[index * 3 + 2] = b | |
| def __getitem__(self, index): | |
| i = index * 3 | |
| return self.buf[i + 1], self.buf[i], self.buf[i + 2] | |
| def fill(self, color): | |
| r, g, b = color | |
| for i in range(len(self.buf) / 3): | |
| self.buf[i * 3] = g | |
| self.buf[i * 3 + 1] = r | |
| self.buf[i * 3 + 2] = b | |
| def write(self): | |
| neopixel_write(self.pin, self.buf, True) | |
| pin0 = Pin(0, Pin.IN) | |
| min_delay = 0 | |
| max_delay = 150 | |
| N = 64 | |
| def set_rainbow(np, N): | |
| for x in range(N): | |
| r, g, b = hsv_to_rgb(x*1.0/N, 1, 1) | |
| np[x] = (int(r*255), int(g*255), int(b*255)) | |
| def shift(N=N, min_delay=min_delay, max_delay=max_delay): | |
| np = NeoPixel(Pin(5, Pin.OUT), N) | |
| set_rainbow(np, N) | |
| delay = 150 | |
| delta = 1 | |
| while pin0.value(): | |
| for i in range(N): | |
| np[i] = np[(i+1) % N] | |
| np.write() | |
| time.sleep_ms(delay) | |
| delay += delta | |
| if delay >= max_delay: | |
| delta = -1 | |
| elif delay <= min_delay: | |
| delta = 1 | |
| print(delay, delta) | |
| shift() | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | f = open('boot.py', 'w') | |
| f.write(''' | |
| CODE HERE | |
| ''') | |
| f.close() | 
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
            
Ping! I have used you code from paste.py and hsv_to_rgb function in https://github.com/dglaude/blinkt-on-espiot-phat
Thank you very much.