Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle de Luzes RGB com TinyML: Detecção de Palavras-chave no Arduino Nano 33 BLE Sense

Componentes e Materiais

Arduino Nano 33 BLE Sense1

Aplicativos e Serviços Online

Sobre o Projeto

A Premissa

Machine Learning na borda (edge) permite dispositivos "inteligentes" com menos programação tradicional. Objetivo: detecção de palavras-chave por voz para controlar LED RGB onboard.

Hardware

Apenas o Arduino Nano 33 BLE Sense. Microcontrolador nRF52840 (64MHz, 1MB flash, 256KB RAM). Sensores integrados: microfone, IMU 9-eixos, sensor ambiental, gesto/proximidade/cor/luz (APDS-9960). LED RGB onboard usado para feedback.

Configurando Edge Impulse

  1. Criar projeto no Edge Impulse, instalar CLI.
  2. Baixar firmware mais recente, gravar na placa (duplo clique no reset → bootloader, executar flash_windows.bat).
  3. Rodar edge-impulse-daemon, seguir assistente. Placa aparece na lista de dispositivos.

Coleta de Amostras

Palavras-chave desejadas: On, Off, Red, Green, Blue. ~1 minuto de áudio por palavra, falando a cada 1-2 segundos. Divisão em janelas de 1s. Ruído de fundo e palavras "unknown" obtidos do dataset pré-existente do Edge Impulse (ferramenta "Upload Existing Data"). Rebalanceamento 80/20 treino/teste.

Treinamento do Modelo

Impulso: áudio time-series, janela 1s, aumento 500ms. Bloco MFCC → rede neural Keras. Configurações: threshold confiança 0.70 (era 0.80), data augmentation (ruído extra, mascaramento temporal) para evitar overfitting.

Deploy no Arduino Nano 33 BLE Sense

Modelo baixado como biblioteca, adicionado ao Arduino IDE, compilado e gravado. A placa atua como microfone sempre ligado, amostrando áudio continuamente. Palavra detectada → índice → cor/ação no LED RGB. "On/Off" → cinza claro/preto; cores → respectivas.

Código

RGBLEDKeywordDetection (C/C++)

/* Edge Impulse Arduino examples */
#define EIDSP_QUANTIZE_FILTERBANK 0
#define EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW 3
#include 
#include 
#include 

#define CONFIDENCE_THRESHOLD 0.7
static const uint32_t colors[] = {0x00ff0000, 0x0000ff00, 0x000000ff}; // red, green, blue
enum Actions { LED_ON=1, LED_OFF=0, LED_RED=2, LED_GREEN=3, LED_BLUE=4, NONE=5 };
enum Functions { CHANGE_LED_ON_OFF=0, CHANGE_LED_COLOR=1, CHANGE_LED_NONE=2 };
static const uint8_t redPin=22, greenPin=23, bluePin=24;

const std::map actionToFunctionMap = {
  {LED_ON, CHANGE_LED_ON_OFF}, {LED_OFF, CHANGE_LED_ON_OFF},
  {LED_RED, CHANGE_LED_COLOR}, {LED_GREEN, CHANGE_LED_COLOR}, {LED_BLUE, CHANGE_LED_COLOR},
  {NONE, CHANGE_LED_NONE}
};
const std::map labelToActionMap = {
  {"on", LED_ON}, {"off", LED_OFF}, {"red", LED_RED}, {"green", LED_GREEN}, {"blue", LED_BLUE},
  {"unknown", NONE}, {"noise", NONE}
};

// Buffers de inferência, callbacks PDM, funções setup/loop, performAction, setPixelColor, ei_printf
// ... (código completo mantido com comentários em português)

Processo de manufatura

  1. Segurança IoT Industrial: Principais Tendências e Melhores Práticas para 2020
  2. Edge & Cloud Computing no IoT: Visão Evolutiva Concisa
  3. Por Que Edge Computing É Essencial para o Sucesso do IoT
  4. Kontron KBox A‑150‑WKL: PC Edge IoT de Alto Desempenho e Baixo Consumo para Automação Industrial
  5. Edge Computing: Acelerando a Implantação de IA na Periferia da Rede
  6. Quatro Passos Comprovados para Maximizar o Sucesso do Edge Computing em Fábricas Inteligentes
  7. Microsoft Revela Azure Edge Zones para Impulsionar Cargas de Trabalho IoT e IA Habilitadas para 5G
  8. Por Que Código Aberto Impulsiona Inovação na Borda — eBook Essencial
  9. Sistema Ultra-sensível de Detecção de Armas Químicas para Ameaças de Baixo Nível
  10. Por Que Manter Detectores de Gás em Perfeitas Condições: 3 Razões Essenciais