Expand browser editor runtime and LED simulation workflows.
Add Docker deployment support, richer Selenium/LED pattern tests, in-browser diagnostics, responsive UI improvements, and 16x16 panel simulation tooling to speed iteration and hardware-style prototyping. Made-with: Cursor
This commit is contained in:
75
LED_TUTORIAL.md
Normal file
75
LED_TUTORIAL.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# Python LED Tutorial (NeoPixel Focus)
|
||||
|
||||
This tutorial is for the browser editor's ESP32-style mocks:
|
||||
|
||||
- `machine.Pin`
|
||||
- `neopixel.NeoPixel`
|
||||
|
||||
Use `workspace/code/led_tutorial.py` while reading this guide.
|
||||
|
||||
## 1) Basic setup
|
||||
|
||||
```python
|
||||
from machine import Pin
|
||||
import neopixel
|
||||
|
||||
np = neopixel.NeoPixel(Pin(4), 12)
|
||||
```
|
||||
|
||||
- `Pin(4)` means data pin 4 (matching common ESP32 examples).
|
||||
- `12` is the number of LEDs in the strip/ring.
|
||||
- `np` is your LED strip object.
|
||||
|
||||
## 2) Set one LED color
|
||||
|
||||
```python
|
||||
np[0] = (255, 0, 0) # red
|
||||
np.write()
|
||||
```
|
||||
|
||||
- Colors are `(red, green, blue)` from `0` to `255`.
|
||||
- Nothing updates visually until `np.write()`.
|
||||
|
||||
## 3) Fill all LEDs
|
||||
|
||||
```python
|
||||
np.fill((0, 0, 255)) # all blue
|
||||
np.write()
|
||||
```
|
||||
|
||||
## 4) Clear LEDs (turn off)
|
||||
|
||||
```python
|
||||
np.fill((0, 0, 0))
|
||||
np.write()
|
||||
```
|
||||
|
||||
## 5) Animate over time
|
||||
|
||||
```python
|
||||
import time
|
||||
|
||||
for step in range(20):
|
||||
np.fill((step * 10, 0, 255 - step * 10))
|
||||
np.write()
|
||||
time.sleep(0.08)
|
||||
```
|
||||
|
||||
`time.sleep(...)` controls animation speed.
|
||||
|
||||
## 6) Moving pixel example
|
||||
|
||||
```python
|
||||
for i in range(len(np)):
|
||||
np.fill((0, 0, 0))
|
||||
np[i] = (255, 120, 0)
|
||||
np.write()
|
||||
time.sleep(0.06)
|
||||
```
|
||||
|
||||
## 7) Tips
|
||||
|
||||
- Keep color values in `0..255`.
|
||||
- Use helper functions for repeated color logic.
|
||||
- Start with short loops, then increase frames once behavior looks good.
|
||||
- If the simulator is closed, run your script again to show updates.
|
||||
Reference in New Issue
Block a user