Experimento ligero de optimización bayesiana para una Radxa ZERO 3W de 1 GB. Un NeoPixel ilumina una superficie, el TCS34725 mide el color reflejado y BayesOpt ajusta rojo, verde y azul para acercarse a un color objetivo.
Desde una terminal del escritorio compartido:
./get-bayesopt-code
cd cdmx-bayesopt
./scripts/color-lab.shAbra http://equipoN.local:8010/ para cambiar el LED y ver el sensor. Este
comando corre en primer plano: Ctrl-C detiene el sitio y el muestreo. No
queda un servicio Color Lab consumiendo recursos en segundo plano.
Para optimizar, primero detenga Color Lab y ejecute:
./scripts/bayesopt.sh '#4A80C0'
# también acepta: ./scripts/bayesopt.sh '74,128,192'BayesOpt controla I²C/SPI directamente; no inicia Color Lab. La campaña se ve
en http://equipoN.local:8000/ y Ctrl-C la detiene. Las salidas quedan en
runs/color-campaign/.
| Dispositivo | Señal | Pin físico |
|---|---|---|
| TCS34725 | VCC / GND / SCL / SDA | 4 / 6 / 8 / 10 |
| NeoPixel | VCC / DIN / GND | 2 / 19 / 20 |
La imagen mantiene siempre activos i2c-gpio-cdmx en los pines 8/10 y
SPI3_MOSI en el pin 19. Encender o apagar Color Lab no cambia los GPIO. Se
recomienda un 74AHCT125 o 74HCT245 para DIN si el NeoPixel usa 5 V.
En RadxaOS, una sola vez y desde una sesión donde sudo esté permitido:
git clone https://github.com/the-matter-lab/cdmx-bayesopt.git
cd cdmx-bayesopt
./scripts/setup.sh
sudo rebootsetup.sh instala permanentemente el overlay, el módulo I²C, SPI3, permisos y
el entorno Python. También elimina el antiguo servicio Color Lab automático.
Después del reinicio se usan solamente color-lab.sh y bayesopt.sh.
Sin hardware, pruebe la interfaz con ./scripts/color-lab.sh --simulate. La
demo matemática 2D se ejecuta directamente con:
.venv/bin/cdmx-bayesopt --iterations 20 --gif --serve --output runs/demopython3 -m venv .venv
source .venv/bin/activate
python -m pip install --editable '.[visual]'
make testLas interfaces locales no tienen autenticación: úselas solamente en una LAN
de confianza. Proyecto inspirado por
self-driving-lab-demo;
licencia y atribución en LICENSE y NOTICE.md.