Import led-driver app: pico/ and esp32/ layout
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
64
esp32/test/test_uart_send_json.py
Normal file
64
esp32/test/test_uart_send_json.py
Normal file
@@ -0,0 +1,64 @@
|
||||
"""
|
||||
ESP32-C6 test: send JSON messages to Pico over UART (GPIO17).
|
||||
Settings use strips = [[pin, num_leds], ...]. Run with Pico connected on RX.
|
||||
|
||||
Run with mpremote (from repo root):
|
||||
./esp32/run_test_uart_json.sh
|
||||
# or
|
||||
mpremote run esp32/test/test_uart_send_json.py
|
||||
# or with port
|
||||
mpremote connect /dev/ttyUSB0 run esp32/test/test_uart_send_json.py
|
||||
"""
|
||||
import machine
|
||||
import time
|
||||
import json
|
||||
|
||||
UART_TX_PIN = 17
|
||||
UART_BAUD = 921600
|
||||
LED_PIN = 15
|
||||
|
||||
|
||||
def send_json(uart, obj):
|
||||
line = json.dumps(obj) + "\n"
|
||||
uart.write(line)
|
||||
print("TX:", line.strip())
|
||||
|
||||
|
||||
def main():
|
||||
uart = machine.UART(1, baudrate=UART_BAUD, tx=UART_TX_PIN)
|
||||
led = machine.Pin(LED_PIN, machine.Pin.OUT)
|
||||
|
||||
# 1) Settings: one strip, pin 2, 10 LEDs (list of lists)
|
||||
send_json(uart, {
|
||||
"v": 1,
|
||||
"settings": {
|
||||
"strips": [[2, 10]],
|
||||
"brightness": 30,
|
||||
},
|
||||
})
|
||||
led.value(1)
|
||||
time.sleep(0.2)
|
||||
led.value(0)
|
||||
time.sleep(0.3)
|
||||
|
||||
# 2) led-controller format: light + settings.color (hex)
|
||||
send_json(uart, {"light": "strip1", "settings": {"color": "#FF0000"}, "save": False})
|
||||
time.sleep(0.5)
|
||||
|
||||
# 3) led-controller format: light + settings.r,g,b
|
||||
send_json(uart, {"light": "strip1", "settings": {"r": 0, "g": 255, "b": 0}, "save": False})
|
||||
time.sleep(0.5)
|
||||
|
||||
# 4) led-controller format: blue (hex)
|
||||
send_json(uart, {"light": "strip1", "settings": {"color": "#0000FF"}, "save": False})
|
||||
time.sleep(0.5)
|
||||
|
||||
# 5) Off (existing format)
|
||||
send_json(uart, {"v": 1, "off": True})
|
||||
time.sleep(0.3)
|
||||
|
||||
print("Done. Pico: settings -> red (hex) -> green (r,g,b) -> blue (hex) -> off.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
32
esp32/test/test_uart_tx.py
Normal file
32
esp32/test/test_uart_tx.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""
|
||||
ESP32-C6 UART TX + LED test. Sends a few commands on GPIO17, blinks LED on GPIO15.
|
||||
Run on device: exec(open('test/test_uart_tx').read()) or import test.test_uart_tx
|
||||
Does not require Pico connected.
|
||||
"""
|
||||
import machine
|
||||
import time
|
||||
|
||||
UART_TX_PIN = 17
|
||||
LED_PIN = 15
|
||||
|
||||
def main():
|
||||
uart = machine.UART(1, baudrate=115200, tx=UART_TX_PIN)
|
||||
led = machine.Pin(LED_PIN, machine.Pin.OUT)
|
||||
|
||||
def send(cmd):
|
||||
uart.write(cmd + "\n")
|
||||
print("TX:", cmd)
|
||||
|
||||
# Blink and send a short command sequence
|
||||
commands = ["off", "fill 255 0 0", "fill 0 255 0", "fill 0 0 255", "off"]
|
||||
for i, cmd in enumerate(commands):
|
||||
led.value(1)
|
||||
send(cmd)
|
||||
time.sleep(0.3)
|
||||
led.value(0)
|
||||
time.sleep(0.2)
|
||||
|
||||
print("Done. Connect Pico to see strip follow commands.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user