Um microcontrolador é um circuito integrado compacto projetado para controlar uma operação específica em um sistema embarcado. Um microcontrolador típico inclui um processador, memória e periféricos de entrada/saída (E/S) em um único chip.
Às vezes chamados de controlador embarcado ou unidade de microcontrolador (MCU), os microcontroladores são encontrados em veículos, robôs, máquinas de escritório, dispositivos médicos, transceptores de rádio móveis, máquinas de venda automática e eletrodomésticos, entre outros dispositivos. Eles são essencialmente computadores pessoais (PCs) em miniatura simples projetados para controlar pequenos recursos de um componente maior, sem um sistema operacional (SO) front-end complexo.
Os MSP430 são microcontroladores RISC de 16 bits voltados para aplicações de baixo consumo de energia. São fabricados pela Texas Instruments e estão disponíveis em quatro famílias básicas: 1xx - voltados para aplicações gerais (1 a 60kb de memória flash e 128 a 10240 bytes de memória RAM)
- Arquitetura Von Neumann, RISC
- 16 KB de memória Flash
- 512 Bytes de memória RAM
- 24 GPIOs
- 2 Timers de 16 bits
- Módulos ADC e comparadores
- UART, SPI, I2C
$ sudo apt-get install msp430-libc mspdebug msp430mcu binutils-msp430 gcc-msp430 gdb-msp430
$ sudo apt-get install putty
$ msp430-gcc -Os -mmcu=msp430g2231 blink.c -o blink.elf
$ msp430-gcc -Os -mmcu=msp430g2553 test.c -o test.elf
$ dmesg
$ sudo mspdebug rf2500
$ prog blink.elf
$ run
O Tiny Machine Learning Kit, combinado com os emocionantes cursos TinyML Applications e Deploying TinyML on Microcontrollers, que fazem parte da especialização Tiny Machine Learning (TinyML) da EdX, fornecerão todas as ferramentas necessárias para dar vida às suas visões de ML!
O kit é composto por uma poderosa placa equipada com um microcontrolador e uma ampla variedade de sensores (Arduino Nano 33 BLE Sense*). A placa pode detectar movimento, aceleração, rotação, temperatura, umidade, pressão barométrica, sons, gestos, proximidade, cor e intensidade da luz. O kit também inclui um módulo de câmera (OV7675) e um escudo Arduino personalizado para facilitar a conexão de seus componentes e criar seu próprio projeto TinyML exclusivo. Você poderá explorar casos de uso práticos de ML usando algoritmos clássicos e redes neurais profundas desenvolvidas pelo TensorFlow Lite Micro. As possibilidades são limitadas apenas por sua imaginação!
- 1 placa Arduino Nano 33 BLE Sense
- 1 câmera OV7675
- 1 Arduino Tiny Machine Learning Shield
- 1 cabo USB A para Micro USB
- Sensor de Gestos e de Cor
APDS-9960
- Sensor de umidade e temperatura digital capacitivo
HTS221
- O
LPS22HB
é um sensor de pressão absoluta piezoresistivo ultracompacto que funciona como um barômetro de saída digital - Permite que você leia os valores do acelerômetro, magnetômetro e giroscópio da IMU
LSM9DS1
em seu Arduino Nano 33 BLE Sense. - Uso de microfones
PDM
para o Arduino Zero / Adafruit Feather M0 (processador SAMD21).
O ESP32 é um pequeno microcontrolador desenvolvido com a capacidade de proporcionar comunicação sem fio através do Wifi e através do próprio sistema Bluetooth. Ele pode funcionar como um sistema autônomo completo ou como um dispositivo escravo para um MCU host, reduzindo a sobrecarga da pilha de comunicação no processador principal do aplicativo. O ESP32 pode interagir com outros sistemas para fornecer funcionalidade Wi-Fi e Bluetooth por meio de suas interfaces SPI/SDIO ou I2C/UART.
- Protocolo WI-FI: 802.11 b/g/n (802.11n, até 150 mbps);
- Faixa de frequência 2.4 - 2.5 GHz;
- Protocolo Bluetooth: compatível com os padrões de bluetooth v4.2 br/edr e ble;
- Tensão de entrada: 3 - 3,6 V;
- Configuração Projeto
- Conectar ESP32 com AWS IOT
- AWS IOT MQTT com ReactJS
- AWS IOT MQTT com React Native
- Prática (1): Troca de leds por E/S => versão diferente de implementação (../examples/switch_leds.c)
- Prática (2): E/S por interrupção
- Prática (3): Semáforo usando temporizador
- Prática (4): Conversor Analógico Digital
- Prática (5): Comunicação Serial com Teclado (art-communication)
- BLE
- Machine Learning
- Sensores
- Prática (1): AWS IOT com MQTT (Message Queuing Telemetry Transport)
- Prática (2): BLE com Firebase
- Prática (3): Firebase
- Prática (4): Controle de LED
Este projeto teve como foco a fiscalização de containers de carga, sendo possível classificar o seu status de movimentação entre 4 rótulos:
LABEL | LED |
---|---|
IDLE | - |
LIFT | VERDE |
TERRESTRIAL | VERMELHO |
MARITIME | AZUL |
De forma geral, o projeto envolve dois microcontroladores o ESP32
e o Arduino nano 33 BLE
. Com o Arduino nano 33 BLE
foi treinado um modelo de Machine Learning, utilizando o sensor de acelerômetro (LSM9DS1
) com auxílio da plataforma Edge Impulse. Com o ESP32
recebemos o status do container via Protocolo Bluetooth
vindo do Arduino nano 33 BLE
e em seguida os dados são enviados para um banco de dados Realtime
do Firebase
. Por fim, foi desenvolvido um aplicativo mobile com React Native
com intuito de fiscalizar/inspecionar todos os containers que contenham o kit com dois microcontroladores do projeto.
Sendo assim, o fluxo E2E
, ficou da seguinte forma:
O projeto se encontra público pela próprio Edge Impulse sendo possível ver todo fluxo dês da extração dos dados até o deploy para o Arduino nano 33 BLE
.
Splash Screen | Login | Home | Info |
---|---|---|---|
O My Replenisher é um projeto com foco em informar ao usuário quando os alimentos essenciais de sua casa estão em falta, sendo eles: arroz
, feijão
,açucar
e café
.
De forma geral, o projeto envolve dois microcontroladores o ESP32
e o Arduino nano 33 BLE
. Com o Arduino nano 33 BLE
foi treinado um modelo de Machine Learning, utilizando a câmera do kit (OV7675
) com auxílio da plataforma Edge Impulse, sendo que foi criada uma base com mais de 200 imagens capturadas. Com o ESP32
recebemos o status dos alimentos via Protocolo Bluetooth
vindo do Arduino nano 33 BLE
e em seguida os dados são enviados para um worker
da clouflare
utilizando edge computing e o serverless database upstash
. Por fim, foi desenvolvido um aplicativo mobile com React Native
que utiliza de uma api feita em express
com typescript
,prisma
, jwt
, dentre outras tecnologias
com foco na autenticação do usuário para isso, a api
foi hospedada na plataforma railway
utilizando um banco de dados relacional postgreSQL
. Além disso, o app faz uso do realtime database
do firebase.
O objetivo da aplicação mobile vai além de oferecer ao usuário a fiscalização dos alimentos essenciais. É possível criar com o app listas de compras em tempo real (compartilhadas entre vários usuários), sendo que sempre no topo da lista de forma obrigatória para criação teremos os alimentos essenciais que estão em falta, capturados utilizando as etapas anteriores já explicadas.
Sendo assim, o fluxo E2E, ficou da seguinte forma:
A Cloudflare oferece serviços de computação sem servidor por meio do Cloudflare Workers, uma plataforma para a criação e implantação de funções JavaScript que são executadas na rede de borda da Cloudflare. A execução do código na borda, o mais próximo possível do usuário final, ajuda a reduzir a latência e aumentar o desempenho do aplicativo. Cada "Worker' pode modificar e responder às solicitações HTTP.
A edge computing, ou computação de borda, é aquela na qual o processamento acontece no local físico (ou próximo) do usuário ou da fonte de dados. Com o processamento mais próximo, os usuários se beneficiam de serviços mais rápidos e confiáveis, enquanto as empresas usufruem da flexibilidade da cloud computing híbrida. A edge computing é uma das formas como uma empresa pode usar e distribuir um pool de recursos por um grande número de locais.
É um banco de dados em nuvem na memória sem servidor da Upstash Inc, uma empresa com sede na Califórnia.
É um serviço Redis sem servidor. Ele pode ser usado para camada de cache ou como um banco de dados. O legal é que você não precisa gerenciar nenhum servidor de banco de dados ou clusters. É totalmente sem servidor. Você usa e paga apenas o que usar.
Problemas modernos exigem soluções modernas, é exatamente isso que tecnologias Serverless como Upstash fazem.
Uma das grandes vantagens de usar o Upstash sobre outros serviços é o preço por solicitação, você não paga nada com o Upstash se não estiver usando.
A Railway é uma plataforma de implantação na qual você pode provisionar a infraestrutura, desenvolver com essa infraestrutura localmente e, em seguida, implantar na nuvem. Este serviço foi utilizado para implantação do backend da aplicação voltado para autenticação dos usuários
O projeto se encontra público pela próprio Edge Impulse sendo possível ver todo fluxo dês da extração dos dados até o deploy para o Arduino nano 33 BLE
.
LABEL'S |
---|
ALL |
MISSING RICE |
MISSING COFFEE |
MISSING SUGAR |
MISSING BEAN |
MISSING RICE COFFEE |
MISSING RICE SUGAR |
MISSING BEAN COFFEE |
MISSING BEAN SUGAR |
MISSING COFFEE SUGAR |
MISSING RICE BEAN COFFEE |
MISSING RICE BEAN SUGAR |
MISSING BEAN COFFEE SUGAR |
NONE |
Splash Screen | Onboarding | Login | SignUp |
---|---|---|---|
Home | Listas | Criar Lista | Perfil |
---|---|---|---|
This project is under the MIT license. See the LICENSE for more information.