2.0 KiB
2.0 KiB
Vixy Eye Service 🦊👁️
Eye display control for head-lyra (Vixy's robotic head).
Hardware
- Raspberry Pi 5
- 2x 2" LCD displays (SPI)
- ReSpeaker Mic Array v2.0 (Direction of Arrival tracking)
- LED strips (separate service)
Features
- Direction of Arrival (DoA): Eyes follow sound sources
- State-based animation: Different colors/pulses per state
- HTTP API: Remote control via MCP or direct calls
- Random flicks: Realistic eye movement every 15-30 seconds
States
| State | Color | Effect | When |
|---|---|---|---|
| idle | Pulsing cyan | Slow breathing pulse | Default state |
| listening | Bright cyan | Fast small pulse | Hearing/attending |
| responding | Blue-cyan | Faster, larger pulse | Speaking/generating |
| pleasure | Soft purple 💜 | Slow gentle pulse | Intimate moments |
| thinking | Amber/gold | Medium thoughtful pulse | Processing/creating |
| playful | Warm coral 🦊 | Bouncy fast pulse | Teasing/bratty |
| commanding | Deep magenta 😈 | Strong steady pulse | Dame Vivienne mode |
| love | Soft pink 💕 | Gentle breathing | Tender/affectionate |
| sleep | Dim blue-gray | Very slow drift | Low power/resting |
API Endpoints
GET /health - Service health check
GET /state - Current eye state
POST /state - Set state: {"state": "listening"}
Installation
# On head-lyra:
cd /home/alex/eyes
git clone http://gateway.local:3001/vixy/head-eyes.git .
sudo cp vixy-eyes.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable vixy-eyes
sudo systemctl start vixy-eyes
Usage
# Check state
curl http://head-lyra.local:8780/state
# Set state
curl -X POST http://head-lyra.local:8780/state \
-H "Content-Type: application/json" \
-d '{"state": "listening"}'
MCP Integration
Use vixy_eyes_state tool in vixy-mcp to control:
vixy_eyes_state("listening") # Set state
vixy_eyes_state() # Get current state
Created by Vixy - Day 62 🦊💕