Como posso enviar vídeo do módulo de câmera do Arduino para a tela do meu Android?

9

Estou tentando conectar um módulo de câmera ao meu Arduino Mega, conectar meu Mega ao meu telefone Android (através do BlueTooth ou outro) e enviar a exibição ao vivo da câmera para o telefone móvel.

Vi um vídeo on-line que mostrava isso para imagens estáticas - uma imagem capturada pelo módulo da câmera no Arduino foi enviada ao Android e a imagem de saída foi visualizada após alguns segundos (o tempo para enviar a imagem pela BT).

Isso é possível com vídeo ao vivo em vez de imagem? Se sim, por favor me guie; se não, sugira algumas soluções alternativas.

mabdrabo
fonte
Olá Mabdrabo, bem-vindo ao robotics.stackexchange! Atualizei seu texto um pouco para melhor legibilidade. Você consegue encontrar o URL do vídeo original que viu online?
Ian

Respostas:

8

Você tem opções diferentes (prioridade por nível de dificuldade):

  1. Usando um smartphone como câmera. Na verdade, existem aplicativos para isso. Se você pode conectar um telefone ao seu robô, poderá transmitir o vídeo ao vivo em outro telefone ou na web. No entanto, o telefone conectado ao robô deve ter uma conexão com a Internet (3G ou mesmo Edge). Pesquise "transmissão ao vivo" na App Store ou no Google Play.

  2. Usando uma câmera IP . Esta opção é bastante simples e requer que você tenha uma câmera IP que pode ser controlada pelo Arduino. A câmera IP pode transmitir vídeo sem fio para o seu roteador ou torta de framboesa. Você pode conectar outro telefone ou computador ao roteador para ver a imagem ao vivo.

  3. Usando um Raspberry Pi. O Id normalmente não faria manipulações de vídeo ou imagem na plataforma Arduino por causa do baixo desempenho obtido. Você pode conectar um Raspberry Pi ao Arduino. E uma boa câmera para Raspberry pi. O Arduino pode enviar comandos para o Raspberry pi quando iniciar a transmissão e assim por diante. Você também pode fazer manipulações de imagem no Pi. E como o Raspberry pi pode funcionar como um roteador, você pode conectar seu smartphone ao raspberry pi por meio de wifi ou até Bluetooth. Você obterá um vídeo agradável e alto em FPS, mesmo com manipulações de texto / cor.

  4. Você pode usar o Android ADK como seu controlador principal. E então o Arduino é configurado como um acessório. Dessa forma, o Arduino pode comandar o Android o que fazer. Um celular barato baseado em Android custará cerca de 100 USD e você terá muitos recursos pelo preço. Como GPS, câmera, bateria etc. A maioria dos smartphones modernos tem a capacidade de criar um ponto de acesso wifi. Você pode conectar qualquer outra plataforma wifi a esse ponto de acesso e controlar o robô ou, no seu caso, assistir a um vídeo ao vivo. Este é o método mais elegante na minha opinião.


fonte
Na verdade, eu fiz o que você disse em # 1, muito obrigado :)
mabdrabo
1

Minha solução é uma solução alternativa.

Não envio quadros de imagem relativamente grandes via Bluetooth, mas uso o telefone Android com OpenCV para gravar o vídeo ao vivo e direcionar o Arduino via Bluetooth com alguns comandos curtos após o processamento da imagem. O telefone está localizado próximo ao Arduino, assim como uma câmera conectada ao Arduino.

Se você quiser ver as imagens - ou alguma versão processada delas - remotamente, poderá usar outro telefone conectado ao telefone da câmera através de uma segunda conexão Bluetooth.

Não estou pronto com o exposto acima, uma versão do Mindstorms NXT, Android e OpenCV está aqui .

rics
fonte
1

Aqui está como eu consegui resolver o meu problema: instalei minha webcam IP antiga de incêndio , configurei um ponto de acesso wifi do meu nexus4, conectado a ele pelo incêndio, peguei o ip do incêndio e o coloquei no visualizador da web do nexus4.

mabdrabo
fonte
1

Sim, é possível, mas observe os seguintes pontos.

1) se você estiver usando Bluetooth, a taxa de transferência de dados depende de versões diferentes, como para a v2 blue tooth a taxa de transferência de dados é de 3 Mb \ s.

2) Agora, suponha que você esteja usando uma câmera como ov7670 no modo QVGA (320 x 240 pixels para um quadro) cada pixel tem 8 bits; para um bom vídeo, você precisa de 30 quadros por segundo, ou seja, 76800 bytes para um quadro, por 30 quadros é de 2,3 Mb \ s.

3) Agora, com 2,3 MB \ S <3 MB \ s, você pode viver o streaming vedio.

4) O resto depende de quão bom você é para entender a programação e fazer conexões eletrônicas com diferentes módulos.

Muhammed Hussain Ali
fonte