Neste artigo, iremos imprimir os valores dos eixos X, Y e Z que serão fornecidos pelo acelerômetro da FRDM-KL25Z via protocolo I2C e, conforme haja variação de aceleração, o LED RGB da placa irá alterando suas cores. Para isso, utilizaremos o código de exemplo entregue pela plataforma mbed.
FRDM – KL25Z
A plataforma FRDM KL25z foi desenvolvida pela NXP e integra um microcontrolador ARM Cortex M0+, oferecendo 16KB de RAM, 128KB de Flash, 2 canais de SPI, 2 canais de I2C, 3 canais de UART, 6 canais de PWM, 6 canais de ADC e GPIOs. Entre os periféricos dessa placa, destacam-se:
- MMA8451Q – acelerômetro de 3 eixos;
- LED RGB;
- Sensor de Toque Capacitivo;
- Pinout compatível Anduino UNO R3;
- Interface de programação/debug openSDA.
A figura 1 exibe a FRDM KL25Z e indica qual o conector USB usado para programação/depuração:
Mbed
Para utilizarmos a plataforma de desenvolvimento online, devemos ter uma conta com um login e senha para plataforma mbed. Se você ainda não tem uma conta, clique aqui.
Depois de entrarmos no site, devemos clicar no ícone “compiler” e automaticamente seremos redirecionados para a IDE online, conforme exibido na figura 2 a seguir:
Primeiramente, devemos selecionar a plataforma que iremos utilizar em nosso projeto, como demonstra a figura 3.
Após selecionarmos a plataforma, deveremos clicar no ícone New e posteriormente em New Program. Note que abrirá uma tela contendo a plataforma utilizada, template e o nome do código. Clique no ícone ao lado da opção de template e selecione o arquivo “ Example program for FRDM boards with a Freescale MMA8451Q ac”, conforme exibido na figura 4:
Posteriormente, abrirá o projeto e devemos clicar em main.cpp para termos acesso ao seguinte código:
#include "mbed.h"
#include "MMA8451Q.h" // incluindo a biblioteca do acelerômetro
#if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
PinName const SDA = PTE25;
PinName const SCL = PTE24;
#elif defined (TARGET_KL05Z)
PinName const SDA = PTB4;
PinName const SCL = PTB3;
#elif defined (TARGET_K20D50M)
PinName const SDA = PTB1;
PinName const SCL = PTB0;
#else
#error TARGET NOT DEFINED
#endif
#define MMA8451_I2C_ADDRESS (0x1d<<1)
int main(void)
{
MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS); // definindo os pinos de I2C da FRDM KL25Z
PwmOut rled(LED1);
PwmOut gled(LED2);
PwmOut bled(LED3);
printf("MMA8451 ID: %d\n", acc.getWhoAmI());
while (true) {
float x, y, z;
x = abs(acc.getAccX()); // armazenando o valor da componente x
y = abs(acc.getAccY()); // armazenando o valor da componente y
z = abs(acc.getAccZ()); // armazenando o valor da componente z
rled = 1.0f - x; //intensidade da componente x, representada pela cor vermelha
gled = 1.0f - y; //intensidade da componente y, representada pela cor verde
bled = 1.0f - z; //intensidade da componente z, representada pela cor azul
wait(0.1f);
printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n", x, y, z);
}
}
Em seguida, clique em “compile” e note que será feito o download do arquivo bin, de acordo com a figura 5.
Instalando o firmware de bootloader
É fundamental a instalação do firmware de bootloader fornecido pela plataforma mbed, para realizarmos nossas aplicações na FRDM- KL25Z. As instruções abaixo explicam como realizar tal procedimento:
1- Mantenha o botão de reset pressionado e em seguida, conecte sua FRDM-KL25 ao computador. Note que a plataforma aparecerá em seu monitor, como um disco chamado “BOOTLOADER”, conforme ilustra a figura 6.

2 – Faça o download do firmware s.19, clicando aqui.
3 – Extraia o arquivo baixado e copie-o para o disco BOOTLOADER.
4 – Desconecte sua FRDM e conecte-a novamente ao computador.
Após realizar as etapas acima, abrirá um disco com o nome “MBED”, conforme demonstra a figura 7.

Transferindo a aplicação para o microcontrolador
Selecione o arquivo .bin que foi baixado anteriormente, e arraste-o até MBED (F:) (figura 8).
OBS: Note que o LED D4 da placa irá piscar, indicando a transferência do firmware.
Comunicação Serial
Para imprimir os valores fornecidos pelo acelerômetro, iremos utilizar o programa Docklight. Após a realização do download e instalação deste programa, basta configurá-lo conforme as figuras 9 e 10.
Devemos configurar a porta de comunicação entre a plataforma FRDM-KL25Z e o PC, conforme demonstrado na figura 11.
Clique em “Ok” e em seguida clique na seta de “play” para que então os dados do acelerômetro sejam impressos no computador de acordo com a figura 12.
LED RGB
Para finalizarmos, observe em sua placa que conforme você a mexer, os valores impressos de x, y e z variam e as cores do LED RGB também se alteram (Figura 13 e 14).
Referências
FRDM-KL25Z: Freedom Development Platform for Kinetis® KL14, KL15, KL24, KL25 MCUs














