Módulo Grove Vision AI

Como parte do nosso compromisso com a melhoria contínua, evoluímos nossa linha de produtos e o suporte para esta versão foi encerrado. Recomendamos que você conheça e adquira o Grove Vison AI V2 para uma experiência aprimorada. Se você estiver usando a V1 e tiver qualquer dificuldade, não hesite em entrar em contato com nossa equipe de suporte pós-venda. Estamos comprometidos em oferecer a você a melhor assistência possível.
Introdução
O sensor Grove Vision AI Module representa uma câmera de IA do tamanho de um polegar, um sensor personalizado que já possui um algoritmo de ML instalado para detecção de pessoas e outros modelos personalizados. Fácil de implantar e exibir em poucos minutos, ele funciona em modo de consumo de energia ultrabaixo e fornece duas formas de transmissão de sinal e vários módulos onboard, o que o torna perfeito para começar a usar uma câmera com tecnologia de IA.
Neste wiki, mostraremos como utilizar o sensor Grove Vision AI Module conectando a série seeed studio XIAO e Arduino para detectar pessoas, panda e então exibi-las na página da web.
Especificação
| Parâmetros | Descrição | Observação |
|---|---|---|
| Conector | Grove (base Grove para Arduino) | Carga de 5V e transmissão de dados |
| Soquete de 7 pinos de dupla fileira (seeed duino XIAO) | Carga de 5V e transmissão de dados | |
| USB Type-C | Carga de 5V e gravação de firmware | |
| Modo de Comunicação | IIC | |
| Processador | Himax HX6537-A | DSP de 400Mhz (consumo de energia ultrabaixo) |
| Sensor da Câmera | Chip OV2640 | Resolução 1600*1200 |
| Microfone | Chip MSM261D3526H1CPM | Sensibilidade -26dBFs |
| Sensor Acelerômetro | Sensor STLSM6DS3TR-C | Acelerômetro 3D e giroscópio 3D |
Características
- Câmera de IA fácil de usar: aplica algoritmo de Machine Learning em borda no sensor de câmera, perfeita para detecção de objetos
- Plug and Play: permite realizar todas as funções e exibição em poucos minutos, sem esforço
- Consumo de energia ultrabaixo: ativa quando detecta objetos em movimento para economia de energia
- Sensor de câmera compacto com tecnologia de IA: o dispositivo em si é do tamanho de um polegar, baseado em visão e adequado para Edge Intelligence
- Design de sensor personalizado: suporta modelos de ML personalizados definidos pelos usuários
- Dois tipos de transmissão de sinal suportados: consulte a conexão elegante seeed studio XIAO e a conexão simples da base Grove para Arduino
- Sensor de câmera onboard: integra chip OV2640 com resolução de 1600*1200
- Microfone onboard: integra chip MSM261D3526H1CPM com sensibilidade de -26dBFs
- Sensor acelerômetro onboard: integra sensor STLSM6DS3TR-C para acelerômetro 3D e giroscópio 3D
- Flash SPI onboard de 32 MB ultrabaixo consumo de energia
- Um fio para toda a saída de dados: representa a conexão simplificada da família Grove, exigindo apenas um cabo Grove entre o sensor e a placa única
Visão Geral de Hardware
Presumimos que você queira conhecer alguns parâmetros básicos do produto. As tabelas a seguir apresentam informações sobre as características e o pinout do sensor Grove Vision AI Module.
| Característica | Valor | Unidade |
|---|---|---|
| Tensão de operação | 5 | V |
| Taxa | 115200 | |
| Interface I2C | seeed studio XIAO & Arduino | - |
| Fonte de alimentação | conector duplo de 7 pinos & Type-C | - |
| Interface de download e gravação de firmware | Type-C | - |
| Dimensões | 402013 | mm |
Visão Geral do Pinout

- 2 —— BL702
- 3 —— MIC MSM261D3526H1CPM
- 4 —— LSM6DS3TR-C de 6 eixos
- 5 —— SPI Flash
- 9 —— USB type C
- 10 —— Soquete fêmea duplo de 7 pinos
- 11 —— Botão de Reset
- 12 —— Botão BOOT
- 13 —— Botão USER

- 1 —— HX6537-A
- 6 —— Conector da Câmera
- 7 —— Chip DC-DC
- 8 —— Conector Grove
- 14 —— Luz de alimentação
- 15 —— Luz indicadora de gravação
Primeiros Passos
Mostraremos a você a função básica do módulo e depois apresentaremos a forma personalizada para que você possa construir seu próprio modelo de ML. Mas antes de aplicarmos totalmente o módulo aos nossos projetos, serão necessários vários passos para deixar o módulo pronto.
Preparação
Hardware
- Grove Vision AI Module Sensor
- PC host Windows (Win10 testado)
- Cabo Type-C
Visão Geral da Biblioteca Arduino
Se esta é a sua primeira vez usando Arduino, recomendamos fortemente que você consulte Primeiros Passos com Arduino.
O código que usamos aqui fornece vários métodos de classificação e modelos selecionáveis, incluindo modelos personalizados. O padrão que selecionamos aqui é o método de detecção de objetos e o modelo pré-treinado.
A Seeed Studio desenvolverá mais métodos e modelos no futuro previsível, fique ligado conosco.
Função
Antes de começarmos a desenvolver um sketch, vamos analisar as funções disponíveis da biblioteca.
if (ai.begin(ALGO_OBJECT_DETECTION, MODEL_EXT_INDEX_1))- Aqui podemos selecionar nossos métodos de classificação e os modelos.
Você pode alterar ALGO_OBJECT_DETECTION para ALGO_OBJECT_COUNT ou ALGO_IMAGE_CLASSIFICATION.
Ao mesmo tempo, se você também gravar seu modelo personalizado (firmware) no módulo, poderá alterar MODEL_EXT_INDEX_1 para MODEL_EXT_INDEX_2 ou 3, 4, conforme o nome que você definir.
object_detection_t data- Este é o conjunto de dados struct onde o resultado é gerado.
Se você alterar o método de classificação, precisará alterar object_detection_t correspondendo para image_classification_t ou object_count_t.
-
uint8_t len = ai.get_result_len()- O "len" aqui significa quantos rostos humanos ele detecta. -
object_detection_t data- Os dados aqui representam um formato de struct e o tipo é "object_detection_t", que é predefinido.
Ao mesmo tempo, se você escolher outros métodos de classificação, precisará alterá-lo para image_classification_t data ou object_count_t data.
Serial.print(data.confidence)- O formato struct não pode ser usado diretamente para impressão; ele deve apontar para o tipo específico que é definido no arquivo de cabeçalho.
typedef struct
{
uint16_t x;
uint16_t y;
uint16_t w;
uint16_t h;
uint8_t confidence;
uint8_t target;
} object_detection_t;
A "confidence" que queremos imprimir aqui mostra quanta "confiança" a câmera tem para detectar o objeto.
Instalação da Biblioteca
Como já baixamos a biblioteca em formato zip, abra sua IDE Arduino, clique em Sketch > Include Library > Add .ZIP Library. Escolha o arquivo zip que você acabou de baixar e, se a biblioteca for instalada corretamente, você verá Library added to your libraries na janela de aviso. Isso significa que a biblioteca foi instalada com sucesso.

Atualização da Biblioteca
Em um futuro previsível, otimizaremos e atualizaremos a biblioteca do produto para funções mais interessantes. De acordo com os métodos de instalação de biblioteca fornecidos acima, apresentamos aqui a você a forma de atualizar.
Atualizaremos o link quando a biblioteca for otimizada. Você pode deletar a pasta da biblioteca original na pasta do seu computador, depois baixar a versão mais recente, descompactá-la e colocá-la no diretório de bibliotecas da Arduino IDE. (...\Arduino\libraries. .... é o caminho em que você configurou o Arduino)

Exemplo com Seeed Studio XIAO / Seeeduino / Arduino
Agora que temos nossa biblioteca instalada e o firmware gravado, podemos executar alguns exemplos com o sensor do módulo Grove AI no Seeed Studio XIAO nRF52840 e Seeeduino V4.2 para ver como ele se comporta.
Passo 1. Inicie o aplicativo Arduino.

Passo 2. Selecione o modelo da sua placa de desenvolvimento e adicione-o à Arduino IDE.
-
Se você quiser usar Seeeduino para as rotinas posteriores, consulte este tutorial para finalizar a adição.
-
Se você quiser usar Seeed Studio XIAO SAMD21 para as rotinas posteriores, consulte este tutorial para finalizar a adição.
-
Se você quiser usar Seeed Studio XIAO RP2040 para as rotinas posteriores, consulte este tutorial para finalizar a adição.
-
Se você quiser usar Seeed Studio XIAO nRF52840 para as rotinas posteriores, consulte este tutorial para finalizar a adição.
Demo 1 Detecção de Humanos com Seeed Studio XIAO nRF52840 / Seeeduino / Arduino
Nesta demonstração, iremos detectar rostos humanos e contar quantas pessoas o módulo detecta tanto em Seeed Studio XIAO nRF52840 Sense quanto em Seeeduino V4.2 (Arduino UNO). Enquanto isso, a Seeed Studio fornece um site para exibir o que o módulo vê.
Materiais Necessários
- Para Seeed Studio XIAO BLE Sense
| Seeed Studio XIAO nRF52840 Sense | Grove AI Camera |
|---|---|
![]() | ![]() |
- Para Seeeduino V4.2
| Seeeduino V4.2 | Base Shield | Grove AI Camera |
|---|---|---|
![]() | ![]() | ![]() |
Etapas de Operação
-
Passo 3 (Seeed Studio XIAO). Prepare um cabo Type-C e conecte-o a uma placa Seeed Studio XIAO Série. Encaixe-a pino a pino no Grove AI Module e use outro cabo Type-C para conectar o módulo.
Ambos os cabos Type-C devem estar conectados ao PC. No final, a direção do conector Type-C no módulo deve ser a mesma do conector Type-C no Seeed Studio XIAO samd21. Por exemplo:
- Passo 3 (Arduino). Prepare um cabo Grove e conecte-o a uma placa Arduino. Use outro cabo Type-C para conectar o módulo.

- Passo 4. Faça o upload do programa.
#include "Seeed_Arduino_GroveAI.h"
#include <Wire.h>
GroveAI ai(Wire);
uint8_t state = 0;
void setup()
{
Wire.begin();
Serial.begin(115200);
Serial.println("begin");
if (ai.begin(ALGO_OBJECT_DETECTION, (MODEL_INDEX_T)0x11)) // Object detection and pre-trained model 1
{
Serial.print("Version: ");
Serial.println(ai.version());
Serial.print("ID: ");
Serial.println( ai.id());
Serial.print("Algo: ");
Serial.println( ai.algo());
Serial.print("Model: ");
Serial.println(ai.model());
Serial.print("Confidence: ");
Serial.println(ai.confidence());
state = 1;
}
else
{
Serial.println("Algo begin failed.");
}
}
void loop()
{
if (state == 1)
{
uint32_t tick = millis();
if (ai.invoke()) // begin invoke
{
while (1) // wait for invoking finished
{
CMD_STATE_T ret = ai.state();
if (ret == CMD_STATE_IDLE)
{
break;
}
delay(20);
}
uint8_t len = ai.get_result_len(); // receive how many people detect
if(len)
{
int time1 = millis() - tick;
Serial.print("Time consuming: ");
Serial.println(time1);
Serial.print("Number of people: ");
Serial.println(len);
object_detection_t data; //get data
for (int i = 0; i < len; i++)
{
Serial.println("result:detected");
Serial.print("Detecting and calculating: ");
Serial.println(i+1);
ai.get_result(i, (uint8_t*)&data, sizeof(object_detection_t)); //get result
Serial.print("confidence:");
Serial.print(data.confidence);
Serial.println();
}
}
else
{
Serial.println("No identification");
}
}
else
{
delay(1000);
Serial.println("Invoke Failed.");
}
}
else
{
state == 0;
}
}
Abra o monitor serial e defina o baud rate como 115200 e o resultado da detecção de pessoas deverá ser mostrado continuamente. Enquanto isso, a imagem capturada pelo módulo também será exibida no site. A saída contínua bem-sucedida deverá ser como:

No site de exibição, você pode ver que dois rostos estão emoldurados com números duplos. O número 0 significa o rosto humano que o módulo detectou, e o outro número significa a confiança.
Nem todos os navegadores suportam a exibição dos resultados do Vision AI. Consulte a tabela abaixo para o suporte de cada navegador principal.
| Chrome | Edge | Firefox | Opera | Safari |
|---|---|---|---|---|
| Suporta | Suporta | Não suporta | Suporta | Não suporta |
Sobre os Modelos
A Seeed Studio forneceu um modelo pré-treinado de detecção de pessoas e fornecerá mais modelos em um futuro previsível. Você pode usá-los diretamente para conhecer rapidamente a câmera de IA.
Você pode encontrar nosso firmware e modelos para o Grove Vision AI nos seguintes locais.
Firmware Padrão: Modelo de Detecção de Pessoas

Mais Modelos

Estamos continuamente mantendo e atualizando mais modelos úteis, então você pode ficar de olho neste repositório.
Normalmente, os arquivos de modelo estão no formato UF2 e têm um sufixo no formato pre_num.
Modelos Personalizados
Se você quiser personalizar o seu próprio modelo, pode consultar aqui, que é baseado em YOLOV5.
Ou consulte o tutorial aqui e treine seu próprio modelo para atender às suas necessidades.
Substituição de novos modelos
Os modelos de treinamento são todos representados como arquivo ".uf2", que é o que precisamos.
Normalmente, os arquivos de modelo estão no formato UF2 e têm um sufixo no formato pre_num.
- Passo 1. Conecte o módulo ao PC host com um cabo Type-C e clique duas vezes no botão BOOT do módulo.

Um disco "GROVEAI" irá aparecer.

- Passo 2. Copie o arquivo de modelo
.uf2para o disco GROVEAI para concluir o flash do firmware.
Podemos ver que o LED de Trabalho no módulo pisca rapidamente, o que significa que o processo está em andamento. Depois que o disco desaparecer, o processo de gravação do firmware estará concluído.

- Passo 3. Modifique o programa de acordo com o modelo que você está usando.
No demo que fornecemos, dentro da função setup() o modelo é inicializado chamando ai.begin().
if (ai.begin(ALGO_OBJECT_DETECTION, (MODEL_INDEX_T)0x11))
ai.begin() tem dois argumentos, o tipo de modelo e o número do modelo. A numeração geralmente é diferente para modelos diferentes. Ou seja, o número de modelo do programa de exemplo só se aplica ao Modelo de Detecção de Pessoas; se você usar outros modelos, então o número não será mais 0x11.
Se você encontrar a mensagem de erro "Algo begin failed." ao usar o demo, primeiro verifique se o número do modelo está errado.
Então, como determinar o número do modelo? Nossos engenheiros de P&D forneceram um documento introdutório detalhado para os desenvolvedores lerem.
Mas se você não quiser ler um artigo tão longo, uma maneira simples de determinar isso é ficar de olho no último número do modelo em Release, que é o número de que precisamos.
Por exemplo, para o modelo pfld_meter_pre_5.uf2, o último dígito é 5, o que significa que o número do modelo é 5. Você pode usar
ai.begin(ALGO_OBJECT_DETECTION, (MODEL_INDEX_T)5)
diretamente, ou reescrevê-lo como hexadecimal
ai.begin(ALGO_ OBJECT_DETECTION, (MODEL_INDEX_T)0x05)
Processamento de Exceções
Se você encontrou uma situação imprevista no uso real, ou se o utilizou incorretamente e teve um resultado diferente do tratamento médico. Consulte as etapas a seguir para solucionar problemas e tentar reparar o módulo.
Parte 1. Verificar Versão do BootLoader
Você pode precisar detectar se a versão do BootLoader precisa ser atualizada para decidir se a atualização deve ser feita. O método para verificar o número da versão é o seguinte.
Conecte o Grove Vision AI ao seu computador pela porta USB-C. Em seguida, clique duas vezes no botão Boot até que o computador apresente uma unidade USB chamada GROVEAI.
Abra essa unidade de disco e abra o arquivo INFO_UF2.TXT.

Como mostrado na figura, você pode ver o número da versão do Bootloader na primeira linha. Em setembro de 2023, o número da versão mais recente do BootLoader deve ser v2.0.1. Se você também verificar o mesmo número de versão, então, em princípio, não precisa realizar o próximo segundo passo.
Parte 2. Atualizar BootLoader
Se o seu Grove Vision AI não for reconhecido pelo computador e se comportar como se não tivesse número de porta, então você pode precisar atualizar o BootLoader.
- Passo 1. Baixe o arquivo
.bindo BootLoader no PC com Windows.
Baixe a versão mais recente do arquivo BootLoader no link abaixo. O nome do BootLoader geralmente é tinyuf2-grove_vision_ai_vx.x.x.bin.
Este é o firmware que controla o chip BL702 que constrói a conexão entre o computador e o chip Himax. A versão mais recente do BootLoader agora corrigiu o problema do Vision AI não conseguir ser reconhecido por Mac e Linux.
- Passo 2. Baixe e abra o software BLDevCube.exe, selecione BL702/704/706 e clique em Finish.

- Passo 3. Clique em View e escolha MCU primeiro. Vá para Image file, clique em Browse e selecione o firmware que você acabou de baixar.

-
Passo 4. Certifique-se de que não haja outros dispositivos conectados ao PC. Em seguida, mantenha pressionado o botão Boot no módulo e conecte-o ao PC.

Podemos ver as luzes de 5V e do LED de 3.3V acesas na parte de trás do módulo; então solte o botão Boot.

-
Passo 5. Volte para o software BLDevCube no PC, clique em Refresh e escolha uma porta adequada. Em seguida, clique em Open UART e defina Chip Erase para True, depois clique em Create&Program e aguarde até o término do processo.

- Passo 6. Recomenda-se verificar novamente o número da versão do Vision AI para garantir que o BootLoader mais recente está sendo usado.
Parte 3. Restaurar Firmware de Fábrica
Se em algum momento o envio de firmware na versão mais recente do Windows 11 tiver tornado o dispositivo inutilizável, você pode precisar consultar a seção sobre Update BootLoader.
- Passo 1. Apagar firmware
Você pode tentar pular esta etapa e copiar o firmware diretamente para o Vision AI; se funcionar, então você não precisa apagar o firmware original. Se falhar, talvez seja necessário apagar o firmware.
Utilize a placa-mãe Arduino que você tiver; as séries Seeed Studio XIAO, Wio Terminal ou Seeeduino são recomendadas. Conecte o Grove Vision AI à placa-mãe pela interface IIC.
Abra a IDE do Arduino e envie o programa para apagar o firmware.
#include "Seeed_Arduino_GroveAI.h"
#include <Wire.h>
WEI wei(Wire);
void setup()
{
Wire.begin();
Serial.begin(115200);
while (!Serial)
{
/* code */
}
delay(1000);
Serial.println("Press any key to start erase");
}
void loop()
{
if (Serial.available())
{
while (Serial.available())
{
Serial.read();
}
uint32_t id = wei.ID();
Serial.print("ID: 0x");
Serial.println(id, HEX);
wei.enter_bootloader();
Serial.println("Erase");
wei.erase();
Serial.println("Erase done");
}
}
Abra o monitor serial, insira alguns caracteres aleatórios, como "a", clique em enviar; então a operação de apagar começará a ser executada. Se você vir a mensagem a seguir, isso prova que o apagamento do firmware foi bem-sucedido. Podemos ir para o próximo passo.

- Passo 2. Conecte o módulo ao PC host com um cabo Type-C e clique duas vezes no botão BOOT do módulo.

Haverá um disco "GROVEAI" aparecendo.

- Etapa 3. Baixe o firmware de fábrica.
Por favor, baixe a versão mais recente do firmware de fábrica no link abaixo. O nome do firmware de fábrica é geralmente grove_ai_without_crc_vxx.uf2 ou grove_ai_vxx.uf2.
Em setembro de 2023, a versão mais recente do firmware é grove_ai_v02-00.uf2.
- Etapa 4. Grave o firmware de fábrica.
Copie o arquivo grove_ai_without_crc_vxx.uf2 ou grove_ai_vxx.uf2 para o disco GROVEAI para concluir a gravação do firmware.
As três partes acima precisam ser avaliadas e executadas por sua vez; quando as etapas acima forem executadas, você poderá fazer sua operação novamente. Se ainda houver problemas, entre em contato com nossa equipe de suporte técnico.
Solução de Problemas
P1: Qual é o principal método de conexão?
- a. Primeiro, conecte o microcontrolador e o módulo.
- b. Em seguida, conecte o microcontrolador ao PC host.
- c. Por fim, conecte o módulo ao PC host.
P2: Por que não consigo ver a exibição da imagem no site? Nem a detecção?
- a. O módulo está aquecido? Conectar apenas o módulo causará problema de aquecimento e fará com que o módulo não funcione por um momento.
- b. A conexão está sendo feita seguindo o método correto?
P3: Por que o Grove Vision AI de repente passa a apresentar um erro "Algo begin failed." um dia durante o uso?
No demo que fornecemos, dentro da função setup() o modelo é inicializado chamando ai.begin().
if (ai.begin(ALGO_OBJECT_DETECTION, (MODEL_INDEX_T)0x11))
ai.begin() tem dois argumentos, o tipo de modelo e o número do modelo. A numeração geralmente é diferente para modelos diferentes. Ou seja, o número do modelo do programa de exemplo se aplica apenas ao Modelo de Detecção de Pessoas; se você usar outros modelos, então o número não será mais 0x11.
Se você encontrar a mensagem de erro "Algo begin failed." ao usar o demo, você deve primeiro verificar se o número do modelo está errado.
Então, como você determina o número do modelo? Nossos engenheiros de P&D forneceram um documento introdutório detalhado para os desenvolvedores lerem.
Mas se você não quiser ler um artigo tão longo, uma maneira simples de determinar isso é ficar de olho no último número do modelo em Release, que é o número de que precisamos.
Por exemplo, para o modelo pfld_meter_pre_5.uf2, o último dígito é 5, o que significa que o número do modelo é 5. Você pode usar
ai.begin(ALGO_OBJECT_DETECTION, (MODEL_INDEX_T)5)
diretamente ou reescrevê-lo como hexadecimal
ai.begin(ALGO_ OBJECT_DETECTION, (MODEL_INDEX_T)0x05)
Recursos
- [PDF] Diagrama de Circuito
- [Zip] Diagrama de Layout
Suporte Técnico & Discussão sobre o Produto
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.


