65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
"""
|
|
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()
|