# 📐 Schema Elettrico Completo - ESP32-CAM Enhanced System

## 🔌 Panoramica Sistema

```
                    SISTEMA COMPLETO ESP32-CAM ENHANCED
                    
    ┌─────────────┐    WiFi 2.4GHz     ┌─────────────────┐    UART 9600    ┌─────────────────┐
    │   Router    │ ◄─────────────────► │   ESP32-CAM     │ ◄─────────────► │  Arduino Nano   │
    │ 192.168.x.x │                    │ 192.168.4.1     │                 │   Servo Control │
    └─────────────┘                    │ Camera + WiFi   │                 │  Sensor Reading │
                                       └─────────────────┘                 └─────────────────┘
                                              │                                      │
                                              │ GPIO12                               │ Pin 4-11
                                              ▼                                      ▼
                                       ┌─────────────────┐                 ┌─────────────────┐
                                       │  NeoPixel Strip │                 │   8x Servo      │
                                       │   30x WS2812B   │                 │   SG90 Motors   │
                                       └─────────────────┘                 └─────────────────┘
```

## 📱 ESP32-CAM Pinout Dettagliato

```
                           ESP32-CAM AI-THINKER
                        ┌─────────────────────────┐
                        │                         │
                        │    ┌─────────────┐     │
                        │    │   CAMERA    │     │  ← Camera OV2640 2MP
                        │    │   OV2640    │     │    Risoluzione: 1600x1200
                        │    │             │     │    Stream: QVGA 320x240
                        │    └─────────────┘     │
                        │                         │
    5V (2A min) ────────┤ 5V                  GND ├──────────── GND Common
    FTDI TX ────────────┤ U0R (GPIO3)        U0T ├──────────── FTDI RX
    GND (Programming) ───┤ IO0 (Boot)         IO2 ├──────────── LED Built-in
    Flash LED ───────────┤ IO4                IO12├──────────── NeoPixel DIN
    Nano TX ─────────────┤ IO13 (UART RX)    IO14├──────────── (Disponibile)
    Nano RX ─────────────┤ IO15 (UART TX)    IO16├──────────── (Disponibile)
                        │                         │
                        │ Camera Pins (Reserved): │
                        │ IO0, IO5, IO18, IO19,   │
                        │ IO21, IO22, IO23, IO25, │
                        │ IO26, IO27, IO32, IO34, │
                        │ IO35, IO36, IO39        │
                        └─────────────────────────┘
```

## 🤖 Arduino Nano Pinout

```
                           ARDUINO NANO v3.0
                        ┌─────────────────────────┐
                        │                         │
    ESP32 GPIO15 ───────┤ D2 (RX)             D13 ├──────────── LED Status
    ESP32 GPIO13 ───────┤ D3 (TX)             D12 ├──────────── Servo 7
    Servo 0 ────────────┤ D4                  D11 ├──────────── Servo 6
    Servo 1 ────────────┤ D5                  D10 ├──────────── Servo 5
    Servo 2 ────────────┤ D6                   D9 ├──────────── Servo 4
    Servo 3 ────────────┤ D7                   D8 ├──────────── Servo 3
                        │                         │
    Sensor 0 ───────────┤ A0                   5V ├──────────── 5V Common
    Sensor 1 ───────────┤ A1                  GND ├──────────── GND Common
    Sensor 2 ───────────┤ A2                  VIN ├──────────── 5V Input
    Sensor 3 ───────────┤ A3                RESET ├──────────── (Pull-up)
    Sensor 4 ───────────┤ A4 (SDA)           3V3 ├──────────── (Non usato)
    Sensor 5 ───────────┤ A5 (SCL)            A7 ├──────────── (Disponibile)
                        │                     A6 ├──────────── (Disponibile)
                        └─────────────────────────┘
```

## 💡 Schema NeoPixel WS2812B

```
                        NEOPIXEL STRIP CONNECTION
                        
    ESP32-CAM                              NeoPixel Strip (30 LEDs)
    ┌─────────────┐                       ┌─────────────────────────┐
    │             │                       │                         │
    │ GPIO12 ●────┼───[470Ω]─────────────┼────● DIN                │
    │             │                       │                         │
    │ 5V     ●────┼───────────────────────┼────● VCC (5V)           │
    │             │    │                  │                         │
    │ GND    ●────┼────┼──────────────────┼────● GND                │
    │             │    │                  │                         │
    └─────────────┘    │                  │ DOUT ●──────────────────┼──► Next LED
                       │                  └─────────────────────────┘
                       │
                  [1000µF 16V]  ← Condensatore di filtro
                       │
                      GND

Note Importanti:
• Resistenza 470Ω protegge il primo LED
• Condensatore 1000µF stabilizza l'alimentazione
• Collegare GND prima di VCC per sicurezza
• Massimo consumo: 30 LED × 60mA = 1.8A @ 5V
```

## 🔧 Schema Servo Connections

```
                        SERVO MOTOR CONNECTIONS
                        
    Arduino Nano                          8x Servo SG90
    ┌─────────────┐                      ┌─────────────────┐
    │             │                      │                 │
    │ D4     ●────┼──────────────────────┼────● Signal     │ Servo 0
    │ D5     ●────┼──────────────────────┼────● Signal     │ Servo 1
    │ D6     ●────┼──────────────────────┼────● Signal     │ Servo 2
    │ D7     ●────┼──────────────────────┼────● Signal     │ Servo 3
    │ D8     ●────┼──────────────────────┼────● Signal     │ Servo 4
    │ D9     ●────┼──────────────────────┼────● Signal     │ Servo 5
    │ D10    ●────┼──────────────────────┼────● Signal     │ Servo 6
    │ D11    ●────┼──────────────────────┼────● Signal     │ Servo 7
    │             │                      │                 │
    │ 5V     ●────┼──── Bus 5V ──────────┼────● VCC (Red)  │ Tutti i servo
    │ GND    ●────┼──── Bus GND ─────────┼────● GND (Brown)│ Tutti i servo
    └─────────────┘                      └─────────────────┘

Specifiche Servo SG90:
• Tensione: 4.8V - 6V
• Corrente: 100-200mA (no load), 500-900mA (stall)
• Coppia: 1.8 kg⋅cm @ 4.8V
• Velocità: 0.1s/60° @ 4.8V
• Angolo: 0° - 180°
• Segnale PWM: 50Hz, 1-2ms pulse width
```

## 📊 Schema Sensori Analogici

```
                        ANALOG SENSORS CONNECTIONS
                        
    Arduino Nano                          Sensori Esempio
    ┌─────────────┐                      ┌─────────────────┐
    │             │                      │                 │
    │ A0     ●────┼──────────────────────┼────● Potenziometro 10kΩ
    │ A1     ●────┼──────────────────────┼────● LDR + 10kΩ pull-down
    │ A2     ●────┼──────────────────────┼────● Sensore temperatura LM35
    │ A3     ●────┼──────────────────────┼────● Sensore pressione FSR
    │ A4     ●────┼──────────────────────┼────● Accelerometro X-axis
    │ A5     ●────┼──────────────────────┼────● Giroscopio Y-axis
    │             │                      │                 │
    │ 5V     ●────┼──── Alimentazione ───┼────● VCC sensori attivi
    │ GND    ●────┼──── Ground comune ───┼────● GND tutti i sensori
    └─────────────┘                      └─────────────────┘

Esempio Potenziometro (A0):
    5V ●─────┬─────● Pin centrale → A0
             │
         [10kΩ Pot]
             │
    GND ●────┴─────● Pin esterno

Esempio LDR (A1):
    5V ●─────[LDR]─────┬─────● A1
                       │
                   [10kΩ]
                       │
    GND ●──────────────┴
```

## ⚡ Schema Alimentazione Completa

```
                        POWER DISTRIBUTION SYSTEM
                        
    Alimentatore 5V/3A                   Sistema Completo
    ┌─────────────────┐                 ┌─────────────────┐
    │                 │                 │                 │
    │ +5V        ●────┼─────────────────┼────● ESP32-CAM (5V)
    │                 │    │            │                 │
    │ GND        ●────┼────┼────────────┼────● ESP32-CAM (GND)
    │                 │    │            │                 │
    └─────────────────┘    │            │                 │
                           │            │                 │
                           ├────────────┼────● Arduino Nano (VIN)
                           │            │                 │
                           ├────────────┼────● Arduino Nano (GND)
                           │            │                 │
                           ├────────────┼────● NeoPixel (VCC)
                           │            │                 │
                           ├────────────┼────● NeoPixel (GND)
                           │            │                 │
                           ├────────────┼────● Servo Bus (VCC)
                           │            │                 │
                           └────────────┼────● Servo Bus (GND)
                                        └─────────────────┘

Calcolo Consumo Corrente:
• ESP32-CAM: 200-800mA (picco WiFi/camera)
• Arduino Nano: 20-50mA
• NeoPixel 30 LED: 30 × 60mA = 1800mA (max brightness)
• Servo 8x SG90: 8 × 200mA = 1600mA (movimento)
• Sensori: 10-50mA
• TOTALE MAX: ~4.5A

Raccomandazione: Alimentatore 5V/5A per sicurezza
```

## 🔗 Schema UART Communication

```
                        UART BIDIRECTIONAL COMMUNICATION
                        
    ESP32-CAM                            Arduino Nano
    ┌─────────────┐                     ┌─────────────┐
    │             │                     │             │
    │ GPIO15 (TX) ●───────────────────● │ D2 (RX)     │
    │             │                     │             │
    │ GPIO13 (RX) ●───────────────────● │ D3 (TX)     │
    │             │                     │             │
    │ GND         ●───────────────────● │ GND         │
    └─────────────┘                     └─────────────┘
    
    Protocollo Comunicazione:
    ┌─────────────────────────────────────────────────────┐
    │ ESP32 → Nano: Comandi controllo                    │
    │ "SERVO:0:90"     → Muovi servo 0 a 90°            │
    │ "DIGITAL:2:1"    → Imposta pin 2 HIGH             │
    │ "PWM:5:75"       → PWM pin 5 al 75%               │
    │ "SENSOR:3"       → Leggi sensore analogico 3      │
    │                                                     │
    │ Nano → ESP32: Risposte e dati                     │
    │ "ACK:SERVO:0:90" → Conferma comando               │
    │ "SENSOR:3:512"   → Valore sensore 3 = 512        │
    │ "SERVO_POS:0:90" → Posizione attuale servo 0      │
    └─────────────────────────────────────────────────────┘
    
    Specifiche UART:
    • Baud Rate: 9600 bps
    • Data Bits: 8
    • Parity: None
    • Stop Bits: 1
    • Flow Control: None
```

## 🎛️ Schema Programmazione ESP32-CAM

```
                        ESP32-CAM PROGRAMMING SETUP
                        
    FTDI USB-to-Serial                   ESP32-CAM
    ┌─────────────────┐                 ┌─────────────────┐
    │                 │                 │                 │
    │ 5V         ●────┼─────────────────┼────● 5V         │
    │ GND        ●────┼─────────────────┼────● GND        │
    │ TX         ●────┼─────────────────┼────● U0R (RX)   │
    │ RX         ●────┼─────────────────┼────● U0T (TX)   │
    │                 │                 │                 │
    └─────────────────┘                 │ IO0        ●────┼──── GND (Programming)
                                        │                 │      ↑ Remove after upload
                                        │ RST        ●────┼──── Button/Wire to GND
                                        └─────────────────┘
    
    Sequenza Programmazione:
    1. Collegare tutti i cavi come mostrato
    2. Collegare IO0 a GND
    3. Alimentare ESP32-CAM
    4. Premere RESET (opzionale)
    5. Avviare upload da Arduino IDE
    6. DOPO upload completato:
       - Scollegare IO0 da GND
       - Premere RESET
       - Aprire Serial Monitor (115200 baud)
```

## 🔧 Schema Breadboard Layout

```
                        BREADBOARD CONNECTION LAYOUT
                        
    Breadboard 1 (Power Distribution)    Breadboard 2 (ESP32-CAM)
    ┌─────────────────────────────┐     ┌─────────────────────────────┐
    │ + + + + + + + + + + + + + + + │     │                             │
    │ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●● │     │      ┌─────────────┐      │
    │                             │     │      │ ESP32-CAM   │      │
    │ a b c d e f g h i j k l m n │     │      │             │      │
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │      │   Camera    │      │
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │      │             │      │
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │      └─────────────┘      │
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │                             │
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │ GPIO12 ●──[470Ω]──● NeoPixel
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │ GPIO13 ●───────────● Nano D2
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │ GPIO15 ●───────────● Nano D3
    │ ● ● ● ● ● ● ● ● ● ● ● ● ● ● │     │                             │
    │                             │     │ 5V  ●──────────────● Power+  │
    │ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●● │     │ GND ●──────────────● Power- │
    │ - - - - - - - - - - - - - - - │     └─────────────────────────────┘
    └─────────────────────────────┘     
    
    Connessioni Power Bus:
    • Riga + (rossa): 5V da alimentatore
    • Riga - (blu): GND comune
    • Jumper per collegare le due metà
    
    Breadboard 3 (Arduino Nano + Servo)
    ┌─────────────────────────────────────┐
    │                                     │
    │      ┌─────────────────┐            │
    │      │  Arduino Nano   │            │
    │      │                 │            │
    │      │ D4●D5●D6●D7●    │            │
    │      │ D8●D9●D10●D11●  │ ──────●●●● │ Servo 0-7 Signal
    │      │                 │            │
    │      │ A0●A1●A2●A3●    │            │
    │      │ A4●A5●         │ ──────●●●● │ Sensor 0-5
    │      │                 │            │
    │      │ 5V●GND●         │            │
    │      └─────────────────┘ ──────●●●● │ Power Bus
    │                                     │
    └─────────────────────────────────────┘
```

## 📋 Lista Materiali con Codici

### Componenti Principali
```
┌─────────────────────────────────────────────────────────┐
│ Componente              │ Codice/Modello    │ Prezzo   │
├─────────────────────────────────────────────────────────┤
│ ESP32-CAM AI-Thinker    │ ESP32-CAM         │ €12-15   │
│ Arduino Nano v3.0       │ A000005           │ €8-12    │
│ Programmatore FTDI      │ FT232RL           │ €5-8     │
│ NeoPixel Strip 30 LED   │ WS2812B-30        │ €10-15   │
│ Servo SG90 (8x)        │ SG90              │ €3 cad   │
│ Alimentatore 5V/5A      │ MW-5V5A           │ €12-18   │
└─────────────────────────────────────────────────────────┘
```

### Componenti Elettronici
```
┌─────────────────────────────────────────────────────────┐
│ Componente              │ Valore/Codice     │ Quantità │
├─────────────────────────────────────────────────────────┤
│ Resistenza              │ 470Ω 1/4W        │ 1        │
│ Condensatore elettr.    │ 1000µF 16V        │ 1        │
│ Potenziometro          │ 10kΩ lineare      │ 6        │
│ Fotoresistenza         │ LDR 5mm           │ 2        │
│ Resistenza pull-down   │ 10kΩ 1/4W         │ 6        │
│ Jumper wire M-M        │ 20cm              │ 30       │
│ Jumper wire M-F        │ 20cm              │ 20       │
│ Breadboard             │ 400 punti         │ 3        │
└─────────────────────────────────────────────────────────┘
```

### Sensori Opzionali
```
┌─────────────────────────────────────────────────────────┐
│ Sensore                 │ Modello           │ Interfaccia│
├─────────────────────────────────────────────────────────┤
│ Temperatura             │ LM35DZ            │ Analogico  │
│ Ultrasuoni              │ HC-SR04           │ Digitale   │
│ Accelerometro           │ ADXL335           │ Analogico  │
│ Giroscopio              │ L3G4200D          │ I2C        │
│ Pressione barometrica   │ BMP180            │ I2C        │
│ Umidità                 │ DHT22             │ Digitale   │
└─────────────────────────────────────────────────────────┘
```

## ⚠️ Note di Sicurezza

### Alimentazione
- **Mai superare 6V** sui servo SG90
- **Usare alimentatore switching** di qualità
- **Aggiungere fusibile 5A** sulla linea principale
- **Condensatori di filtro** su ogni breadboard

### Segnali
- **Resistenza di protezione** su NeoPixel data line
- **Pull-up/pull-down** su segnali digitali
- **Cavi corti** per segnali ad alta frequenza
- **Separazione** alimentazione digitale/analogica

### Meccanica
- **Fissaggio sicuro** ESP32-CAM (dissipazione calore)
- **Cavi servo** con connettori sicuri
- **Supporto meccanico** per carichi pesanti
- **Protezione** da cortocircuiti accidentali

## 🔧 Test e Verifica

### Checklist Pre-Accensione
- [ ] **Polarità corretta** su tutti i componenti
- [ ] **Nessun cortocircuito** visibile
- [ ] **Connessioni saldate** o ben inserite
- [ ] **Alimentazione corretta** (5V ±5%)
- [ ] **Antenna WiFi** collegata all'ESP32-CAM

### Test Sequenziali
1. **Test alimentazione**: Solo power, verificare tensioni
2. **Test ESP32-CAM**: Solo modulo, verificare boot
3. **Test Arduino Nano**: Solo Nano, verificare LED
4. **Test UART**: Comunicazione bidirezionale
5. **Test NeoPixel**: Accensione LED singoli
6. **Test Servo**: Movimento controllato
7. **Test Sensori**: Lettura valori analogici
8. **Test Sistema**: Funzionamento completo

### Strumenti di Debug
- **Multimetro**: Tensioni e continuità
- **Oscilloscopio**: Segnali digitali PWM
- **Logic Analyzer**: Protocollo UART
- **Monitor Seriale**: Debug software
- **Analizzatore WiFi**: Connessioni di rete

---

**Documento Tecnico**: Schema Elettrico Completo  
**Versione**: 1.2  
**Data**: Dicembre 2024  
**Compatibilità**: ESP32-CAM AI-Thinker + Arduino Nano v3.0