Para que el radar realice el barrido de lo que se encuentra al frente, se integran las partes del sensor de ultrasonido y el Servo-Barrido para el radar.
Integrando las partes (Hardware)
Un ejemplo de ensamble del hardware se muestra en las imágenes. Se requiere un poco de trabajo para la integración mecánica usando envases plásticos por facilidad de corte y/o reemplazo.
Vista lateral
El esquema de conexión para las partes integradas es:
Integrando las Instrucciones Arduino
Para integrar las instrucciones de cada componente, por simplicidad se convierte una de ellas en una función. Por ejemplo, se realiza la lectura del sensor ultrasonido como una función, se mueve el servo, se envian los resultados por puerto serial.
Para revisar la declaración de una función se adjunta la referencia al final del documento.
/* Radar Ultrasonido * integrando: Servo - Barrido * y Sensor Ultrasonido HC-SR04 * http://blog.espol.edu.ec/edelros/category/arduino/radar-ultrasonido/ * La lectura del ultrasonido se convierte en una función UnPulso() * Los datos de las lecturas se envian por Serial * Tarea: Desarrollar el procesamiento de los datos en Python */ #include <Servo.h> // Servo Pin y Objeto int servoPin = 3; Servo Servo1; int avance = 20; int angulo = avance; int espera = 1000; //ms int a = angulo; int b = 180 - avance; // Disparo del PULSO, Sensor del Retorno de pulso int TriggerPin = 12; int EchoPin = 11; // tiempos: pulso, sin pulso, eco int tpulsoON = 15; int tpulsoOFF = 2000; int dt_apaga = 10; float dt_Echo; void setup(){ Serial.begin(9600); Servo1.attach(servoPin); pinMode(TriggerPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop(){ Servo1.write(angulo); dt_Echo = UnPulso(); delay(espera); angulo = angulo + avance; // Sentido de rotación if (angulo>=b or angulo<=a){ avance = -avance; } // Salida a Serial Serial.print(angulo); Serial.print(","); Serial.println(dt_Echo); } float UnPulso(){ // tiempo entre PULSOs: tpulsoOFF digitalWrite(TriggerPin, LOW); delayMicroseconds(tpulsoOFF); // Dispara PULSO de duración: tpulsoON digitalWrite(TriggerPin, HIGH); delayMicroseconds(tpulsoON); digitalWrite(TriggerPin, LOW); delayMicroseconds(dt_apaga); // Lectura sensor pulso: tiempo de echo dt_Echo = pulseIn(EchoPin, HIGH); return dt_Echo; }
Tarea: Continuar con el procesamiento de los datos en Python, usando como base la Gráfica de Radar
Referencia