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
Baixar zip em https://github.com/rogerclarkmelbourne/Arduino_STM32
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:
0 Comentários