Tabla de contenido:

Sistema de radar simple de Magicbit: 6 pasos
Sistema de radar simple de Magicbit: 6 pasos

Video: Sistema de radar simple de Magicbit: 6 pasos

Video: Sistema de radar simple de Magicbit: 6 pasos
Video: 30 товаров для автомобиля с Алиэкспресс, автотовары №19 2024, Mes de julio
Anonim

Este tutorial muestra cómo hacer un sistema de radar simple usando el sensor HC-SR04 y la placa de desarrollo Microbit con procesamiento e IDE de Arduino.

Suministros:

  • Micro-servomotor SG90
  • Cables de puente (genéricos)
  • Protoboard (genérico)
  • Magicbit
  • Cable USB-A a Micro-USB
  • Sensor ultrasónico - HC-SR04 (genérico)

Paso 1: historia

En este tutorial aprenderemos cómo hacer un sistema de radar simple usando la placa de desarrollo Magicbit core. Para ello utilizamos el sensor ultrasónico HC-SR04 y, para mostrar los datos, utilizamos el entorno de procesamiento. Empecemos.

Paso 2: Teoría y Metodología

Primero, analicemos cómo funciona esto. El principio es muy sencillo. Primero giramos nuestro sensor alrededor del eje vertical en un rango de 180 grados continuamente. Durante ese movimiento, tomamos los datos sobre la distancia al objeto más cercano desde el sensor ultrasónico en todos los ángulos. Para este proceso utilizamos la placa base Magicbit. Después, tenemos que establecer la conexión con el entorno de procesamiento para mostrar nuestros datos. Por lo tanto, utilizamos un protocolo de comunicación en serie con una tasa de baudios adecuada. Luego, diseñamos la interfaz de nuestro sistema de radar mediante el procesamiento de IDE. En ese IDE configuramos nuestra comunicación serial para obtener datos en tiempo real vía serial. Así que nos comunicamos en tiempo real con Magicbit y mostramos los datos que se envían desde Magicbit al IDE de procesamiento.

Paso 3: configuración del hardware

configuración de hardware
configuración de hardware
configuración de hardware
configuración de hardware

Para este proyecto utilizamos principalmente tres componentes de hardware. Son Magicbit, servomotor y sensor ultrasónico. La conexión entre todas estas partes se muestra en la Figura anterior.

El sensor ultrasónico usó 3.3 v para encender. Por lo tanto, usamos el puerto inferior derecho de la placa Magicbit para conectar el sensor ultrasónico al Magicbit. Pero el servomotor se usa 5V para un funcionamiento adecuado, por lo que usamos el puerto inferior izquierdo para conectar el servomotor con Magicbit. En este caso, utilizamos el módulo conector servo Magic bit. Pero si no tiene ese módulo, puede usar tres cables de puente para conectar 5V a 5V, Gnd a Gnd y pin de señal a 26 pines en magicbit.

Después de construir el circuito, tenemos una pequeña parte mecánica para construir. fije el conector del servo de un solo lado al servomotor con una tuerca pequeña. Luego fije el sensor en ese conector usando algún soporte en forma de L o de la manera adecuada. Después de todo el sistema, lo arreglamos en la placa de pruebas. Pero puedes usar otra superficie para montar servo y Magicbit.

Paso 4: configuración del software

Configuración del software
Configuración del software
Configuración del software
Configuración del software

El lado del software es un poco complejo. Para una comprensión adecuada, puede consultar los siguientes enlaces antes de pasar a la siguiente parte.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

Veamos el código IDE de Arduino y cómo funciona ese código.

Para conducir el servo utilizamos la biblioteca de servos ESP32. Esta biblioteca casi se incluye en el administrador de placa de bits mágicos en Arduino IDE. Para lidiar con el sensor ultrasónico utilizamos la biblioteca newPing. Esto se puede descargar desde el siguiente enlace.

bitbucket.org/teckel12/arduino-new-ping/do…

Descargue el archivo zip y vaya a herramientas> incluir biblioteca> agregar biblioteca Zip en Arduino. ahora seleccione su archivo zip descargado de la nueva biblioteca de pines. Para comunicarnos con el procesamiento utilizamos comunicación en serie con una velocidad de 115200 baudios. Esta es la frecuencia más adecuada para ESP32. En todos los ángulos enviamos nuestros datos a la computadora usando este protocolo. La distancia al objeto frontal más cercano desde el sensor, la dirección de rotación y el ángulo de rotación se incluyen en estos datos. Usando dos bucles for, giramos nuestro servo en dos direcciones. Mientras giramos un grado, enviamos datos en serie en 4 ocasiones. La razón por la que puede comprender en el procesamiento de la explicación de la parte.

Ahora es el momento de analizar el entorno de procesamiento. Este es un software de programación basado en Java. Podemos escribir un boceto de nuestro programa en este boceto en el procesamiento de IDE. También podemos generar resultados visuales al ejecutar nuestro programa. También puede tomar la salida como objetos 2D y 3D. No solo eso, esto se puede usar para el procesamiento de imágenes y muchas más cosas.

En el boceto de procesamiento, primero diseñamos nuestra interfaz de visualización de datos utilizando funciones gráficas simples. Al comienzo del código, establecemos nuestra comunicación en serie mediante la inclusión de bibliotecas en serie. En la función de configuración, debe hacer algunos cambios según el puerto USB que utilizó para conectar Magicbit con la computadora. puede verificar su puerto usando Arduino IDE cuando configura el Arduino IDE para cargar el código. Luego, cambie el nombre del puerto com en la parte de configuración en el esquema de procesamiento. cuando los datos en serie están disponibles, la función Serialevent se activa automáticamente. Por lo tanto, la lógica principal del código se incluye en un evento en serie para evitar la pérdida de ángulos y datos. cuando hay nuevos datos disponibles, dibujamos una línea en la pantalla de acuerdo con nuestro ángulo. En ese momento, si no hay ningún objeto detectado, la línea completa es de color verde. De lo contrario, una parte de la línea será roja según la distancia entre el sensor y el objeto. Además, en la dirección de rotación correspondiente, dibujamos otras 200 líneas cerca de esa línea con un nivel decreciente de color verde. entre cada Main tenemos una diferencia de 0,25 grados. Por lo tanto, obtenemos 4 lecturas a la vez de Magicbit en cada rotación de grado. Debido a eso, podemos crear una hermosa mano de búsqueda en la pantalla.

Después de cargar el código con éxito por completo en la magia y configurar la parte de hardware con éxito, abra el IDE de procesamiento y ejecute el código haciendo clic en el botón Ejecutar. Ahora tienes un sistema de radar muy simple.

Puede personalizar los códigos como desee y lo que desee mostrar.

Paso 5: solución de problemas

El proceso de croquis no se está ejecutando.

  • Espera algún tiempo. Debido a que el tiempo de inicio depende del rendimiento de su PC y GPU.
  • Verifique que el número de puerto serial sea correcto en el boceto de procesamiento.
  • Compruebe que la conexión USB esté fijada correctamente.
  • Verifique la conexión entre el sensor ultrasónico y Magicbit.
  • Abra el monitor en serie y verifique que los datos provengan de Arduino. Si no es así, el problema es su código Arduino o su conexión USB.

El servo no funciona.

  • Compruebe que la conexión USB esté fijada correctamente.
  • Verifique el cableado.
  • Compruebe que el servo esté en buenas condiciones.

Paso 6: Código Arduino

#incluir

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // incluye la biblioteca de servos int distancia; Servo RadarServo; configuración vacía () {Serial.begin (115200); RadarServo.attach (26); // Define en qué pin está el retardo adjunto del servomotor (3000); } void loop () {// gira el servomotor de 15 a 165 grados para (int i = 0; i <= 180; i ++) {RadarServo.write (i); retraso (50); distance = sonar.ping_cm (); // Llama a una función para calcular la distancia medida por el sensor ultrasónico para cada grado para (int j = 0; j0) {break; } Serial.print (i); // Envía el grado actual al puerto serie Serial.print (","); // Envía un carácter de adición justo al lado del valor anterior necesario más adelante en el IDE de procesamiento para indexar Serial.print (j); // Envía el grado actual al puerto serie Serial.print ("*"); Serial.print (1); // Envía el valor de la distancia al puerto serie Serial.print ("/"); // Envía un carácter de adición justo al lado del valor anterior necesario más adelante en el IDE de procesamiento para indexar Serial.print (distancia); // Envía el valor de la distancia al puerto serie Serial.print ("."); // Envía un carácter de adición justo al lado del valor anterior necesario más adelante en el IDE de procesamiento para la indexación}} // Repite las líneas anteriores de 165 a 15 grados para (int i = 180; i> = 0; i -) {RadarServo.escribir (i); retraso (50); distancia = sonar.ping_cm (); para (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continuar; } Serial.print (i); // Envía el grado actual al puerto serie Serial.print (","); // Envía un carácter de adición justo al lado del valor anterior necesario más adelante en el IDE de procesamiento para indexar Serial.print (j); // Envía el grado actual al puerto serie Serial.print ("*"); Serial.print (-1); // Envía el valor de la distancia al puerto serie Serial.print ("/"); // Envía un carácter de adición justo al lado del valor anterior necesario más adelante en el IDE de procesamiento para indexar Serial.print (distancia); // Envía el valor de la distancia al puerto serie Serial.print ("."); // Envía un carácter de adición justo al lado del valor anterior necesario más adelante en el IDE de procesamiento para la indexación}}

}

Recomendado: