Rádio LoRa Ra-01 com STM32 e ESP32






Assunto bastante querido pelos meus seguidores, hoje, vamos falar, mais uma vez, sobre LoRa, mas, com uma novidade: não usando o ESP32, e, sim, o STM32. Sempre tive vontade de gravar sobre o STM32, pois se trata de uma família inteira de microcontroladores de 32 bits produzidos pela STMicroelectronics. Tenho diversos amigos que estão utilizando este chip fora do Brasil, tamanho o sucesso deste dispositivo de fabricação europeia. Vamos, então, fazer uma introdução ao STM32, tratar ainda do Módulo LoRa Ra-01, além de programar o STM32 na IDE do Arduino.


Mostro para vocês neste vídeo um kit de desenvolvimento de STM32 que não serve para ser programado em Arduino, mas com linguagem C ou nativo da própria STMicroelectronics. Se não me engano, existem oito empresas que produzem compiladores para o STM32, o que nos mostra que existe uma cultura mundial grande em cima deste chip.
Quero explicar aqui para vocês que a STMicroelectronics é pelo menos quatro vezes maior que a Microchip e produz a família STM32, com arquiteturas que vão desde os chips bem pequenos até o STM32 F7, que considero “superpoderoso”.  
Na nossa montagem, utilizamos um STM32 Maple Mini, que até parece um Ardunino Nano, mas é muito mais poderoso, bem como o Ra-01 da Ai-Thinker. Ele é um radio LoRa separado, o qual vai se comunicar com o STM32 via SPI, que é a comunicação do chip LoRa da Semtech.


Demonstração

No nosso vídeo, você observa, na montagem, que nós temos o STM32 Maple Mini ligado via SPI ao módulo Ra-01. Esta montagem transmite os dados para o nosso “querido” ESP32, que conta com um display i2c embutido, o qual exibe os pacotes. Perceba que só levam 81 milissegundos para a preparação do pacote, o envio, recebimento pelo ESP32 e exibição na tela. Caso seja aumentada a distância e haja alteração no software, esse tempo tende a aumentar.


Nosso objetivo com essa montagem é mostrar o STM32, que é um chip diferente, enviando dados no padrão rádio Lora. Lembrando que são dois hardwares diferentes que estão conversando via protocolo rádio LoRa.


Módulo LoRa Ra-01

Basicamente, temos aqui o chip LoRa da Semtech, com alguns componentes discretos na placa, incluindo uma saída para antena. A interface é o SPI. Já a questão da velocidade do chip, que aponta como superior a 300Kbps, sabemos que, na verdade, LoRa não trabalha nesta velocidade, a qual gira em torno de 37K para menos. Isso por quê? Pois, para seguir longe é preciso abaixar o bit rate. Lembro, no entanto, que a velocidade não uma preocupação do LoRa, mas, sim o seu alcance. A frequência deste dispositivo é de 433MHz e a potência de transmissão de cerca de 18 dBm, com alimentação 3v3.



Maple Mini

Considero este STM32 especial. Qual a diferença dele e do kit de desenvolvimento da  STMicroelectronics, o STM32 L4 Series ultra low power? O kit é mais potente, mas o Maple Mini funciona na IDE do Arduino, o que facilita bastante para aqueles que não têm tanta intimidade com a programação. Podemos dizer que o Maple Mini funciona como uma espécie de Arduino, com Flash de 128 KB. O Maple Mini ainda possui 20 KB de RAM, entrada USB, LEDs, botões, com destaque ainda para seus 34 IOs, além de 12 PWM de 16 bits e 9 entradas analógicas de 12 bits.

 


Pinagem

Deixo aqui o Pinout do Maple Mini.



Instalar suporte para placas ARM 32bits

Na IDE do Arduino, vá em Ferramentas->Placa->Gerenciador de Placas…
Na janela que abrir, procure por Arduino SAM Boards e instale Arduino SAM Boards (32-bits ARM Cortex-M3)



Biblioteca Lora

Agora vá em Sketch->Incluir Biblioteca->Gerenciar Bibliotecas…
Procure por LoRa e instale LoRa by Sandeep Mistry




STM32 Arduino

Descompactar e copiar a pasta para Documents/Arduino/hardware



Montagem

Veja como é simples o nosso esquema. Eu ligo via SPI o módulo da Ai-Thinker, ou seja, o LoRa, ao STM32.



Configurações

Depois de baixar o código fonte, disponível ao fim deste artigo, você parte para a compilação. Os passos, então, estão nesta imagem.



Código Baseado no vídeo: ESP32 LoRa Send e Receive

O código fonte que usamos neste projeto é o mesmo que já utilizamos em uma montagem com um ESP32, no vídeo: ESP32 LoRa com Arduino IDE: Send e Receive TX RX, com uma exceção: não tem o display. Essa parte do i2C já foi retirada do código que deixo para download logo abaixo. Portanto, para saber como funciona esse código basta assistir ao vídeo citado.





Faça o download dos arquivos:



Nenhum comentário:

Tecnologia do Blogger.