- Sentido Arduino Nano 33 BLE
- Visão geral do hardware do Arduino Nano 33 BLE Sense
- Melhorias de software com Arduino Nano 33 BLE sense
- Preparando seu Arduino IDE para Arduino Nano 33 BLE sense
- Programa para ler dados do sensor e exibir no Monitor Serial
- Arduino Nano 33 BLE- Fazendo upload do código
Arduino tem sido a plataforma de desenvolvimento ideal para prototipagem rápida e validação de ideias. Muitos de nós teríamos começado com a placa de desenvolvimento do Arduino UNO, mas hoje à medida que progredimos em direção à Internet das coisas, visão computacional, inteligência artificial, aprendizado de máquina e outras tecnologias futurísticas, o humilde Arduino UNO não conseguia mais lidar com seus 8 Microcontrolador de bits. Isso exigia o lançamento de novas placas com processadores mais poderosos que possuíam Wi-Fi, Bluetooth, GSM e outros recursos sem fio integrados, como o popular MKR1000 ou MKR GSM 1400. Nesse contexto, o Arduino lançou recentemente uma nova versão de seu Nano chamada Arduino Nano 33.
Existem dois tipos de placas Arduino Nano 33, a saber, Arduino Nano 33 IoT e Arduino Nano 33 BLE sense. A principal diferença entre os dois módulos é que o módulo de detecção do Arduino Nano 33 BLE possui alguns sensores integrados (entraremos em detalhes posteriormente), enquanto o Arduino Nano 33 IoT não os possui. Neste artigo, revisaremos a placa sense do Arduino Nano 33 BLE, apresentaremos seus recursos e funcionalidades e, finalmente, escreveremos um código de amostra para ler os valores do sensor e exibir no monitor serial. Então, vamos aprender…!
Sentido Arduino Nano 33 BLE
O nome “Arduino Nano 33 BLE Sense” é falado, mas o próprio nome fornece algumas informações importantes. É chamado de "Nano" porque as dimensões, pinagem e fator de forma são muito semelhantes ao clássico Arduino Nano, na verdade está planejado para ser usado como substituto do Arduino Nano em seus projetos existentes, mas o problema é que este novo módulo opera 3.3V enquanto o Nano clássico opera em 5V. Então acho que é aqui que entra o nome “33”, para indicar que a placa opera em 3,3V. Então, o nome “BLE” indica que o módulo suporta Bluetooth Low Energy (BLE5 5.0)e o nome “sentido” indica que ele possui sensores integrados como acelerômetro, giroscópio, magnetômetro, sensor de temperatura e umidade, sensor de pressão, sensor de proximidade, sensor de cor, sensor de gesto e até mesmo um microfone embutido. Entraremos em detalhes sobre o BLE e outros sensores mais tarde, mas por enquanto é assim que uma placa de sentido Arduino Nano 33 BLE parece direto do un-boxing.
Visão geral do hardware do Arduino Nano 33 BLE Sense
Na primeira olhada na placa você pode encontrar muitos componentes amontoados na parte superior, a maioria dos quais são sensores que eu disse antes. Mas o cérebro principal está escondido atrás do invólucro de metal do lado direito. Esta caixa contém o processador Nordic nRF52840 que contém um poderoso Cortex M4F e o módulo NINA B306 para comunicação BLE e Bluetooth 5. Isso permite que a placa opere com energia muito baixa e se comunique usando Bluetooth 5, tornando-a ideal para aplicações de rede mesh de baixa energia em automação residencial e outros projetos conectados. Além disso, uma vez que o processador nRF suporta o ARM Mbed OStambém fornece algumas melhorias de software que discutiremos mais tarde. Os sensores, LEDs, botões e outras coisas importantes que você deve saber na sua placa estão marcados na imagem abaixo.
Como você pode ver na imagem acima, a placa é repleta de energia com sensores que podem ajudá-lo a construir o lado direito da caixa, mesmo sem ter que conectar a placa a nenhum sensor externo. A placa deve ser usada em dispositivos vestíveis e outros dispositivos portáteis inteligentes, como faixas de fitness, monitoramento de glicose, pedômetros, smartwatch, estação meteorológica, segurança residencial, etc., onde você usará a maioria desses sensores. E como sempre, todos esses sensores têm bibliotecas pré-construídas para Arduino que você pode usar prontamente. Ao final deste artigo, leremos os valores de todos esses sensores e os exibiremos no monitor serial. Os detalhes do sensor na placa de sentido Arduino Nano 33 BLE junto com suas bibliotecas necessárias são tabulados abaixo
Nome do Sensor |
Parâmetros |
Links |
LSM9DSI - ST Microelectronics |
Acelerômetro, giroscópio, magnetômetro |
Folha de Dados LSMDSI Biblioteca Arduino_LSM9DS1 |
LPS22HB - ST Microeletrônica |
Pressão |
Folha de dados LPS22HB Biblioteca Arduino_LPS22HB |
HTS221 - ST Microeletrônica |
Temperatura e Umidade |
Folha de dados LPS22HB Biblioteca Arduino_HTS221 |
APDS9960 - Avago Tech. |
Proximidade, luz, cor, gesto |
Folha de dados LPS22HB Biblioteca Arduino_APDS9960 |
MP34DT05 - ST Microeletrônica |
Microfone |
Folha de dados MP34DT05 Biblioteca Inbuilt-PDM |
A maioria desses sensores são da ST Microelectronics e suportam operação de baixa energia, tornando-os ideais para designs operados por bateria. Poucas pessoas podem já estar familiarizadas com o sensor APDS9960, uma vez que ele já está disponível como um módulo spate e também usamos o sensor APDS9960 com Arduino anteriormente. Para obter mais informações sobre esses sensores, você pode visitar a respectiva folha de dados e também certificar-se de ter adicionado toda a biblioteca fornecida ao seu Arduino IDE para começar a usá-los com sua placa de sentido Arduino Nano 33 BLE. Para adicionar uma biblioteca, você pode usar o link fornecido para acessar a respectiva página do GitHub e baixar o arquivo ZIP, em seguida, usar Sketch -> Incluir Biblioteca -> Add.ZIP Library ou você também pode usar o gerenciador de biblioteca no Arduino IDE e adicioná-los bibliotecas.
Especificações técnicas da placa Arduino Nano 33 BLE sense:
Alimentado pelo processador nRF52840 nórdico, a placa Arduino Nano 44 BLE tem as seguintes especificações técnicas
- Tensão operacional: 3,3 V
- Tensão de entrada USB: 5V
- Tensão do pino de entrada: 4,5 V a 21 V
- Chip: NINA-B3 - RF52840
- Relógio: 64 MHz
- Flash: 1 MB
- SRAM: 256 KB
- Conectividade sem fio: Bluetooth 5.0 / BLE
- Interfaces: USB, I2C, SPI, I2S, UART
- Pinos de E / S digitais: 14
- Pinos PWM: 6 (resolução de 8 bits)
- Pinos analógicos: 8 (configuráveis de 10 ou 12 bits)
Melhorias de software com Arduino Nano 33 BLE sense
Assim como todas as placas Arduino por aí, o sentido Arduino Nano 33 BLE pode ser programado com o IDE do Arduino. Mas, você deve usar o gerenciador de placa e adicionar os detalhes da placa ao seu IDE antes de começar. Como sabemos, o nRF 52840 pode ser programado usando o ARM Mbed OS, isso significa que nossa placa Arduino Nano 33 oferece suporte ao sistema operacional em tempo real (RTOS). Com a programação do Mbed OS, podemos executar vários threads ao mesmo tempo no programa para realizar multitarefas. Além disso, o consumo de energia da placa será bastante reduzido. Cada vez que chamarmos a função de retardo, a placa entrará no modo de ativação durante o tempo de retardo para economizar energia e voltará à operação assim que o retardo terminar. É relatado que esta operação consumirá 4,5uA menos do que uma operação de atraso normal do Arduino.
Dito isso, a integração do Mbed OS com o Arduino IDE é relativamente nova e vai levar algum tempo antes que possamos utilizar totalmente o poder do Mbed OS com o Arduino IDE. Portanto, para uma inicialização rápida, escreveremos um programa para ler todos os valores do sensor e exibi-los nos monitores seriais.
Preparando seu Arduino IDE para Arduino Nano 33 BLE sense
Inicie seu IDE Arduino e vá para Ferramentas -> Placas -> Gerenciador de placa para iniciar o gerenciador de placa Arduino. Agora procure “Mbed OS” e instale o pacote. Deve levar algum tempo para que a instalação seja concluída.
Assim que a instalação estiver concluída, feche a caixa de diálogo e conecte sua placa Arduino 33 usando um cabo micro USB com seu laptop. Assim que você conectar a placa, o Windows iniciará automaticamente a instalação dos drivers necessários para a placa. Em seguida, abra seu IDE Arduino e selecione Ferramentas -> Placa -> Arduino Nano 33. Em seguida, selecione também a porta COM correta marcando Ferramentas -> Porta, a minha está conectada à porta COM3, mas a sua pode variar. Depois que a porta for selecionada, seu canto inferior direito do IDE deve ficar assim
Agora, para verificar rapidamente se tudo está funcionando, podemos usar um programa de exemplo, vamos tentar o fornecido em Arquivo -> Exemplos -> PDM -> PDMSerialPlotter. Este programa usará o microfone integrado para ouvir o áudio e plotá-lo em uma plotadora serial. Você pode carregar o programa e verificar se a placa e o IDE estão funcionando.
Agora, se você experimentar uma compilação ridiculamente lenta, então você não está sozinho; muitas pessoas, inclusive eu, enfrentam esse problema e, no momento em que escrevo este artigo, parece não haver solução. Demoro cerca de 2-3 minutos para compilar e carregar programas simples e quando tentei alguns programas BLE ou tentei trabalhar com o sistema operacional Mbed, o tempo de compilação aumentou para mais de 10 minutos, o que não me encorajou a tentar mais nada. Isso ocorre devido à integração do Mbed OS com o IDE do Arduino, esperemos que alguém da maravilhosa comunidade do Arduino apareça com uma solução para isso.
Programa para ler dados do sensor e exibir no Monitor Serial
Se não usarmos as funcionalidades BLE ou do sistema operacional Mbed principal da placa, o tempo de compilação foi razoável. Então eu escrevi um esboço simples para ler todos os valores do sensor e exibi-lo no monitor serial como mostrado abaixo
O código completo para fazer o mesmo é fornecido no final desta página, mas certifique-se de ter instalado todas as bibliotecas mencionadas acima. A explicação do código é a seguinte.
Inicie o programa incluindo todos os arquivos de cabeçalho necessários. Aqui estaremos usando todos os quatro sensores, exceto o microfone
#include // Incluir a biblioteca para IMU de 9 eixos #include // Incluir biblioteca para ler Pressão #include // Incluir biblioteca para ler Temperatura e Umidade #include // Incluir biblioteca para reconhecimento de cor, proximidade e gesto
Dentro da função de configuração, inicializamos o monitor serial a uma taxa de transmissão de 9600 para exibir todos os valores do sensor e também inicializar todas as bibliotecas necessárias. O código dentro da configuração é mostrado abaixo
void setup () {Serial.begin (9600); // Monitor serial para exibir todos os valores do sensor if (! IMU.begin ()) // Inicializar o sensor IMU {Serial.println ("Falha ao inicializar IMU!"); while (1);} if (! BARO.begin ()) // Inicializar o sensor de pressão {Serial.println ("Falha ao inicializar o sensor de pressão!"); while (1);} if (! HTS.begin ()) // Inicializar sensor de temperatura e umidade {Serial.println ("Falha ao inicializar sensor de temperatura e umidade!"); while (1);} if (! APDS.begin ()) // Inicializar sensor de cor, proximidade e gesto {Serial.println ("Falha ao inicializar sensor de cor, proximidade e gesto!"); enquanto (1);}}
Dentro da função de loop, lemos os valores de sensor necessários da biblioteca e depois os imprimimos no monitor serial. A sintaxe pode ser consultada a partir do programa de exemplo de cada biblioteca, lemos os valores do acelerômetro, giroscópio, magnetômetro, pressão, temperatura, umidade e sensor de proximidade e os exibimos no monitor serial. O código para medir o valor do acelerômetro é mostrado abaixo, da mesma forma, podemos medir para todos os sensores.
// Valores do acelerômetro if (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Acelerômetro ="); Serial.print (acel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z); } atraso (200);
Arduino Nano 33 BLE- Fazendo upload do código
O upload do código para o Nano 33 é semelhante a qualquer outra placa, mas observe que a placa tem duas portas COM. Quando você clica no botão de upload, o IDE do Arduino compila o código e reinicia a placa automaticamente por meio do comando do software, isso colocará a placa no modo de carregador de boot e fará o upload do seu código. Por causa disso, assim que o upload for concluído, você pode notar que o IDE do Arduino mudou automaticamente sua porta COM para um número diferente e você pode querer alterá-lo de volta antes de abrir o monitor serial.
Essa é basicamente minha experiência com a placa Arduino Nano 33 até agora. Vou tentar construir algo com seus sensores e recursos BLE em algum momento no futuro. Como foi sua experiência com o conselho? O que você gostaria que eu construísse com ele? Deixe as respostas na seção de comentários e discutiremos mais.