### Proyecto 12: Tanque de Evasión de Obstáculos Ultrasónico
#### **(1)Descripción:**
En el proyecto anterior, hicimos un auto inteligente seguidor de sonido ultrasónico. De hecho, usando los mismos componentes y el mismo método de cableado, solo necesitamos cambiar el código de prueba para convertirlo en un auto inteligente de evasión de obstáculos ultrasónico. Este auto inteligente puede moverse con el movimiento de las manos humanas.
Usamos sensores ultrasónicos para detectar la distancia entre el auto inteligente y el obstáculo al frente, y luego controlamos la rotación de los dos motores basándonos en estos datos para controlar los movimientos del auto inteligente.
| Detección | |
| :----------------------------------------------------------: | :-----: |
| Distancia medida por el sensor ultrasónico entre el auto y el obstáculo al frente
(establecer el ángulo del servo a 90°) | a (cm) |
| Distancia medida por el sensor ultrasónico entre el auto y el obstáculo a la derecha
(establecer el ángulo del servo a 0°) | a2 (cm) |
| Distancia medida por el sensor ultrasónico entre el auto y el obstáculo a la izquierda
(establecer el ángulo del servo a 180°) | a1 (cm) |
**Configuración: establecer el ángulo inicial del servo a 90°**
| Condición 1 | Condición 2 | Condición 3 | Movimiento |
| :---------: | :------------------------: | :--------------------: | :----------------------------------------------------------- |
| a<20 | | | Detener 500ms;establecer el ángulo del servo a 180°,leer a1,retardo de 100ms;establecer el ángulo del servo a 0°,leer a2,retardo de 0.1s. |
| | a1<50
o
a2<50 | **Comparar a1 con a2** | |
| | | a1>a2 | Establecer el ángulo del servo a 90°,girar a la izquierda durante 700ms(establecer PWM a 255),y avanzar(establecer PWM a 200). |
| | | a1<a2 | Establecer el ángulo del servo a 90°,girar a la derecha durante 700ms(establecer PWM a 255),y avanzar(establecer PWM a 200). |
| | a1≥50
y
a2≥50 | Aleatorio | Establecer el ángulo del servo a 90°,girar a la izquierda durante 500ms(establecer PWM a 255),y avanzar(establecer PWM a 200).
Establecer el ángulo del servo a 90°,girar a la derecha durante 500ms(establecer PWM a 255),y avanzar(establecer PWM a 200). |
| a≥20 | | | Avanzar(establecer PWM a 100) |
#### **(2)Diagrama de flujo:**

#### **(3)Diagrama de conexión:**

(Nota: los cables marrón, rojo y naranja del servo están conectados respectivamente a G (GND), V(5V)y D10 de la placa de expansión;y para el sensor ultrasónico, el pin VCC está conectado a 5v (V), el pin Trig al digital 12 (S), el pin Echo al digital 13 (S), y el pin Gnd a Gnd (G); igual que en el proyecto anterior.)
#### **(4)Código de prueba:**
También puedes arrastrar bloques para editar tu código, como se muestra a continuación.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
**Código de prueba completo**
(**Nota:** No conectes el módulo Bluetooth antes de subir el código, porque la subida del código también usa comunicación serial, y puede haber conflictos con la comunicación serial Bluetooth, lo que puede causar que la subida falle.)

#### **(5)Resultados de la prueba:**
Después de subir el código de prueba exitosamente, realiza el cableado, gira el interruptor DIP al extremo ON y enciende el dispositivo. El auto inteligente avanzará y evitará obstáculos automáticamente.
