Skip to main content

Proyectos

0 · 0 ·
Table of Contents
Proyectos hechos a lo largo de mi vida. Son dos: un emprendimiento de Brownies gracias a los conocimientos de mi mamá sobre pastelería; y un holograma de publicidad realizado en la Universidad.

Brown nies #

Portada

En 2016, a mis 16 años, inicié este proyecto vendiendo en mi colegio. Con el tiempo, la demanda creció tanto que ya no tenía que salir a vender, la gente llegaba por sí sola. Decidí expandirme mediante publicaciones llamativas en Instagram, lo que resultó efectivo como estrategia publicitaria. En este período me acompañó mi mejor amigo Tomás, apoyando en las gráficas e ideas que iban surgiendo.

Más adelante, este emprendimiento prosperó durante mi tiempo en la universidad, donde se convirtió en parte de un proyecto para un ramo de negocios. El proyecto fue bien recibido, obteniendo elogios y generando ingresos significativos. Sin embargo, el desafío fue durante la pandemia, en donde era todo un tema el salir a entregar. Luego con el alza de costo de los insumos no salía rentable producir y vender brownies.

Logros obetinos: vender 60 kg de mezcla en dos meses. Costear un viaje a Europa vendiendo en la U (no funcionó por Covid). Emprendimiento rentable en el ramo de la U.

Portada
Holograma


Publigrama | La publicidad del futuro #

Portada
Holograma

El presente proyecto de Diseño se realizó en la Universidad, y describe un proyecto de publicidad interactiva que combina tecnologías de visualización 3D con hologramas y electrónica que permite esta interactividad a través de “botones de luz”.

#

PUBLIGRAMA Presentación final

Fabricación:

Soldadura y corte fierros

Corte láser MDF

Electrónica y programación:

Proyección publicidad interactiva en hologramas

Código Python: #
    
      



import serial
import time
import cv2
import threading

def enviar_numero_a_arduino(numero):
    arduino.write(str(numero).encode())
    time.sleep(2)

def reproducir_video(ruta_video):
    cap = cv2.VideoCapture(ruta_video)

    # Verificar si se puede abrir el video
    if not cap.isOpened():
        print("Error al abrir el video.")
        return

    # Obtener dimensiones de la ventana de video
    window_name = "Reproduciendo video"
    cv2.namedWindow(window_name, cv2.WND_PROP_FULLSCREEN)
    cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)

    while True:
        ret, frame = cap.read()

        if not ret:
            # Fin del video, salir de la reproducción
            break

        # Mostrar el fotograma en pantalla completa
        cv2.imshow(window_name, frame)

        # Esperar 30 ms y verificar si se presionó la tecla 'q' para salir
        if cv2.waitKey(30) & 0xFF == ord('q'):
            break
        if valor_anterior != valor:
            break

    # Cerrar ventana al finalizar la reproducción
    cv2.destroyAllWindows()

# Función para reproducir el video en un hilo separado
def reproducir_video_thread(ruta_video):
    thread = threading.Thread(target=reproducir_video, args=(ruta_video,))
    thread.start()
    return thread

# Configurar comunicación con Arduino
arduino = serial.Serial("COM5", 9600)
time.sleep(2)

# Rutas de los videos
ruta_rojo = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_rojo.mp4'
ruta_verde = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_verde.mp4'
ruta_azul = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_azul.mp4'
ruta_amarilla = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_amarillo.mp4'
ruta_morada = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_morado.mp4'
ruta_cian = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_cian.mp4'
ruta_blanco = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_blanco.mp4'

# Inicializar el valor anterior
valor_anterior = None
video_thread = None

while True:
    valor = arduino.readline().decode('utf-8').strip()
    print(valor)

    # Interrumpir el video en curso si se recibe un nuevo valor
    if video_thread is not None and video_thread.is_alive():
        video_thread.join()  # Esperar a que el hilo de reproducción termine
        cv2.destroyAllWindows()

    if valor == valor_anterior:
        # Si el valor es igual al valor anterior, reproducir el video actual nuevamente
        if valor == '1':
            video_thread = reproducir_video_thread(ruta_rojo)
        elif valor == '2':
            video_thread = reproducir_video_thread(ruta_verde)
        elif valor == '3':
            video_thread = reproducir_video_thread(ruta_azul)
        elif valor == '4':
            video_thread = reproducir_video_thread(ruta_amarilla)
        elif valor == '5':
            video_thread = reproducir_video_thread(ruta_morada)
        elif valor == '6':
            video_thread = reproducir_video_thread(ruta_cian)
        elif valor == '7':
            video_thread = reproducir_video_thread(ruta_blanco)
    else:
        # Si el valor es diferente al valor anterior, actualizar el valor anterior y reproducir el video correspondiente
        valor_anterior = valor
        if valor == '1':
            video_thread = reproducir_video_thread(ruta_rojo)
        elif valor == '2':
            video_thread = reproducir_video_thread(ruta_verde)
        elif valor == '3':
            video_thread = reproducir_video_thread(ruta_azul)
        elif valor == '4':
            video_thread = reproducir_video_thread(ruta_amarilla)
        elif valor == '5':
            video_thread = reproducir_video_thread(ruta_morada)
        elif valor == '6':
            video_thread = reproducir_video_thread(ruta_cian)
        elif valor == '7':
            video_thread = reproducir_video_thread(ruta_blanco)






    
  
Descargar

Código Arduino: #
    
      

#include "Arduino.h"


int espera = 100;
int aumento = 10;

int num_inicial = 50;
int num_final = 52;

///////////////////////////////////////////////                       SENSORES                      /////////////////////////////////////////////// 

int sens_1 = 9;    
int sens_2 = 10;    
int sens_3 = 11;
//int sens_4 = 10;  
//int sens_5 = 9; 
//int sens_6 = 8;     


///////////////////////////////////////////////                       LED RGB                       /////////////////////////////////////////////// 

int l_rojo = 2;   
int l_verde = 3;    
int l_azul = 4;
int l_amarillo = 5; 
//int l_morado = A0;  // ROJO
//int l_cian = A1; // VERDE
//int l_rgb = A2; // AZUL   



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////                     CÓDIGO                       /////////////////////////////////////////////// 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////                       SETUP                       ///////////////////////////////////////////////

void setup() {

  Serial.begin(9600);

  pinMode(sens_1, INPUT);
  pinMode(sens_2, INPUT);
  pinMode(sens_3, INPUT);
  //pinMode(sens_4, INPUT);
  //pinMode(sens_5, INPUT);
  //pinMode(sens_6, INPUT);

  pinMode(l_rojo, OUTPUT);
  pinMode(l_verde, OUTPUT);
  pinMode(l_azul, OUTPUT);
  //pinMode(l_amarillo, OUTPUT);
  //pinMode(l_morado, OUTPUT);
  //pinMode(l_cian, OUTPUT);
  //pinMode(l_rgb, OUTPUT);



  digitalWrite(l_rojo , HIGH);
  digitalWrite(l_verde , HIGH);
  digitalWrite(l_azul , HIGH);




}

  void loop() {



///////////////////////////////////////////////                       LOOP                       ///////////////////////////////////////////////



//////////////////////////////                      SENSORES                       /////////////////////////////////

//////////     ROJO     /////////
 if ((digitalRead(sens_1) == HIGH) & (digitalRead(sens_2)== LOW) & ((digitalRead(sens_3)== LOW))) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      num_final = 1;
      
      if (num_inicial != num_final){
        Serial.println("1");
        num_inicial = 1;
      }

      
      delay(espera);
 }

//////////     VERDE     /////////
 else if ((digitalRead(sens_2) == HIGH) & (digitalRead(sens_1)== LOW) & ((digitalRead(sens_3)== LOW))) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      num_final = 2;
      
      if (num_inicial != num_final){
        Serial.println("2");
        num_inicial = 2;
      }
      
      delay(espera);
 }

//////////     AZUL     /////////
 else if ((digitalRead(sens_3) == HIGH) & (digitalRead(sens_1)== LOW) & ((digitalRead(sens_2)== LOW))) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      num_final = 3;
      
      if (num_inicial != num_final){
        Serial.println("3");
        num_inicial = 3;
      }

      
      delay(espera);
 }

//////////     AMARILLO     /////////
 else if ((digitalRead(sens_1) == HIGH) & (digitalRead(sens_2)== HIGH) & ((digitalRead(sens_3)== LOW))) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      num_final = 4;
      
      if (num_inicial != num_final){
        Serial.println("4");
        num_inicial = 4;
      }

      
      delay(1500);
 }

//////////     MORADO     /////////
 else if ((digitalRead(sens_1) == HIGH) & (digitalRead(sens_3)== HIGH) & ((digitalRead(sens_2)== LOW))) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      num_final = 5;
      
      if (num_inicial != num_final){
        Serial.println("5");
        num_inicial = 5;
      }

      
      delay(1500);
 }

//////////     CIAN     /////////
 else if ((digitalRead(sens_2) == HIGH) & (digitalRead(sens_3)== HIGH) & ((digitalRead(sens_1)== LOW))) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      num_final = 6;
      
      if (num_inicial != num_final){
        Serial.println("6");
        num_inicial = 6;
      }

      
      delay(1500);
 }

 else if ((digitalRead(sens_2) == HIGH) & (digitalRead(sens_3)== HIGH) & ((digitalRead(sens_1)== HIGH))) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      num_final = 7;
      
      if (num_inicial != num_final){
        Serial.println("7");
        num_inicial = 7;
      }

      
      delay(espera);
 }
/*
 else if ((digitalRead(sens_4) == HIGH)) {
      // Enviar el mensaje "sensor activado" por el puerto serial
      Serial.println("7");
      /*
      digitalWrite(l_rojo , LOW);
      digitalWrite(l_verde , LOW);
      digitalWrite(l_azul , LOW);
      digitalWrite(l_amarillo,LOW);
      analogWrite(l_morado,0);
      analogWrite(l_cian,0);
      analogWrite(l_rgb,0);
      */
      delay(espera+aumento);
 }

/*


}

/*
//////////////////////////////                      Colores led rgb                       ///////////////////////////////// 
///*
  // Esperamos a recibir un número desde Python
  //while (!Serial.available()) {
  //  delay(10);
  //}

  // Leemos el número enviado desde Python
  if (Serial.available()>0){

    numero = Serial.parseInt();

    delay(100);


  // Si el número es mayor o igual a 5, encendemos el LED
  if (numero == 1) {
    //analogWrite(LEDROJO, 255);
    //delay(2000);
  }
  else if (numero == 2){
    //analogWrite(LEDROJO, 0);
    
    //delay(2000);
  }
  else if (numero == 3) {
    //analogWrite(LEDROJO, 0);
    //delay(2000);
  }
  delay(espera);
  }
}

*/




    
  
Descargar







There are no articles to list here yet.