Como criar um comedouro automático exclusivo para gatos com o UNIHIKER K10
Introdução:
Este projeto é uma aplicação de reconhecimento de imagem por inteligência artificial no cenário de proteção a animais abandonados. O projeto utiliza a função embutida de detecção offline de gatos/cães do Unihiker K10. Desta forma, o Alimentador Automático pode identificar com precisão e atender gatos abandonados que necessitam de ajuda. Quando o alimentador reconhece um gato e detecta que o animal se aproximou da tigela de ração, ele libera automaticamente alimento para alimentação. Outros animais que entrarem na área de reconhecimento não serão alimentado.

Instruções de Operação
Mova gradualmente o modelo de gato (ou uma foto de gato) para dentro da zona de reconhecimento. O Alimentador de Gatos identificará o animal e o dispensador de ração será ativado para liberar o alimento. Quando o gato abaixar a cabeça para comer, o quadro de reconhecimento facial desaparecerá. O K10 iniciará uma contagem regressiva de 10 segundos. Durante este período, a máquina não liberará alimento adicional, prevenindo o problema de alimentação repetida que pode ocorrer quando o gato abaixa e levanta a cabeça repetidamente durante a alimentação. Se outro modelo animal, como um modelo de faisão, for introduzido na área de reconhecimento, o K10 não o identificará e o dispensador de ração permanecerá inativo.


Passos de Produção:
(Dica: Antes de iniciar a montagem, certifique-se de que as peças impressas em 3D já estejam pré-impressas. Os arquivos para as peças impressas estão localizados no final do artigo.)
PASSO 1
Utilize um quadro de exposição A3 e esponjas de suporte de 3 x 3 cm para acolchoar a parte superior e inferior.

PASSO 2
Imprima em 3D o suporte K10, fixe-o à placa inferior do suporte K10 usando o parafuso de fixação do suporte K10, instale o K10, conecte a linha de alimentação do K10 e a fiação da porta P1, respectivamente, e passe os dois fios pelo orifício reservado na placa inferior.


PASSO 3
Monte o dispensador de ração impresso em 3D. Conecte o relé, o dispensador de ração e a porta P1 do Unihiker K10. Para orientação, consulte as imagens fornecidas.

PASSO 4
Posicione o dispensador de ração no orifício pré-cortado, coloque o modelo de gato e organize o feixe de cabos.

PASSO 5
Despeje as rações granuladas na tigela de comida do gato. (recomenda-se usar menos de 25 bolinhas, pois quantidade maior pode causar obstrução).

PASSO 6
Conclua a instalação, ligue o K10 e o relé, e inicie a prática do projeto.
Veja a seguir uma versão demonstrativa em vídeo (apenas para referência).
/*!
* MindPlus
* esp32s3bit
*
*/
#include "unihiker_k10.h"
#include "AIRecognition.h"
// Dynamic variables
volatile float mind_n_time;
// Create an object
UNIHIKER_K10 k10;
AIRecognition ai;
uint8_t screen_dir=2;
// Main program start
void setup() {
k10.begin();
pinMode(P1, OUTPUT);
k10.initScreen(screen_dir);
ai.initAi();
k10.initBgCamerImage();
k10.setBgCamerImage(false);
k10.creatCanvas();
ai.switchAiMode(ai.NoMode);
mind_n_time = 0;
ai.switchAiMode(ai.Cat);
k10.setBgCamerImage(true);
}
void loop() {
if ((mind_n_time==5)) {
for (int index = 0; index < 5; index++) {
k10.canvas->canvasText((String("Waiting For ") + String((String(mind_n_time).toInt()))), 1, 0x0000FF);
mind_n_time -= 1;
delay(1000);
}
k10.canvas->canvasClear(1);
}
if ((mind_n_time==0)) {
if (ai.isDetectContent(AIRecognition::Cat)) {
if ((ai.getCatData(AIRecognition::Length)>180)) {
k10.canvas->canvasText("Feeding...", 1, 0x0000FF);
k10.canvas->updateCanvas();
digitalWrite(P1, HIGH);
delay(3000);
digitalWrite(P1, LOW);
while (!(100>ai.getCatData(AIRecognition::Length))) {}
mind_n_time = 5;
}
}
}
}
💬 Já criamos uma comunidade WhatsApp exclusiva para usuários de língua portuguesa do Brasil! Entre para o grupo e receba as informações mais atualizadas, novidades incríveis de projetos, descontos e muitas outras surpresas!
Whatsapp comunidade: https://chat.whatsapp.com/KTCdPBQDDWTGHlS5LoO8HC
