top of page

Interfaceamento com Placa de Desenvolvimento MBED parte 1

O módulo controlador Mbed consiste em uma plataforma e um sistema operacional para dispositivos IoT e está equipado com um MCU NXP LPC1768, que é baseado na arquitetura do núcleo Cortex-M3 de 32 bits da ARM. Com o módulo Mbed e um ambiente de desenvolvimento online da ARM, a criação de protótipos e circuitos de teste é feita de uma maneira completamente nova e fácil.

O Microcontrolador mbed NXP LPC1768 em particular, é projetado para prototipar todos os tipos de dispositivos, especialmente aqueles que incluem Ethernet, USB e a flexibilidade de muitas interfaces periféricas e memória FLASH. Seu empacotamento é baseado em um pequeno fator de forma DIP para criação de protótipos com PCBs, divisórias e breadboards, e inclui um programador USB FLASH embutido.

O módulo mbed usa um controlador secundário que gerencia a comunicação com o PC host, além de programar o LPC1768. Fazer as coisas dessa maneira resulta em duas vantagens cruciais: No início, o download de código pode ser considerado uma caixa preta - o usuário não precisa saber mais do que isso, a imagem do firmware é gravada no flash do MCU. Em segundo lugar, não há recursos do MCU alvo usado, como seria o caso de um bootloader tradicional. É possível escrever software próprio sem qualquer restrição de hardware de desenvolvimento.

Informações do Microcontrolador

  • LPC1768 MCU by NXP

  • ARM Cortex-M3 Core, 32 bits

  • 100 MHz clock frequency

  • 512 KB Flash

  • 64 KB RAM

  • 10/100 Mbps Ethernet

  • USB 2.0 Full-speed Device/Host/OTG

  • SPI, I2C, UART, CAN

  • ADC, DAC, PWM

  • GPIOs are 5V-tolerant

  • 3.3V operation voltage

Figura 1 – Mbed Pinout

Mbed Compiler

O Mbed Compiler fornece um IDE C / C ++ leve que é pré-configurada para permitir quehaja a possibilidade de escrever programas rapidamente, compilar e fazer o download deles para rodar em seu respectivo Microcontrolador mbed. Na verdade, você não precisa instalar ou configurar nada para ser executado com o mbed. Por se tratar de um aplicativo da web, você pode fazer login de qualquer lugar e continuar de onde parou e está livre para trabalhar no Windows, Mac, iOS, Android, Linux ou em todos eles.

O Mbed possui três portas seriais (P9, P10, P13, P14, P28, P27) que podem servir como debug, mandar e receber comandos. A placa tem também a porta USB (IF-, IF+) que é utilizada para gravar os códigos na memória FLASH e também pode ser utilizada como Serial para acessar dados e mandar comandos, além de poder utilizar como debug. E mais uma saída (D+, D-)USB direto do microcontrolador Cortex.

Ao conectar o dispositivo no computador, este irá identificá-lo como um “FLASH DRIVE”. Dessa forma, é necessário fazer o login no Mbed Compiler utilizado para escrever o código, compilar e fazer o download para a placa de desenvolvimento utilizada. Assim, para criar um novo projeto, clica-se em “New” e então, nomeia-se de acordo com aquilo que será programado. Depois disso, abrimos o projeto como na figura abaixo:

Figura 2 – Início do Projeto

Dentro do projeto o qual será executado, existem os arquivos “main.cpp” e a biblioteca principal “mbed.h”. Agora, clicando no arquivo “main.cpp”, teremos:

Figura 3 – Abrindo o projeto

Código utilizado:

#include "mbed.h"

#include "AnalogIn.h"

AnalogIn ain (p20);

Serial pc (USBTX,USBRX);

int main(){

uint16_t adcValue;

float voltage;

pc.baud (115200);

while(1){

adcValue = ain.read_u16();

voltage = adcValue*3.3/65535; //65535 is equivalent for 2^16(uint16_t)

pc.printf("ADC:%i,%.2f volts.\r\n",adcValue,voltage);

wait(0.1);

}

}

Após isso, deve-se compilar o código clicando em “Compile”, assim, um arquivo em binário será gerado e estará pronto para ser adicionado à Mbed, como mostrado na figura abaixo:

Figura 4 – Compilando o programa e gerando o binário

Com isso, após copiar e colar o arquivo em binário gerado na pasta do dispositivo, reinicia-se a Mbed clicando-se no botão que existe ao centro, como demonstrado na figura 5 ou retirando a placa da porta serial e religando-a.

Figura 5 – Vista frontal Mbed LPC1768

Desta maneira, ao religá-la e simultaneamente, abrir terminais como o RealTerm, Monitor Serial do Arduino ou PUTTY, os resultados serão aparentes no formato "ADC:%i,%.2f volts.\r\n",adcValue,voltage , como ilustrado na figura 6.

Figura 6 – Dados no terminal

Para utilizar o RealTerm, somente há a necessidade de selecionar a porta serial onde o dispositivo encontra-se conectado e o seu baudrate, para que os dados sejam projetados. No entanto, para Linux (Ubuntu, Fedora, etc), há a necessidade de abrir o terminal e digitar: mesg | grep tty <ENTER>. Assim, aparecerá o nome da porta ativa.

Para o PUTTY, ao saber qual porta está ativa no momento, uma janela de configuração é aberta, como na figura 7.

Figura 7 - Configurando o PUTTY

Após isso, seleciona-se a porta serial em que a Mbed está conectada, assim como o seu baudrate, que no caso, é de 9600 e clica-se em “Open” .

Mbed Led Control

Para finalizar, o código exemplificado acima, o qual retorna o ADC medido pela Mbed, faz com que um LED pisque a cada envio de dados. Porém, podemos utilizar um código o qual usa portas seriais para aumentar a sua intensidade de um dos LEDs a cada iteração humano/computador.

#include "mbed.h"

Serial pc(USBTX, USBRX); // tx, rx PwmOut led(LED1);

float luminosidade = 0.0;

int main() { pc.printf("Pressione 'a' para aumentar a luminosidade do LED, 'b' para abaixar\n");

while(1) { char c = pc.getc(); if((c == 'a') && (luminosidade < 0.5)) { luminosidade += 0.01; led = luminosidade; } if((c == 'b') && (luminosidade > 0.0)) { luminosidade -= 0.01; led = luminosidade; }

}

}

Nele, quando apertamos uma das letras correspondentes no teclado, a intensidade do brilho pode aumentar ou diminuir, tratando a rotina de forma visual.

Espero que tenham gostado,

Até a próxima.


bottom of page