### Progetto 12: Tank con Elusione degli Ostacoli a Ultrasuoni
#### **(1)Descrizione:**
Nel progetto precedente, abbiamo realizzato un'auto intelligente che segue il suono a ultrasuoni. In realtà, utilizzando gli stessi componenti e lo stesso metodo di cablaggio, dobbiamo solo modificare il codice di test per trasformarla in un'auto intelligente per l'elusione degli ostacoli a ultrasuoni. Questa auto intelligente può muoversi con il movimento delle mani umane.
Utilizziamo sensori a ultrasuoni per rilevare la distanza tra l'auto intelligente e l'ostacolo di fronte, e poi controlliamo la rotazione dei due motori in base a questi dati per controllare i movimenti dell'auto intelligente.
| Rilevamento | |
| :----------------------------------------------------------: | :-----: |
| Distanza misurata dal sensore a ultrasuoni tra l'auto e l'ostacolo di fronte
(impostare l'angolo del servo a 90°) | a (cm) |
| Distanza misurata dal sensore a ultrasuoni tra l'auto e l'ostacolo a destra
(impostare l'angolo del servo a 0°) | a2 (cm) |
| Distanza misurata dal sensore a ultrasuoni tra l'auto e l'ostacolo a sinistra
(impostare l'angolo del servo a 180°) | a1 (cm) |
**Impostazione: impostare l'angolo iniziale del servo a 90°**
| Condizione 1 | Condizione 2 | Condizione 3 | Movimento |
| :---------: | :------------------------: | :--------------------: | :----------------------------------------------------------- |
| a<20 | | | Fermarsi per 500ms;impostare l'angolo del servo a 180°,leggere a1,ritardo di 100ms;impostare l'angolo del servo a 0°,leggere a2,ritardo di 0.1s. |
| | a1<50
o
a2<50 | **Confrontare a1 con a2** | |
| | | a1>a2 | Impostare l'angolo del servo a 90°,ruotare a sinistra per 700ms(impostare PWM a 255),e muoversi in avanti(impostare PWM a 200). |
| | | a1<a2 | Impostare l'angolo del servo a 90°,ruotare a destra per 700ms(impostare PWM a 255),e muoversi in avanti(impostare PWM a 200). |
| | a1≥50
e
a2≥50 | Casuale | Impostare l'angolo del servo a 90°,ruotare a sinistra per 500ms(impostare PWM a 255),e muoversi in avanti(impostare PWM a 200).
Impostare l'angolo del servo a 90°,ruotare a destra per 500ms(impostare PWM a 255),e muoversi in avanti(impostare PWM a 200). |
| a≥20 | | | muoversi in avanti(impostare PWM a 100) |
#### **(2)Diagramma di flusso:**

#### **(3)Schema di collegamento:**

(Nota: i fili marrone, rosso e arancione del servo sono collegati rispettivamente a G (GND), V(5V)e D10 della scheda di espansione;e per il sensore a ultrasuoni, il pin VCC è collegato al 5v (V), il pin Trig al digitale 12 (S), il pin Echo al digitale 13 (S), e il pin Gnd a Gnd (G); come nel progetto precedente.)
#### **(4)Codice di Test:**
Puoi anche trascinare i blocchi per modificare il tuo codice, come mostrato di seguito.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
**Codice di Test Completo**
(**Nota:** Non collegare il modulo Bluetooth prima di caricare il codice, perché il caricamento del codice utilizza anche la comunicazione seriale, e potrebbero verificarsi conflitti con la comunicazione seriale Bluetooth, che possono causare il fallimento del caricamento.)

#### **(5)Risultati del Test:**
Dopo aver caricato con successo il codice di test, effettuare il cablaggio, portare il selettore DIP sull'estremità ON e alimentare il dispositivo. L'auto intelligente si muoverà in avanti ed eviterà automaticamente gli ostacoli.
