- Description:
- Proyecto en MATLAB para la decodificación de ondas sonoras con un láser y un fotosensor.
- Last Change:
- Clone URL:
https://git.nezzontli.xyz/clone/proyecto-fisica-2do.git
Commit Briefs
docs(readme): actualizar enlace de File Exchange en badge (main)
- Reemplazar enlace existente con URL correcta al proyecto en MATLAB File Exchange.
chore: agregar `.gitignore` y actualizar README con badges y dependencias MATLAB
- Añadir archivo `.gitignore` con exclusiones específicas para MATLAB, sistemas operativos y herramientas IDE. - Incorporar badges de MATLAB, estado de pruebas y versiones en el README. - Detallar dependencias de MATLAB, incluyendo la toolbox FSDA.
docs(readme): añadir botón MATLAB Online y mejorar formato de tablas
- Integrar botón "Open in MATLAB Online" en la sección inicial - Reformatear tablas de resultados y descripción del hardware para mayor claridad
Cambio en el nombre (tags/v1.0.0)
Merge branch 'main' of codeberg.org:Richard7987/Proyecto-Fisica-2do
Cambios en codeberg README y en el pc
docs(readme): actualizar hardware y descripcion del montaje
- Tabla hardware: laser D18x65mm, ESP32 fuente 5V, modulo jack ShillehTek, soporte Neiko - Descripcion simulacion 3D actualizada con componentes reales - Pipeline paso 7: agregar modulo Jack ShillehTek
Actualizar README.md
Signed-off-by: Richard7987 <richard7987@noreply.codeberg.org>
docs(imagenes): actualizar capturas con hardware real
- Diagrama circuito: ESP32, laser D18x65mm, jack ShillehTek - Simulacion 3D: nuevo layout con soporte Neiko y componentes separados - Reconstruccion FFT: correlacion 1.0000 confirmada
Actualizar README.md
Signed-off-by: Richard7987 <richard7987@noreply.codeberg.org>
fix(demo): actualizar referencias de hardware en comentarios
- Comentario hardware: KY-008 → D18x65mm 650nm 5mW - fprintf resumen: actualizar nombre del laser - Parametros fisicos sin cambio (matematica independiente del HW)
Branches
Tree
| .gitignore | commits | blame |
| .idea/ | |
| Imagenes/ | |
| LICENSE | commits | blame |
| README.md | commits | blame |
| Scripts/ | |
README.md
# 🔬 Microfono Laser — Reconstruccion de Sonido por Vibracion de Vidrio
**Fisica Ondas, Oscilaciones y Espacios Vectoriales**
**Autor:** Alejandro B. E.
---

[](https://github.com/Richard7987/Proyecto-Fisica-2do/releases)

[](https://matlab.mathworks.com/open/github/v1?repo=Richard7987/Proyecto-Fisica-2do)
[](https://la.mathworks.com/matlabcentral/fileexchange/183431-proyecto-fisica-2do)
## Descripcion
Sistema optico-electronico que captura el sonido dentro de una caja insonorizada **sin contacto fisico**, usando la vibracion que el audio imprime sobre un vidrio. Un laser de 650 nm apunta al vidrio; el reflejo modulado por las vibraciones es capturado por un fotodiodo BPW34, amplificado por un TIA LM358 y un MAX9814, y digitalizado via el jack de microfono de la PC. MATLAB aplica la Transformada de Fourier para reconstruir el audio original.
```
Bocina → vibra vidrio → laser reflejado → BPW34 → TIA LM358 → MAX9814 → jack PC → MATLAB FFT
```
---
## Resultados
### Sistema completo — pipeline BPW34 → TIA → MAX9814 → FFT

| Señal | Frec. base | Error RMS | SNR (dB) | Correlacion |
|------------------------|-------------|-------------|--------------|-------------|
| Tono puro | 1000 Hz | 2.79 × 10⁻⁶ | **102.1 dB** | 1.0000 |
| Acorde Do Mayor | 262 Hz | 2.87 × 10⁻⁴ | **62.1 dB** | 1.0000 |
| Barrido chirp | 100–1000 Hz | 1.06 × 10⁻² | **30.5 dB** | 0.9996 |
| Compleja (5 armonicos) | 262 Hz | 3.00 × 10⁻⁴ | **63.1 dB** | 1.0000 |
---
### Analisis SVD — Espacios Vectoriales

La descomposicion en valores singulares revela la estructura del espacio vectorial de cada senal. El tono puro concentra el 99% de su energia en 1 modo; el acorde en 3 modos (uno por nota); la senal compleja en 5 modos (uno por armonico).
---
### Reconstruccion FFT

---
### Simulacion 3D del montaje experimental

Escena 3D animada del montaje completo: caja insonorizada, vidrio vibrante,laser industrial D18x65mm 650nm 5mW sobre soporte Neiko, BPW34 en tubo negro, ESP32 como fuente 5V, circuito TIA LM358 + MAX9814 + modulo jack ShillehTek en protoboard 830pts, y laptop con MATLAB.
---
### Diagrama de circuito

---
## Hardware
| Componente | Funcion | Valor clave |
|------------------------------|----------------------------|----------------------------------|
| Laser D18x65mm 650nm 5mW | Fuente de luz, enfocable | P = 5 mW, punto continuo |
| BPW34 (fotodiodo PIN) | Luz → corriente | R = 0.3 A/W @ 650 nm |
| LM358 (TIA) | Corriente → voltaje | Rf = 10 kΩ, Cf = 100 pF |
| Capacitor C_ac | Bloqueo DC | 10 µF |
| MAX9814 HiLetgo | Amplificador AGC | Av = 40 dB (GAIN flotante) |
| Capacitor C_sal | Bloqueo offset salida | 47 µF |
| Modulo Jack ShillehTek 3.5mm | Interfaz PC | Entrada microfono, breakout TRRS |
| ESP32 DIYables | Fuente de alimentacion 5V | Pin VIN → rail protoboard |
| Soporte Neiko con pinzas | Posicionar laser en angulo | Ajuste ~30° sobre el vidrio |
**Alimentacion:** ESP32 VIN (+5V) + GND → protoboard
---
## Software
### Dependencias MATLAB
- **MATLAB Student Suite** (Signal Processing Toolbox, Symbolic Math, etc.)
- **[FSDA — Flexible Statistics Data Analysis](https://www.mathworks.com/matlabcentral/fileexchange/72999-fsda)** (para análisis SVD avanzado)
### Estructura del repositorio
```
Proyecto-Fisica-2do/
├── Scripts/
│ ├── script_prueba_demostracion.m # Simulacion completa del sistema
│ ├── simulacion_3d_laser.m # Visualizacion 3D animada
│ └── diagrama_circuito.m # Esquematico del circuito
├── Imagenes/
│ ├── Sistema Laser-Fotosensor — Resultados Completos.png
│ ├── Analisis SVD — Espacios Vectoriales.png
│ ├── Reconstruccion FFT.png
│ ├── Simulacion 3D — Microfono Laser.png
│ └── Diagrama de Circuito — Microfono Laser.png
└── LICENSE
```
### Uso
```matlab
% 1. Simulacion matematica completa (no requiere hardware)
run('Scripts/script_prueba_demostracion.m')
% 2. Simulacion 3D animada del montaje (presionar Q para detener)
run('Scripts/simulacion_3d_laser.m')
% 3. Diagrama de circuito esquematico
run('Scripts/diagrama_circuito.m')
% Guardar en alta resolucion:
print(gcf, '-dpng', '-r300', 'diagrama_circuito.png')
```
**Requisitos:** MATLAB (base) + Signal Processing Toolbox
No requiere Simulink ni Simscape.
---
## Metodo
### Pipeline optico-electronico
```
1. Audio dentro de la caja → vibra el vidrio (Δx ~ µm)
2. Vidrio vibrante modula la intensidad del reflejo del laser
P_luz(t) = P_laser × [1 + m × audio(t)] (m = profundidad de modulacion)
3. BPW34 convierte luz en corriente:
I_foto = R × P_luz (R = 0.3 A/W)
4. TIA LM358 convierte corriente en voltaje:
V_TIA = I_foto × Rf (Rf = 10 kΩ)
5. C_ac elimina el offset DC
6. MAX9814 amplifica con AGC automatico (40 dB)
7. Modulo Jack ShillehTek 3.5mm → jack microfono PC → MATLAB
```
### Reconstruccion por FFT
```matlab
Y = fft(senal_capturada);
umbral = max(abs(Y)) * 0.1; % conservar componentes > 10%
mascara = abs(Y) > umbral; % filtro espectral
mascara = mascara | flipud(mascara); % simetria hermitiana
senal_rec = real(ifft(Y .* mascara)); % reconstruccion
```
### Analisis SVD
La matriz de trayectoria M ∈ ℝ^(ventana × cols) captura la estructura temporal de la senal. Su descomposicion M = UΣVᵀ revela cuantos modos son necesarios para representar el contenido espectral — directamente relacionado con el numero de frecuencias presentes.
---
## Licencia
Distribuido bajo los terminos del archivo [LICENSE](LICENSE).
---
*Proyecto integrador — Fisica 2do Semestre · Ondas, Oscilaciones y Espacios Vectoriales*