Cambiar de video por medio de ultrasonido de arduino


Primero realizamos el código de Pressing, se debe descargar la librería de mini como la del sonido que se consigue desde el mismo programa. Después de guardar el proyecto, en el mismo sitio deben crear una carpeta con el nombre de «data», en ella tendrán video1.mp4, video2.mp4 y video3.mp4

import processing.video.*;
import processing.serial.*;

Serial port;  //Crea un objeto de clase serial
float valores[] = {101,40}; // variable que almacena lo del puerto serial
Movie myMovie1;
Movie myMovie2;
Movie myMovie3;


void setup() {
  //size(2160,3840);
  fullScreen();
  frameRate(30);
  smooth();
  
  myMovie1 = new Movie(this, "video1.mp4");
  myMovie1.loop();
  
  myMovie2 = new Movie(this, "video2.mp4");
  myMovie2.play();
  
  myMovie3 = new Movie(this, "video3.mp4");
  myMovie3.loop();
  
  //se inicializa el puerto por donde recibiremos la informacion
  port = new Serial(this, "COM3",115200); // cambiar puerto si es necesario
  port.bufferUntil('\n');
  
}

void draw() {
   background(0);
    
  //esto sirve para voltear el video
  translate(width/2, height/6);
   //rotate(radians(-90));
   
    if(valores[0] < 100 && valores[0] > 38){
        myMovie1.stop();
        myMovie2.play();
        myMovie3.stop();
        image(myMovie2, -640, -360, 1080,1920);
    }else{
        if(valores[0] > 38  && valores[0] > 38){
           myMovie1.play();
           myMovie2.stop();
           myMovie3.stop();
           image(myMovie1,  -640, -360, 1080,1920);
       }
       if(valores[0] < 38 ){
            myMovie1.stop();
            myMovie2.stop();
            myMovie3.play();
            image(myMovie3,  -640, -360, 1080,1920);
        }
    }
    
   println("valores[0]");
   println(valores[0]);
   println(" ");
   
//pueden activarlo y desactivarlo 
   //println("valores[1]");
   //println(valores[1]);
   //println(" ");
   
   
   
}

void serialEvent(Serial p){
  String dato = p.readStringUntil('\n'); // leemos el buffer del puerto serie
  
  if(dato != null){
    dato = trim(dato); 
    valores = float(split(dato, ',')); 
  }
}

// Llamado cada vez que un nuevo cuadro está disponible para leer
void movieEvent(Movie m) {
  m.read();
}

Arduino.

Para este paso es importante tener el Arduino conectado al computador, al igual que el código. Es necesario 1 Arduino, 2 sensores de ultrasonido y una protoboard

const int trig = 12;
const int echo = 11;

const int trig2 = 8;
const int echo2 = 7;

float distancia;
float tiempo;

float distancia2;
float tiempo2;

String datos;

void setup() {
  //sensor1
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);

  //sensor2
  pinMode(trig2, OUTPUT);
  pinMode(echo2, INPUT);
  Serial.begin(115200);

}
void loop() {
  //sensor1
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  //Tomar el tiempo hasta que regresa la onda
  tiempo = pulseIn(echo, HIGH);
  distancia = 0.017*tiempo;
  


  //sensor2 
  digitalWrite(trig2,HIGH);
  delayMicroseconds(10);
  digitalWrite(trig2,LOW);
  //Tomar el tiempo hasta que regrese la onda
  tiempo2 = pulseIn(echo2, HIGH);
  distancia2 = 0.017*tiempo2;


  datos = "";
  datos += distancia;
  datos += ",";
  datos += distancia2;

  Serial.println(datos);


 delay(900);
     
    
}
,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *