O UNIHIKER K10 é uma placa de desenvolvimento compacta baseada no ESP32-S3, projetada para prototipagem rápida em aplicações de IA, IoT e sensores.
Integra um ecrã TFT de 2,8 polegadas, câmara de 2 MP, microfone, altifalante, LED RGB e sensores incorporados para temperatura, humidade, luz e movimento. Possui Wi-Fi, Bluetooth, USB-C, suporte a microSD e portas de expansão Gravity para conectividade.
A placa vem com funções de IA prontas a usar, como reconhecimento de voz e facial, e suporta programação via MicroPython, Arduino ou IDEs gráficas como Mind+.
Neste tutorial, aprenderá a programar o UNIHIKER K10 com o Arduino IDE. No entanto, para alguns exemplos de código será necessário usar o Mind+, pois por vezes o código compilado e gravado com o Arduino IDE não funciona na placa UNIHIKER K10.
Peças Necessárias
Para este tutorial, só precisará do UNIHIKER K10. Pode adquiri-lo na DFRobot ou Amazon, por exemplo:

UNIHIKER K10
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Hardware do UNIHIKER K10
O Unihiker K10 é construído em torno do módulo ESP32-S3 N16R8, com um processador dual-core Xtensa LX7 de 32 bits a operar até 240 MHz. Inclui 512 KB de SRAM interna e 16 MB de memória flash, suportando armazenamento externo via slot para cartão microSD. A imagem abaixo mostra a frente e o verso da placa:

Conectividade Sem Fios
A placa oferece Wi-Fi a 2,4 GHz compatível com os padrões IEEE 802.11 b/g/n e integra Bluetooth 5.0 com suporte BLE. Esta combinação permite comunicação em rede e conectividade de baixo consumo entre dispositivos.
Hardware Visual, Áudio e de Interação
O K10 incorpora um ecrã TFT de 2,8 polegadas com resolução de 240×320 pixels, controlado por um ILI9341. Inclui um módulo de câmara GC2145 de 2 megapixels com campo de visão aproximado de 80 graus, adequado para tarefas básicas de visão computacional.
As funcionalidades de áudio incluem dois microfones MEMS digitais para entrada de voz e um altifalante integrado de 2 W com amplificador onboard. A placa também possui três LEDs RGB WS2812 endereçáveis para feedback visual.
Sensores Ambientais e de Movimento
O dispositivo integra um AHT20 sensor capaz de medir temperatura entre aproximadamente –40 °C e +85 °C e humidade relativa de 0 a 100%. Inclui um LTR303ALS sensor de luz ambiente que opera numa ampla gama dinâmica, desde níveis muito baixos até iluminação exterior intensa. A deteção de movimento é feita por um acelerómetro triaxial SC7A20H com faixas de medição selecionáveis até ±16 g.

Interfaces de I/O e Expansão
O K10 oferece múltiplas interfaces de expansão, incluindo USB-C para alimentação e programação, slot microSD para armazenamento removível e conectores Gravity de 3 e 4 pinos que expõem interfaces digitais, analógicas, I²C e UART. A placa tem ainda dois botões programáveis pelo utilizador, além dos botões padrão Boot e Reset.
Um conector de bateria PH2.0 suporta entrada de bateria externa, e o conector lateral expõe GPIO, PWM, ADC, SPI, UART e linhas I²C adicionais para maior integração de hardware.
Características de Alimentação
A placa pode ser alimentada via USB-C, conector de bateria PH2.0 dedicado ou pinos de alimentação no conector lateral. Os componentes internos e GPIO operam a níveis lógicos de 3,3 volts. O consumo de energia é cerca de 150mA ao executar deteção facial.
Dimensões Físicas
O tamanho total do Unihiker K10 é aproximadamente 51,6 mm por 83 mm, com uma espessura de cerca de 11 mm, oferecendo uma pegada compacta adequada para projetos portáteis, educativos e embutidos.
Capacidades de IA e Software Pré-Instaladas
O K10 inclui várias funcionalidades de IA integradas, como deteção facial, reconhecimento de objetos, leitura de códigos QR, deteção de animais de estimação, deteção de movimento e reconhecimento de voz offline. Estas funções correm localmente usando a câmara, microfones e sensores onboard, sem necessidade de recursos externos. O dispositivo suporta programação via MicroPython, Arduino/PlatformIO e ambientes gráficos como Mind+.
| Funcionalidade Integrada | Descrição / Notas |
|---|---|
| Deteção Facial | O K10 pode detetar rostos humanos localmente através da sua câmara de 2 MP — útil para projetos como controlo de acesso, deteção de presença ou experiências simples de visão computacional. |
| Reconhecimento Facial | A placa pode reconhecer e distinguir rostos previamente registados (não apenas detetar) para tarefas básicas de reconhecimento facial. |
| Deteção de Gato / Cão (Animal de Estimação) | A IA de imagem do K10 pode identificar gatos ou cães — permitindo demonstrações de reconhecimento de animais ou aplicações de monitorização de animais de estimação. |
| Reconhecimento de Código QR | Pode detetar e decodificar códigos QR usando a sua câmara e modelo de visão pré-carregado. |
| Deteção de Movimento | A placa suporta deteção de movimento via visão (câmara) e não apenas pelo acelerómetro — útil para tarefas simples de segurança ou deteção de atividade. |
| Modelos Personalizados de Reconhecimento de Imagem | Os utilizadores podem implementar os seus próprios modelos TinyML de reconhecimento de imagem, permitindo deteção ou classificação personalizada além dos modelos integrados. |
| Reconhecimento de Voz Local (Offline) | Com os microfones onboard e modelo de processamento de voz, o K10 pode reconhecer comandos de voz sem necessidade de ligação à internet. |
| Comandos de Voz Personalizados | O utilizador pode definir comandos de voz personalizados para projetos controlados por voz — útil para IoT por voz, projetos interativos ou aplicações de acessibilidade. |
Especificações Técnicas
A tabela seguinte resume os detalhes técnicos da placa UNIHIKER K10:
| Categoria | Especificação |
|---|---|
| Processador & Memória | ESP32-S3 (dual-core Xtensa LX7 até 240 MHz), 512 KB SRAM, 16 MB flash |
| Armazenamento | Slot para cartão MicroSD para armazenamento externo |
| Conectividade Sem Fios | Wi-Fi 2.4 GHz (802.11 b/g/n), Bluetooth 5.0 com BLE |
| Ecrã | LCD TFT de 2,8 polegadas, resolução 240 × 320, controlador ILI9341 |
| Câmara | Sensor GC2145 de 2 MP, campo de visão ~80° |
| Microfones | Dois microfones MEMS digitais |
| Altifalante | Altifalante integrado de 2 W com amplificador onboard |
| LEDs | Três LEDs RGB WS2812 endereçáveis |
| Sensores Ambientais | Sensor de temperatura/humidade AHT20; sensor de luz ambiente LTR303ALS |
| Sensor de Movimento | Acelerómetro triaxial SC7A20H (até ±16 g) |
| Portas de Expansão | Conectores Gravity de 3 e 4 pinos; conector lateral com GPIO, ADC, PWM, I²C, SPI, UART |
| Opções de Alimentação | USB-C, entrada de bateria PH2.0, pinos de alimentação no conector lateral |
| Consumo de Energia | 150mA |
| Nível Lógico | 3.3 V |
| Dimensões | Aproximadamente 51,6 mm × 83 mm × 11 mm |
| Funcionalidades Pré-Instaladas | Modelos de IA integrados, reconhecimento de voz offline, utilitários de câmara e sensores |
Diagrama de Blocos e Esquemas
A imagem abaixo mostra o diagrama de blocos da placa UNIHIKER K10. Note que o diagrama indica os endereços I2C dos componentes de hardware:

Para informações mais detalhadas consulte o UNIHIKER K10 Schematic.
Instalar e Executar Mind+ V1.x
Neste tutorial, preferencialmente usaremos o Arduino IDE para programar a placa UNIHIKER K10. Contudo, para alguns programas isso atualmente (fev 2026) não funciona e é necessário usar a ferramenta de programação Mind+. Por isso, sugiro que instale o Mind+ antes de prosseguir.
Note que existem duas versões principais do Mind+: V1.x e V2.x. Certifique-se de descarregar e instalar a versão V1.x!

Instalar Mind+ V1.x
A instalação é simples. Vá a https://mindplus.cc/en/download.html, descarregue o Mind+ V1.x para o seu sistema operativo e execute o instalador. Neste tutorial, estou a usar a Versão: V1.8.1 RC3.0 no Windows.
Selecionar Placa
Abra a aplicação Mind+ e selecione a placa UNIHIKER K10. Para isso, clique no botão “Extensions” no canto inferior esquerdo, como mostrado abaixo:

Isto abre uma nova página com as placas. Desça até encontrar a placa UNIHIKER K10. Clique nela e depois em “Back” para voltar ao ecrã principal da aplicação Mind+:

Ligar Unihiker K10
Ligue a sua placa Unihiker K10 ao computador com o cabo USB. Depois clique no menu “Connect Device” no Mind+ e selecione “COMxx-UNIHIKER K10” como mostrado:

A porta COM específica depende do seu computador. Certifique-se que nenhuma outra aplicação está ligada ao UNIHIKER K10. Por exemplo, não pode ligar o Arduino IDE e o Mind+ em paralelo.
Edição Manual e Upload
O Mind+ permite criar programas graficamente com blocos ou editando código manualmente. Vamos usar a funcionalidade de Edição Manual. No lado direito do IDE Mind+ encontra as abas “Auto Generate” e “Manual Editing”. Clique na aba “Manual Editing” para mudar para o editor manual, como mostrado aqui:

Agora copie e cole o seguinte código no Editor e depois pressione o botão “Upload” acima do painel do editor.
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
void setup() {
k10.begin();
k10.initScreen(2);
k10.creatCanvas();
k10.setScreenBackground(0xFFFF00);
k10.canvas->canvasText("Makerguides", 5, 0x000000);
k10.canvas->updateCanvas();
}
void loop() {
}
Deverá ver o código a ser compilado e carregado na placa. Ele define a cor do ecrã para amarelo (0xFFFF00) e imprime o texto “Makerguides” na linha 5. No ecrã do Unihiker K10 deverá ver o seguinte:

Se isto funcionar, parabéns. Agora pode programar o Unihiker K10 com o IDE Mind+.
Restaurar definições iniciais do dispositivo
Se tiver problemas a ligar ou gravar o Unihiker K10, muitas vezes ajuda restaurar as definições do dispositivo. Vá ao menu e clique em “Restore device initial settings” como mostrado abaixo:

Isto é especialmente útil quando carrega um programa via Arduino IDE que deixa a placa Unihiker K10 num estado sem resposta.
Na próxima secção aprenderá a configurar o Arduino IDE para programar o Unihiker K10.
Instalar placa UNIHIKER K10 no Arduino IDE
Para programar o UNIHIKER K10 via Arduino IDE, primeiro precisa instalar a placa UNIHIKER K10. Nesta secção, guiar-lhe-ei pelos passos necessários.
Comece por abrir o Arduino IDE e vá a “File -> Preferences…” para abrir o diálogo de Preferências:

No diálogo de Preferências, procure a secção “Additional boards manager URLs” e clique no botão verde no canto inferior direito, como mostrado abaixo:

Isto abrirá a lista de “Additional boards manager URLs”:

Deve adicionar a seguinte URL (marcada a amarelo na imagem acima):
https://downloadcd.dfrobot.com.cn/UNIHIKER/package_unihiker_index.json
Como pode ver, tenho também URLs para placas ESP8266 e ESP32. Não se deixe confundir. Apenas adicione a URL para o UNIHIKER à lista. A ordem não importa.
Instalar placa UNIHIKER K10
De seguida, instalamos a placa UNIHIKER K10. Abra o BOARDS MANAGER, escreva “unihiker” na caixa de pesquisa e deverá ver a placa “UNIHIKER by DFRobot”:

Clique no botão INSTALL e a placa UNIHIKER K10 será instalada. Em fev 2026, a versão do software da placa UNIHIKER K10 é 0.0.3.
Depois ligue a sua placa UNIHIKER K10 ao computador via cabo USB. O Arduino IDE deverá reconhecê-la e permitir selecionar a porta COM:

Configurações de Ferramentas
Finalmente, ajustamos as configurações da placa, que encontra em “Tools”:

Pode manter as configurações por defeito, exceto “USB CDC on Boot”, que deve definir como “Enabled”, e a língua do modelo, que deve ser “EN” (Inglês).
Exemplo de Código: Comunicação Serial
Antes de tentar código mais complexo, vamos verificar se a gravação e comunicação com a placa funcionam. Carregue o seguinte código na placa UNIHIKER K10:
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Makerguides");
delay(2000);
}
Depois abra o Monitor Serial e deverá ver o texto “Makerguides” impresso a cada dois segundos. Se não, verifique se as configurações de Ferramentas e a taxa de Baud (115200) estão corretas. Como mencionado, precisa de “USB CDC on Boot” definido como “Enabled”.
Este código deve funcionar tanto com o Arduino IDE como com o Mind+ IDE.
Exemplo de Código: Ecrã
O código seguinte testa a função do ecrã. Define a orientação do ecrã para 2, a cor de fundo para amarelo (0xFFFF00) e imprime o texto “Makerguides” na linha 5 a preto (0x000000):
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
void setup() {
k10.begin();
k10.initScreen(2);
k10.creatCanvas();
k10.setScreenBackground(0xFFFF00);
k10.canvas->canvasText("Makerguides", 5, 0x000000);
k10.canvas->updateCanvas();
}
void loop() {
}
No meu caso, este código funciona quando carregado com o Mind+ IDE, mas não com o Arduino IDE. Neste último, o código compila e pode ser gravado, mas não corre na placa. Verá que para todos os exemplos seguintes que usam o ecrã, precisa carregar o código com Mind+.
Para mais exemplos de código sobre programação do ecrã, veja o display-showing-text exemplo.
Exemplo de Código: Medir Temperatura e Humidade
O próximo código usa o sensor integrado ATH20 para medir a temperatura e humidade ambiente. O código mede estes dados ambientais a cada segundo e mostra os valores no ecrã:
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
AHT20 aht20;
void setup() {
k10.begin();
k10.initScreen(2);
k10.creatCanvas();
k10.setScreenBackground(0xFFFFFF);
}
void loop() {
float temp = aht20.getData(AHT20::eAHT20TempC);
float hum = aht20.getData(AHT20::eAHT20HumiRH);
k10.canvas->canvasText(String("Temp: ") + String(temp), 1, 0x000000);
k10.canvas->canvasText(String("Hum : ") + String(hum), 2, 0x000000);
k10.canvas->updateCanvas();
delay(1000);
}
Este código funciona quando carregado via Mind+, mas não com o Arduino IDE.
Exemplo de Código: Medir Luminosidade
O UNIHIKER K10 também tem um sensor de luz ambiente integrado, o LTR303ALS. O exemplo de código seguinte mostra como medir a intensidade da luz ambiente (luminosidade) com este sensor:
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
void setup() {
k10.begin();
k10.initScreen(2);
k10.creatCanvas();
k10.setScreenBackground(0xFFFFFF);
}
void loop() {
uint16_t als = k10.readALS();
k10.canvas->canvasText(String("Brightness: ") + String(als), 1, 0x000000);
k10.canvas->updateCanvas();
delay(200);
}
Como estamos a usar o ecrã, este código só funciona quando carregado via Mind+ IDE.
Exemplo de Código: Reproduzir Áudio
O exemplo de código seguinte demonstra como controlar o altifalante do UNIHIKER K10. Reproduz uma sequência diferente de tons quando o botão A ou o botão B é pressionado:
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
void onButtonAPressed();
void onButtonBPressed();
UNIHIKER_K10 k10;
Music music;
void onButtonAPressed() {
music.playMusic(DADADADUM);
}
void onButtonBPressed() {
music.stopPlayTone();
music.playTone(131, 8000);
music.playTone(131, 8000);
music.playTone(196, 8000);
music.playTone(196, 8000);
music.playTone(220, 8000);
music.playTone(220, 8000);
music.playTone(196, 8000);
}
void setup() {
k10.begin();
k10.buttonA->setPressedCallback(onButtonAPressed);
k10.buttonB->setPressedCallback(onButtonBPressed);
}
void loop() {
}
Verifiquei que este código funciona com o Arduino IDE e o Mind+ IDE.
Veja também o audio-record-and-play exemplo que mostra como gravar áudio, armazená-lo no cartão SD e reproduzi-lo pelo altifalante.
Exemplo de Código: Acelerómetro
No exemplo de código seguinte usamos os dados do acelerómetro integrado para controlar o movimento de um ponto (bola) no ecrã. O código desenha um círculo verde que se move na direção em que a placa é inclinada.
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
void setup() {
k10.begin();
k10.initScreen(2);
k10.creatCanvas();
k10.setScreenBackground(0xFFFFFF);
}
void loop() {
static float accx, accy, x, y;
accx = (k10.getAccelerometerX());
accy = (k10.getAccelerometerY());
x = (120 + (accx / 3));
y = (120 + (accy / 3));
k10.canvas->canvasCircle(x, y, 8, 0x00FF00, 0x00FF00, true);
k10.canvas->updateCanvas();
k10.canvas->canvasCircle(x, y, 9, 0xFFFFFF, 0xFFFFFF, true);
}
Este código funciona quando carregado via Mind+, mas falha com o Arduino IDE.
Para mais informações sobre o código, veja o on-board-sensor-accelerate-ball exemplo.
Exemplo de Código: Reconhecimento de Voz Mínimo
Este código testa o reconhecimento de voz. Após dizer a palavra de ativação “Hi, Telly” ou “Jarvis”, o LED azul acende. Se disser “lights on”, o texto “ON” será impresso no monitor serial. Se disser “lights off”, o texto “OFF” será impresso.
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "asr.h"
#include "unihiker_k10.h"
#define LIGHTS_ON 1
#define LIGHTS_OFF 2
ASR asr;
UNIHIKER_K10 k10;
void setup() {
Serial.begin(9600);
k10.begin();
asr.asrInit(CONTINUOUS, EN_MODE, 6000);
while (asr._asrState == 0) { delay(100); }
asr.addASRCommand(LIGHTS_ON, "lights on");
asr.addASRCommand(LIGHTS_OFF, "lights off");
}
void loop() {
if (asr.isDetectCmdID(LIGHTS_ON)) {
Serial.println("ON");
}
if (asr.isDetectCmdID(LIGHTS_OFF)) {
Serial.println("OFF");
}
}
Este código funciona com o Arduino IDE e Mind+.
Exemplo de Código: Controlar Luzes com Voz
No próximo exemplo, estendemos o código anterior para ligar ou desligar os LEDs RGB da placa usando comandos de voz. Como antes, primeiro deve dizer a palavra de ativação “Hi, Telly” ou “Jarvis” e depois pode dizer “lights on” ou “lights off” para ligar ou desligar os LEDs.
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "asr.h"
#include "unihiker_k10.h"
#define LIGHTS_ON 1
#define LIGHTS_OFF 2
UNIHIKER_K10 k10;
ASR asr;
void setup() {
k10.begin();
asr.asrInit(CONTINUOUS, EN_MODE, 6000);
while (asr._asrState == 0) { delay(100); }
asr.addASRCommand(LIGHTS_ON, "lights on");
asr.addASRCommand(LIGHTS_OFF, "lights off");
}
void loop() {
if (asr.isDetectCmdID(LIGHTS_ON)) {
k10.rgb->brightness(9);
k10.rgb->write(-1, 0xFFFFFF);
}
if (asr.isDetectCmdID(LIGHTS_OFF)) {
k10.rgb->brightness(0);
k10.rgb->write(-1, 0xFFFFFF);
}
}
Este código funcionou com o Arduino IDE e Mind+.
Veja o ai-speech-recognition exemplo para mais informações sobre o código.
Exemplo de Código: Diminuir Luzes com Voz
Finalmente, um último exemplo de reconhecimento de voz. Estendemos o código anterior para também controlar o brilho dos LEDs. O código reconhece agora os comandos “lights on”, “lights off”, “brighter” e “darker”:
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "asr.h"
#include "unihiker_k10.h"
#define LIGHTS_ON 1
#define LIGHTS_OFF 2
#define LIGHTS_MORE 3
#define LIGHTS_LESS 4
int brightness = 5;
UNIHIKER_K10 k10;
ASR asr;
void setup() {
k10.begin();
asr.asrInit(CONTINUOUS, EN_MODE, 6000);
while (asr._asrState == 0) { delay(100); }
asr.addASRCommand(LIGHTS_ON, "lights on");
asr.addASRCommand(LIGHTS_OFF, "lights off");
asr.addASRCommand(LIGHTS_MORE, "brighter");
asr.addASRCommand(LIGHTS_LESS, "darker");
}
void loop() {
if (asr.isDetectCmdID(LIGHTS_ON)) {
k10.rgb->brightness(brightness);
k10.rgb->write(-1, 0xFFFFFF);
}
if (asr.isDetectCmdID(LIGHTS_OFF)) {
k10.rgb->brightness(0);
k10.rgb->write(-1, 0xFFFFFF);
}
if (asr.isDetectCmdID(LIGHTS_MORE)) {
brightness = constrain(brightness+1, 1, 9);
k10.rgb->brightness(brightness);
k10.rgb->write(-1, 0xFFFFFF);
}
if (asr.isDetectCmdID(LIGHTS_LESS)) {
brightness = constrain(brightness-1, 1, 9);
k10.rgb->brightness(brightness);
k10.rgb->write(-1, 0xFFFFFF);
}
}
Este código funciona com o Arduino IDE e Mind+.
Exemplo de Código: Deteção de Movimento
Neste exemplo usamos a câmara onboard do UNIHIKER K10 para detetar movimento. Sempre que um objeto se move em frente à câmara, os LEDs RGB mudam de cor de azul para vermelho:
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
#include "AIRecognition.h"
UNIHIKER_K10 k10;
AIRecognition ai;
void setup() {
k10.begin();
k10.initScreen(2);
ai.initAi();
k10.initBgCamerImage();
k10.setBgCamerImage(false);
k10.creatCanvas();
ai.switchAiMode(ai.NoMode);
k10.setBgCamerImage(true);
ai.switchAiMode(ai.Move);
ai.setMotinoThreshold(100);
k10.rgb->write(-1, 0x0000FF);
}
void loop() {
if (ai.isDetectContent(AIRecognition::Move)) {
k10.rgb->write(-1, 0xFF0000);
} else {
k10.rgb->write(-1, 0x0000FF);
}
}
Este código funciona apenas quando carregado com o Mind+ IDE.
Veja o on-board-sensor-accelerate-ball exemplo para uma demonstração do código.
Exemplo de Código: Deteção Facial
Finalmente, vamos testar as capacidades de deteção facial. O código abaixo usa a câmara para detetar rostos. Mostra a imagem da câmara no ecrã e coloca um retângulo verde (caixa delimitadora) em volta do rosto detetado. Também imprime as coordenadas x, y e o tamanho da caixa (w, h) no ecrã:
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
#include "AIRecognition.h"
UNIHIKER_K10 k10;
AIRecognition ai;
void display(char *text, int v, int x, int y) {
k10.canvas->canvasText(String(text) + String(v), x, y, 0xFFFF00,
k10.canvas->eCNAndENFont16, 50, true);
}
void setup() {
k10.begin();
k10.initScreen(2);
ai.initAi();
k10.initBgCamerImage();
k10.setBgCamerImage(false);
k10.creatCanvas();
ai.switchAiMode(ai.NoMode);
k10.setBgCamerImage(true);
ai.switchAiMode(ai.Face);
}
void loop() {
if (ai.isDetectContent(AIRecognition::Face)) {
int h = ai.getFaceData(AIRecognition::Length);
int w = ai.getFaceData(AIRecognition::Width);
int x = ai.getFaceData(AIRecognition::CenterX);
int y = ai.getFaceData(AIRecognition::CenterY);
display("Face H: ", h, 0, 0);
display("Face W: ", w, 0, 20);
display("Face X: ", x, 0, 40);
display("Face Y: ", y, 0, 60);
k10.canvas->updateCanvas();
}
delay(100);
}
Este código funciona apenas quando carregado com o Mind+ IDE.
Veja o ai-face-detection exemplo para uma demonstração do código.
Exemplo de Código: Reconhecimento Facial
O nosso último exemplo realiza reconhecimento facial. Permite aprender e detetar rostos específicos. Aponte a câmara da placa para um rosto, espere que a caixa delimitadora apareça e depois pressione o botão A da placa para aprender esse rosto. O LED fica verde quando um rosto é aprendido. Depois pressione o botão B para reconhecer rostos. O ID do rosto reconhecido é impresso no ecrã.
// www.makerguides.com
// UNIHIKER K10 core 0.0.3
#include "unihiker_k10.h"
#include "AIRecognition.h"
UNIHIKER_K10 k10;
AIRecognition ai;
void onButtonALearn() {
ai.sendFaceCmd(ENROLL);
k10.rgb->write(-1, 0x00FF00);
}
void onButtonBRecognize() {
ai.sendFaceCmd(RECOGNIZE);
k10.rgb->write(-1, 0x0000FF);
}
void setup() {
k10.begin();
k10.initScreen(2);
ai.initAi();
k10.initBgCamerImage();
k10.setBgCamerImage(false);
k10.creatCanvas();
ai.switchAiMode(ai.NoMode);
k10.buttonA->setPressedCallback(onButtonALearn);
k10.buttonB->setPressedCallback(onButtonBRecognize);
k10.setBgCamerImage(true);
ai.switchAiMode(ai.Face);
}
void loop() {
k10.rgb->write(-1, 0x000000);
if (ai.isRecognized()) {
int fid = ai.getRecognitionID();
k10.canvas->canvasText((String("Face ID: ") + String(fid)), 0, 0,
0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
}
}
A placa armazena os IDs dos rostos aprendidos em memória não volátil, permanecendo mesmo após reiniciar a placa. Para esquecer todos os rostos aprendidos, pode usar o comando ai.sendFaceCmd(DELETEALL). Para esquecer um rosto específico, use ai.sendFaceCmd(DELETE, id). Veja o ai-face-recognition exemplo para uma demonstração do código.
Este código funciona apenas quando carregado com o Mind+ IDE.
Resolução de Problemas: Carregar código com Arduino IDE
Como mencionado, alguns exemplos de código não funcionam quando carregados via Arduino IDE. O código compila e o upload é bem-sucedido, mas o UNIHIKER K10 bloqueia e fica sem resposta.
Curiosamente, todos os exemplos funcionam perfeitamente quando compilados e carregados com o Mind+ IDE. Portanto, não é um problema de hardware da placa UNIHIKER K10, mas parece estar relacionado com o software core do UNIHIKER K10, que ainda está na versão 0.0.3 em fev 2026.
Se carregar código usando o Arduino IDE e a placa UNIHIKER K10 ficar sem resposta, feche o Arduino IDE e carregue o código ou grave o firmware usando o Mind+ IDE. Verifiquei que isto “reseta” a placa e depois pode ser gravada novamente via Arduino IDE.
Conclusões
Neste tutorial aprendeu a programar a placa UNIHIKER K10 AI usando o Arduino IDE ou o Mind+ IDE. Os exemplos mostraram como controlar o ecrã e os LEDs, e como realizar reconhecimento de voz e facial. Para mais exemplos veja o WiKi para o UNIHIKER K10. Veja também o code reference para a placa.
O UNIHIKER K10 facilita muito o uso de algoritmos de IA como reconhecimento de voz e deteção facial. Especialmente o reconhecimento de voz é fácil de programar, funciona offline com baixa latência e alta precisão. Para projetos simples de controlo por voz, é ideal.
Infelizmente, o suporte para Arduino IDE e a documentação são algo limitados. Por exemplo, não existe um repositório github para a biblioteca K10 e a documentação está incompleta. Além disso, o código de reconhecimento de voz pode ser gravado com Arduino IDE, mas não o de reconhecimento facial. Para isso, precisa usar o Mind+.
Comparado com placas de visão AI similares como o HUSKYLENS ou o HUSKYLENS 2, o UNIHIKER K10 é menos potente e tem menos modelos de visão AI integrados. Por outro lado, não requer um segundo microcontrolador para processar os resultados da deteção e o consumo total de energia é muito menor.
Comparado com o MaTouch AI ESP32S3 TFT ou o DFRobot ESP32-S3 AI Camera, o UNIHIKER K10 vem com uma boa biblioteca que torna a programação de aplicações de visão AI e reconhecimento de voz realmente fácil.
Se tiver alguma dúvida, sinta-se à vontade para deixar nos comentários.
Boas criações 😉

