terça-feira, março 31, 2020

ESP32-CAM: Um ESP32 com Câmera

Este módulo chamou a atenção de muita gente (aqui um exemplo de repercussão) quando foi lançado no segundo semestre de 2018: um ESP32  com uma micro-câmera por um preço bastante convidativo (US$10 na China). É bastante fácil de encontrar aqui no Brasil (a preços bem variados).

Infelizmente a maioria das informações que você encontra se resume a usar o exemplo da ExpressIf para streaming de vídeo com opção de reconhecimento facial. Neste post, e em outros, vou tentar examinar um pouco mais a câmera e construir outras aplicações para ela.


O Que é a ESP32-CAM

É uma plaquinha pequena (aproximadamente 4 x 3 cm) contendo:
  • Um módulo ESP32-S, que é o ESP32 que já vimos aqui, com uma flash de 4M bytes.
  • Um regulador de tensão, para poder ser alimentado por 5V (o ESP32 trabalha com 3,3V)
  • Um botão de reset
  • Um soquete para cartão microSD
  • Um conector para câmera
  • Um LED para ser usado como Flash para a câmera
  • 16 pinos de expansão, com espaçamento de 0,1" (o mesmo das protoboards)



O que a placa não tem é um conversor serial USB, você terá que usar um externo.

As Câmeras

O ESP32-CAM suporta dois modelos de câmera, OV2640 e OV7670. O que normalmente vem com os kits é o OV2640. Ambos são incrivelmente pequenos, capazes de tirar fotos coloridas e incluem uma certa capacidade de processamento de imagem.

A OV2640 é uma câmera de 2M pixels (1600x1200), capaz de gerar diretamente arquivos JPEG. Dependendo da resolução você pode capturar vídeos a 15, 30 ou até 60 quadros por segundo.

A OV7670 é menos poderosa, com resolução VGA (640x480) e não é capaz de gerar JPEG. Os vídeos, na resolução VGA, são de 30 quadros por segundo.

Programando Com a IDE Arduino - Ferramentas

Para preparar a IDE do Arduino para programar para o ESP32-CAM não é muito difícil. Tendo uma versão recente da IDE instalada no micro, entre nas Preferências e acrescente "https://dl.espressif.com/dl/package_esp32_index.json" no caminho de repositório de placas:



Entre em Ferramentas / Gerenciador de Placas e procure por ESP32:



Instale o suporte ao ESP32 (demora um pouco). Ao final você terá nas a "AI Thinker ESP32-CAM" nas opções de placa:



Programando Com a IDE Arduino - Hardware

Como dito, o ESP32-CAM não possui interface USB, você precisará de um adaptador serial USB / TTL. Além disso, para entrar no bootloader do ESP32 é necessário dar um reset com o IO0 ligado a terra. A montagem abaixo mostra como fazer isso:



Programando Com a IDE Arduino - A Parte Complicada

Infelizmente não existem muitos tutoriais sobre de uso da câmera.

Você pode dar uma olhada na documentação oficial no SDK da ExpressIf:
https://github.com/espressif/esp32-camera

Esta conversa num fórum tem alguns detalhes:
https://www.b4x.com/android/forum/threads/esp32-camera-picture-capture-and-video-streaming-updated-with-code.110131/

O blog RandomNerdTutorials tem alguns artigos interessantes:
https://randomnerdtutorials.com/esp32-cam-take-photo-save-microsd-card/


Ou você pode aguardar os meus posts futuros! ; )

Nenhum comentário: