¿Cómo puedo enviar video desde mi módulo de cámara Arduino a mi pantalla de Android?

5

Estoy intentando conectar un módulo de cámara a mi Arduino Mega, conectar mi Mega a mi teléfono Android (a través de BlueTooth u otro) y enviar la vista en vivo de la cámara al teléfono móvil.

Vi un video en línea que mostraba esto para imágenes fijas, una imagen capturada por la cámara El módulo en el Arduino se envió a Android y la imagen de salida se vio después de un par de segundos (el tiempo para enviar la imagen por BT).

¿Esto se puede hacer con video en vivo en lugar de imagen? Si es así, por favor guíame; si no, por favor sugiera algunas soluciones.

    
pregunta mabdrabo

1 respuesta

5

La posibilidad de transferir video en vivo a través de Bluetooth desde un mega de Android es baja pero no nula, y está limitada por lo siguiente:

  1. Limitaciones de rendimiento práctico de Bluetooth:
    • Bluetooth 1.2 = ~ 700 Kbit / s
    • Bluetooth 2.0 + EDR = ~ 2.1 MBit / seg
    • Bluetooth 3.0 + HS, 4.0: Estos usan una ruta inalámbrica separada (por ejemplo, 802.11, como WiFi) para los datos de alta velocidad, por lo que no los tengo en cuenta por ahora.
    • El video en vivo de baja resolución (VGA 256 colores) necesita al menos 200 KBPS, la HD necesita 2 MBPS o más, ancho de banda sostenido. Esa es la razón por la que todavía no hay muchos dispositivos Bluetooth de transmisión de video en vivo para teléfonos inteligentes.
    • Alternativas : use un escudo WiFi en lugar de Bluetooth para la comunicación.
  2. Limitaciones de Arduino Mega:
    • Capturar, procesar y comprimir video en vivo en tiempo real, incluso con una resolución VGA (640 x 480 píxeles) va a ser todo un desafío para el microcontrolador ATmega2560, si se puede hacer.
    • La memoria (RAM, Flash, lo que sea) será otro desafío: un solo cuadro con resolución de color VGA 256 requiere más de 300 kB solo para el búfer de cuadros, el doble que para una mayor profundidad de color. Para MJPG u otra codificación / compresión, se necesitaría un mínimo de 2 x Tamaño de memoria intermedia de trama para el procesamiento. Esto requiere una solución de memoria externa agregada al Arduino Mega.
    • Solución alternativa : tal vez se pueda usar un escudo externo con captura y compresión de video, con un DSP incorporado y una memoria RAM de memoria intermedia, si lo encuentra.
      • En cuyo caso, el Arduino Mega ya no es necesario.
    • ¿Hay módulos Bluetooth, módulos XBee / ZigBee o protectores que puedan mantener las tasas de rendimiento máximas indicadas anteriormente? Si los hay, sería interesante saberlo.
  3. Restricciones del teléfono Android :
    • ¿La versión actual del sistema operativo Android es compatible con los puntos finales de video a través de Bluetooth? De lo contrario, se requerirá un código de bajo nivel en el lado de Android, solo para recuperar los datos del flujo de video.
    • Los requisitos de procesamiento para mostrar tales transmisiones de video de Bluetooth sin procesar entrantes requerirían baterías pesadas, o permitirían una duración de operación muy corta a menos que esté acoplado a un cargador.
    • Alternativas : utiliza WiFi, transmite desde Arduino utilizando un protocolo de transmisión de video estándar, usa un reproductor de video estándar de Android con soporte de transmisión para reproducir la transmisión.

Como se desprende de los puntos anteriores, el requisito es factible , siempre que se acepten restricciones: resolución muy baja, profundidad de color baja, video de baja velocidad de cuadros, O ... todo el procesamiento de video se descarga en una placa hija DSP más potente que el propio Arduino, con su propia conectividad inalámbrica integrada.

Lo último es la solución alternativa que pide la pregunta.

Si este es el enfoque práctico, depende del debate.

    
respondido por el Anindo Ghosh

Lea otras preguntas en las etiquetas