Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Creador de mapas ultrasónico usando un Arduino Yun

Componentes y suministros

Arduino Yun
× 1
Sensor ultrasónico
× 1
Servos (Tower Pro MG996R)
× 1
Cables de puente (genéricos)
× 10

Aplicaciones y servicios en línea

Arduino IDE
MATLAB

Acerca de este proyecto

Paso 1:teoría

En este proyecto, estamos utilizando un sensor de distancia ultrasónico. Genera ondas sonoras más allá del alcance de la audición humana y mide la distancia calculando el tiempo requerido por estas ondas para golpear un obstáculo y viajar de regreso. Esto es similar al principio utilizado por los murciélagos y los cruceros.

Otro componente que vamos a utilizar es un servomotor. Se diferencia del motor de CC habitual en que puede girar con mucha precisión a una posición angular determinada y mantener su estado allí. Cuando a un servomotor se le dan pulsos de una duración específica, se mueve a la posición angular correspondiente.

Usaremos estos dos componentes para obtener un campo de visión de 180 grados para nuestro robot.

Paso 2:recopilación de materiales

Este proyecto utiliza el siguiente hardware

  • Arduino Uno / Yun (tenga en cuenta que se puede usar cualquier placa de huella Arduino en lugar de Uno o Yun)
  • Escudo de prototipos de Arduino
  • Un sensor ultrasónico HC-04
  • Un servomotor (he usado el Tower Pro SG90 porque es muy compacto)
  • En el lado del software, estamos utilizando los siguientes programas
  • El IDE de Arduino para cargar el código de control al Arduino para rotar el servo y obtener datos de distancia del sensor ultrasónico y también empujarlo al puerto serie.
  • Mathworks MatLab para recibir datos de la línea serial, procesarlos y visualizarlos en un gráfico.

Paso 3:Montaje mecánico

Con una pequeña pieza de PCB de uso general, haga un pequeño encabezado para el HC-04 y conéctelo a una bocina de servo con un trozo de cinta de doble cara.

Este paso es opcional, pero para hacer el sistema más compacto, adjunté el servo a la parte sobresaliente del protector de la protoboard usando cinta de doble cara también.

El resultado final debería parecerse al abdomen de Wall-E.

Paso 4:el código Arduino

El código Arduino controla el movimiento del servomotor y cuándo se capturan las lecturas del sensor ultrasónico y con qué frecuencia. También envía los datos del sensor al puerto serie.

  • Importar bibliotecas
  • Inicialice variables y pines.
  • Inicializar el objeto servo
  • Inicializar la comunicación en serie
  • Espere 3 segundos
  • Inicializar contadores a 0
  • Gire el servo 1 grado
  • Obtenga datos del sensor ultrasónico 10 veces (establecido de forma predeterminada)
  • Promedio de los datos
  • Envíe el promedio al puerto serie
  • Regrese al paso 7

Paso 5:el código MatLab

El código MatLab trata más con datos que con el control real de la placa, por lo que todos los datos del sensor se envían en serie a la PC, donde MatLab los lee.

Ahora, los datos que recibimos del Arduino nos dicen dos cosas. El grado de rotación del servo y la distancia de un obstáculo en esa dirección. Por lo tanto, los datos que tenemos en este punto están en el sistema de coordenadas polares. Para que tenga sentido para los ojos humanos cuando se visualiza, debe convertirse al sistema de coordenadas cartesiano o X-Y.

Entonces, el código MatLab hace exactamente esto. Obtiene datos en serie del puerto COM, los guarda en una matriz con el ángulo de rotación y luego los convierte en coordenadas cartesianas con la fórmula dada anteriormente.

Una vez hecho esto, da una salida al trazar los puntos en un gráfico. Coloqué el tablero en la caja y obtuve el siguiente resultado.

Paso 6:Conclusión

Aunque el sistema no es perfecto, hace el trabajo. Puede obtener una estimación aproximada del ancho y la longitud de la caja y envía los datos con precisión.

Los únicos errores que puedo ver en este momento se deben a la sacudida del sensor mientras el servo se está moviendo y a lecturas defectuosas del propio sensor.

Aparte de esto, el sistema funciona bien y se puede utilizar para experimentos de percepción de profundidad, así como para proyectos básicos de visión por computadora.

Código

  • matlab_code_to_run_on_pc.m
  • Código Arduino
matlab_code_to_run_on_pc.m MATLAB
Código MatLab para ser compilado y ejecutado en PC
 theta =0:(pi / 180):pi; s =serial ('COM10'); s.BaudRate =9600fopen (s) i =0; inc =1; while i <180 A =fget (s); num (i + 1) =str2num (A); i =i + 1; endfclose (s) j =1 while j <181 tab (j, 1) =(j-1) * inc tab (j, 2) =num (j) tab (j, 3) =num ( j) * cosd ((j-1) * inc) tab (j, 4) =num (j) * sind ((j-1) * inc) j =j + 1end% figure% polar (theta, num) plot (pestaña (:, 3), pestaña (:, 4)) 
Código Arduino Arduino
Código Arduino que se cargará en Arduino Yun
 #include  #include  #define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); Servo myservo; int pos =0; int it =10; void setup () {myservo.attach (9); Serial.begin (9600); retardo (3000);} bucle vacío () {int i =0; int t =0; int a =0; para (i =0; i <180; i ++) {unsigned int uS =sonar.ping (); myservo.write (i); retraso (20); para (t =0; t   

Esquemas

Archivo Fritzing para conexiones de sensores ultrasónicos y servo YunConfig.fzz

Proceso de manufactura

  1. Hacer Monitor Ambilight usando Arduino
  2. Sistema de robótica de detección humana con Arduino Uno
  3. Máquina de LEVITACIÓN ULTRASÓNICA usando ARDUINO
  4. FlickMote
  5. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  6. Monitor de frecuencia cardíaca con IoT
  7. Juguete controlado por Android con Raspberry Motor Shield
  8. IOT - Smart Jar usando ESP8266, Arduino y sensor ultrasónico
  9. WebServerBlink usando Arduino Uno WiFi
  10. Robot seguidor de línea
  11. Juego automatizado de Dino usando arduino