Tirando fotos com Arduino Mega e OV7670 com chip AL422.

Tirando fotos com Arduino Mega e OV7670 com chip AL422.

Este tutorial ensinará como tirar fotos coloridas com o Arduino Mega e a câmera OV7670 com chip AL422. Caso você não tenha os componentes necessários, poderá adquiri-los na minha página do Mercado Livre. Os 5 passos abaixo são simples e podem ser finalizados em poucos minutos. Então, mãos à obra!
Figura 1 - Kit à venda no Mercado Livre
Figura 2 - Material Necessário
Componentes Necessários
1 Arduino Mega 2530
1 módulo leitor de cartão microSD
1 cartão microSD (não incluso no kit)
1 câmera OV7670 com AL422
24 jumpers macho-fêmea
Passo 1 – Conexão entre o Arduino e o módulo de cartão microSD
Conecte o pino VCC do módulo de cartão microSD ao pino de 5 V no Arduino.
Conecte o pino CS ao pino 48 no Arduino.
Conecte o pino MOSI ao pino 51 no Arduino.
Conecte o pino SCK ao pino 52 no Arduino.
Conecte o pino MISO ao pino 50 no Arduino.
Conecte o pino GND ao pino GND no Arduino
Passo 2 – Conexão entre o Arduino e a câmera OV7670
Conecte o pino 3V3 da câmera ao pino 3.3V do Arduino.
Conecte o pino GND da câmera a um dos pinos GND do Arduino.
Conecte o pino SIOC da câmera ao pino 21 do Arduino.
Conecte o pino SIOD da câmera ao pino 20 do Arduino.
Conecte o pino WRST da câmera ao pino 22 do Arduino.
Conecte o pino RRST da câmera ao pino 23 do Arduino.
Conecte o pino WR da câmera ao pino 24 do Arduino.
Conecte o pino VSYNC da câmera ao pino 25 do Arduino.
Conecte o pino RCLK da câmera ao pino 26 do Arduino.
Conecte o pino OE da câmera a um dos pinos GND do Arduino.
Conecte o pino D7 da câmera ao pino 28 do Arduino.
Conecte o pino D6 da câmera ao pino 29 do Arduino.
Conecte o pino D5 da câmera ao pino 30 do Arduino.
Conecte o pino D4 da câmera ao pino 31 do Arduino.
Conecte o pino D3 da câmera ao pino 32 do Arduino.
Conecte o pino D2 da câmera ao pino 33 do Arduino.
Conecte o pino D1 da câmera ao pino 34 do Arduino.
 Conecte o pino D0 da câmera ao pino 35 do Arduino.

Figura 3 - Montagem final

Figura 4 - Montagem final
 
Passo 3 – Upload do programa de captura e armazenamento de imagem.
Faça o download do programa que se encontra neste link http://www.psycho-sphere.com/BeginningArduinoov7670CameraDevelopmen...
Inicie o Arduino IDE e abra o programa baixado no passo anterior.
Conecte o Arduino Mega ao seu computador e clique no botão Upload. Aguarde o término da transferência do código para o Arduino.
Na IDE, clique em Ferramentas >> Monitor Serial ou aperte Ctrl + Shift + M.
No Monitor Serial, digite t e clique no botão enviar. Será retirada uma foto na resolução QQVGA (modo padrão) e esta será salva no cartão microSD.
Importante: talvez seja necessário ajustar o foco da câmera. Após tirar a primeira foto, remova o cartão micro SD do módulo e transfira o arquivo com a extensão yuv para seu computador. Converta o arquivo para o formato png usando o programa ffmpeg (instruções no Passo 5). Se a foto parecer sem foco, faça o ajuste rotacionando a lente no sentido horário ou anti-horário. Retire uma nova foto e a converta para png. Se a foto estiver menos borrada do que a anterior, você rotacionou no sentido correto. Se não, realize a rotação no sentido contrário. Repita o movimento de rotação e tirar foto até conseguir o foco desejado.
Figura 5 - Monitor Serial
Digite qvga no Monitor serial e aperte ENTER. Os novos parâmetros da câmera serão mostrados. Digite t e pressione ENTER para tirar uma foto no modo QVGA e salvá-la no cartão micro SD.
Digite vga no Monitor serial e aperte ENTER. Os novos parâmetros da câmera serão mostrados. Digite t e pressione ENTER para tirar uma foto no modo VGA e salvá-la no cartão micro SD.
Passo 5– Convertendo as fotos para o formato PNG
Baixe a última versão do programa ffmpeg em https://www.ffmpeg.org
Dezipe e renomeie a pasta para ffmpeg. Recorte-a e cole para o c:\. Insira uma nova variável de ambiente apontando para c:\ffmpeg\bin.
Insira o cartão microSD em seu computador e copie os arquivos *.yuv ou *.raw para a pasta c:\ov7670 (crie caso ela não exista).
Abra o prompt de comando e digite cd c:\ov7670
Para converter foto QQVGA para PNG, rode o comando:
QQVGA
ffmpeg –f rawvideo –s 160x120 –pix_fmt yuyv422 –i INPUTFILE.YUV –f image2 –vcodec png OUTPUTFILE.PNG
Para converter foto QVGA para PNG, rode o comando:
QVGA
ffmpeg –f rawvideo –s 320x240 –pix_fmt yuyv422 –i INPUTFILE.YUV –f image2 –vcodec png OUTPUTFILE.PNG
Para converter foto VGA para PNG, rode o comando:
VGA
ffmpeg –f rawvideo –s 640x480 –pix_fmt bayer_bggr8 –i INPUTFILE.YUV –f image2 –vcodec png OUTPUTFILE.PNG

A Figura 6 mostra uma imagem obtida no modo VGA.
Figura 6 - imagem VGA (640x480 pixels)
Fonte : Chin, Robert. Beginning Arduino ov7670 Camera Development. Edição do Kindle.

Exibições: 5194

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Jr Paz em 16 setembro 2018 às 19:14

consigo via php conectar meu NODE, em um WebSerber MySQL e enviar os dados do Cartao/foto capturado pelo arduino? para eu acessar a foto remotamente?

passo 1, comando tirar foto
passo 2 armazenar no SD
passo 3 acessar dados e enviar como parametro para servidor WEB via php

?? na minha cabeca passa algo desse tipo.. mas acredito que seja mais complexo pelo fato da quantidade de memoria livre no NODE.. etc.. desculpe falta de experiencia.. precisava capturar imagens para um projeto meu da faculdade.. mas sem uso de um computador.. apenas no front end-final(ANDROID) acessar o conteudo da foto, o resto tudo feito com NODE e sensores..

Comentário de José Gustavo Abreu Murta em 20 abril 2018 às 9:21

Legal , obrigado por compartilhar o tutorial.

Infelizmente quando comprei o módulo OV7670, ele veio sem a memória cache FIFO AL422. 

E descobri que não dá para usar com o Arduino ! 

Se tem interesse nessa área, sugiro que veja esses outros tutoriais bem interessantes também:

http://bitluni.net/esp32-i2s-camera-ov7670/

http://bitluni.net/ov7670-with-fifo/

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço