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

Sonda usando arduino y visualización en procesamiento IDE

Componentes y suministros

Arduino UNO
× 1
Micro-servo motor SG90
× 1
Sensor ultrasónico - HC-SR04 (genérico)
× 1
Cables de puente (genéricos)
× 1
Protoboard sin soldadura de tamaño completo
× 1

Herramientas y máquinas necesarias

Pistola de pegamento caliente (genérica)
Kit de cautín, SolderPro 150

Aplicaciones y servicios en línea

Arduino IDE
El procesamiento de la base de procesamiento

Acerca de este proyecto

Hola a todos, me sugirieron hacer un automóvil para evitar obstáculos, pero pensé que era demasiado común y poco práctico hacer uno ..., así que pensé en hacer un sonar usando el concepto de servo y sensor HC-SR04 del automóvil para evitar obstáculos.

No tenía una pantalla tft lcd debido a que no sabía cómo mostrar la salida de la sonda. ¡Entonces pensé en usar el IDE de procesamiento, ya que permitía mostrar la salida de la sonda en mi PC también con una buena resolución! pero como era nuevo en el procesamiento de IDE, no sabía cómo usarlo, así que para la práctica usé el editor web p5 (solo para practicar) que utilicé el procesamiento de Ide y algunas bibliotecas para leer la salida de la sonda y la visualización en la PC.

He adjuntado un sensor ultrasónico en el servomotor usando una pistola de pegamento caliente para que el sensor ultrasónico gire con el servo y cubra un rango de 180 grados y luego la salida de si se detecta un objeto o no se muestra en el procesamiento IDE y escribí un código más que muestra con precisión la distancia y el ángulo.

Amigos, también he compartido cómo se ve el resultado en el procesamiento de IDE, si pueden usar la imagen como referencia con su proyecto :)

Como sabemos cómo se ve el ensamblaje y la salida, lo único que queda es el video de salida, mire el video hasta el final para comprender la salida mucho más correctamente.

Código

  • Código de sonda para arduino IDE
  • Código de sonda para procesar IDE
Código de sonda para arduino IDE C / C ++
 #include  const int trigPin =12; const int echoPin =11; larga duración; int distancia; Servo s1; void setup () {Serial.begin (9600); pinMode (trigPin, SALIDA); pinMode (echoPin, ENTRADA); s1.attach (9);} bucle vacío () {para (int i =0; i <180; i =i + 1) {s1.write (i); retraso (30); distancia =calDist (); Serial.print (i); Serial.print (","); Serial.print (distancia); Serial.print ("."); } para (int i =180; i> 0; i =i-1) {s1.write (i); retraso (30); distancia =calDist (); Serial.print (i); Serial.print (","); Serial.print (distancia); Serial.print ("."); }} int calDist () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, BAJO); duración =pulseIn (echoPin, HIGH); distancia =duración * 0.034 / 2; distancia de retorno;} 
Código de sonda para procesar IDE Java
 procesamiento de importación.serial. *; Serial myPort; String ang =""; String distance =""; String data =""; int ángulo, dist; void setup () {size (2000,800); myPort =new Serial (este, "COM3", 9600); myPort.bufferUntil ('.'); fondo (0);} vacío dibujar () {relleno (0,5); noStroke (); rect (0, 0, ancho, alto * 0.93); noStroke (); llenar (0,255); rect (0, alto * 0.93, ancho, alto); drawRadar (); Dibujar linea(); dibujarObjeto (); drawText ();} void serialEvent (Serial myPort) {data =myPort.readStringUntil ('.'); datos =data.substring (0, data.length () - 1); int index1 =data.indexOf (","); ang =data.substring (0, index1); distancia =data.substring (index1 + 1, data.length ()); ángulo =int (ang); dist =int (distancia); System.out.println (ángulo);} void drawRadar () {pushMatrix (); sin relleno(); strokeWeight (0,5); accidente cerebrovascular (10,255,10); traducir (ancho / 2, alto-alto * 0.06); línea (-ancho / 2,0, ancho / 2,0); arco (0,0, (ancho * 0.5), (ancho * 0.5), PI, TWO_PI); arco (0,0, (ancho * 0.25), (ancho * 0.25), PI, TWO_PI); arco (0,0, (ancho * 0,75), (ancho * 0,75), PI, TWO_PI); arco (0,0, (ancho * 0.95), (ancho * 0.95), PI, TWO_PI); línea (0,0, (- ancho / 2) * cos (radianes (30)), (- ancho / 2) * sin (radianes (30))); línea (0,0, (- ancho / 2) * cos (radianes (60)), (- ancho / 2) * sin (radianes (60))); línea (0,0, (- ancho / 2) * cos (radianes (90)), (- ancho / 2) * sin (radianes (90))); línea (0,0, (- ancho / 2) * cos (radianes (120)), (- ancho / 2) * sin (radianes (120))); línea (0,0, (- ancho / 2) * cos (radianes (150)), (- ancho / 2) * sin (radianes (150))); accidente cerebrovascular (175,255,175); línea (0,0, (- ancho / 2) * cos (radianes (15)), (- ancho / 2) * sin (radianes (15))); línea (0,0, (- ancho / 2) * cos (radianes (45)), (- ancho / 2) * sin (radianes (45))); línea (0,0, (- ancho / 2) * cos (radianes (75)), (- ancho / 2) * sin (radianes (75))); línea (0,0, (- ancho / 2) * cos (radianes (105)), (- ancho / 2) * sin (radianes (105))); línea (0,0, (- ancho / 2) * cos (radianes (135)), (- ancho / 2) * sin (radianes (135))); línea (0,0, (- ancho / 2) * cos (radianes (165)), (- ancho / 2) * sin (radianes (165))); popMatrix ();} vacío drawLine () {pushMatrix (); strokeWeight (9); accidente cerebrovascular (0,255,0); traducir (ancho / 2, alto-alto * 0.06); línea (0,0, (ancho / 2) * cos (radianes (ángulo)), (- ancho / 2) * sin (radianes (ángulo))); popMatrix ();} vacío drawObject () {pushMatrix (); strokeWeight (9); carrera (255,0,0); traducir (ancho / 2, alto-alto * 0.06); float pixleDist =(dist / 40.0) * (ancho / 2.0); float pd =(ancho / 2) -pixleDist; float x =-pixleDist * cos (radianes (ángulo)); float y =-pixleDist * sin (radianes (ángulo)); if (dist <=40) {línea (-x, y, -x + (pd * cos (radianes (ángulo))), y- (pd * sin (radianes (ángulo)))); } popMatrix ();} vacío drawText () {pushMatrix (); llenar (100,200,255); textSize (25); texto ("10cm", (ancho / 2) + (ancho * 0.115), alto * 0.93); texto ("20cm", (ancho / 2) + (ancho * 0.24), alto * 0.93); texto ("30 cm", (ancho / 2) + (ancho * 0.365), alto * 0.93); texto ("40cm", (ancho / 2) + (ancho * 0.45), alto * 0.93); if (dist <=40) {text ("Distancia:" + dist, ancho * 0,7, alto * 0,99); } traducir (ancho / 2, alto-alto * 0.06); textSize (25); text ("30", (ancho / 2) * cos (radianes (30)), (- ancho / 2) * sin (radianes (30))); text ("60", (ancho / 2) * cos (radianes (60)), (- ancho / 2) * sin (radianes (60))); text ("90", (ancho / 2) * cos (radianes (91)), (- ancho / 2) * sin (radianes (90))); text ("120", (ancho / 2) * cos (radianes (123)), (- ancho / 2) * sin (radianes (118))); text ("150", (ancho / 2) * cos (radianes (160)), (- ancho / 2) * sin (radianes (150))); popMatrix (); } 

Esquemas


Proceso de manufactura

  1. TinyML-Language Detector basado en Edge Impulse y Arduino
  2. Juego de giroscopio Arduino con MPU-6050
  3. Dados digitales Arduino
  4. Máquina de LEVITACIÓN ULTRASÓNICA usando ARDUINO
  5. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  6. Registrador de datos de temperatura y humedad
  7. IOT - Smart Jar usando ESP8266, Arduino y sensor ultrasónico
  8. Contador de autos usando Arduino + Procesamiento + PHP
  9. Control del brillo del LED usando Bolt y Arduino
  10. Control total de su televisor con Alexa y Arduino IoT Cloud
  11. Cómo hacer una brújula usando Arduino y Processing IDE