Lendo o acelerômetro da micro:bit com mbed

Este post faz parte da série micro:bit no mbed

Os acelerômetros são sensores inerciais de tecnologia MEMS usados para detectar aceleração, orientação e inclinação. São usados em diversos dispositivos, como, por exemplo, o seu smartphone e/ou tablet. Eles também são usados para detectar desaceleração em veículos, acionando os airbags em caso de acidentes.

Neste artigo vou te ensinar a manipular o acelerômetro da micro:bit fazendo uso do mbed, servindo como base para aplicações e estudos desse dispositivo.

Acelerômetro da micro:bit

A micro:bit possui um acelerômetro de 3 eixos onboard, o MMA8653FC da NXP. Esse acelerômetro comunica-se com o microcontrolador principal da placa através de I2C e pode fazer leituras ±2 g, ±4 g, e ±8 g a uma taxa de saída de 1,56 Hz a 800 Hz. Sua saída é digital em 10 bits.

Acelerômetro da micro:bit

Confira mais detalhes sobre acelerômetros na série de artigos escritos por Henrique Torres:

Código para leitura do acelerômetro da micro:bit no mbed

A biblioteca criada pela Lancaster University já está preparada para leitura do acelerômetro, tornando mais simplificada a manipulação desse dispositivo no mbed. Confira a documentação da API aqui.

Como testes iniciais, vamos fazer a leitura dos três eixos e plotá-los na serial. Digite o seguinte código:

#include "MicroBit.h"
MicroBit uBit;

int main()
{
    // Initialise the micro:bit runtime.
    uBit.init();
        
    while(1)
    {

        uBit.serial.printf("%d",uBit.accelerometer.getX());
        uBit.serial.printf(" ");
        uBit.serial.printf("%d",uBit.accelerometer.getY());
        uBit.serial.printf(" ");
        uBit.serial.printf("%d\n",uBit.accelerometer.getZ());
        
        uBit.sleep(100);
    }
}

Eu usei o Serial Plotter do Arduino para visualizar os dados de forma gráfica:

Outro recurso interessante da API é a leitura de movimentos pré definidos, como inclinação, queda livre, etc. O exemplo a seguir exibe a leitura dos gestos e a impressão dos eventos na serial:

#include "MicroBit.h"

MicroBit uBit;

int main()
{
    // Initialise the micro:bit runtime.
    uBit.init();
        
    while(1)
    {
    
        uBit.accelerometer.getX();
        uBit.accelerometer.getY();
        uBit.accelerometer.getZ();
       
        
        int x = uBit.accelerometer.getGesture();
                
         switch (x) {
            case MICROBIT_ACCELEROMETER_EVT_TILT_UP:
            uBit.serial.printf("Inclinado para cima\n");
            break;
            
            case MICROBIT_ACCELEROMETER_EVT_TILT_DOWN:
            uBit.serial.printf("Inclinado  para baixo\n");
            break;
            
            case MICROBIT_ACCELEROMETER_EVT_TILT_LEFT:
            uBit.serial.printf("Inclinado  para esquerda\n");
            break;
            
            
            case MICROBIT_ACCELEROMETER_EVT_TILT_RIGHT:
            uBit.serial.printf("Inclinado  para direita\n");
            break;
            
            case MICROBIT_ACCELEROMETER_EVT_FACE_UP:
            uBit.serial.printf("Face virada para cima\n");
            break;
            
            case MICROBIT_ACCELEROMETER_EVT_FACE_DOWN:
            uBit.serial.printf("Face virada para baixo\n");
            break;
            
            case MICROBIT_ACCELEROMETER_EVT_FREEFALL:
            uBit.serial.printf("Queda livre\n");
            break;
         }
        
        uBit.sleep(100);
    }
}

Os eventos são exibidos em um terminal serial. Vire a placa e veja a mensagem no terminal:

Você pode estudar a implementação para leitura do acelerômetro através da documentação e código escrito em C/C++ disponibilizados pela Lancaster University para o mbed.

Se ficou alguma dúvida, crítica ou sugestão, deixe seu comentário abaixo.

Saiba mais

Utilizando o acelerômetro e LED RGB da FRDM KL25Z no mbed

Arduino – Interface com acelerômetro e giroscópio

Calibração de Sensores na prática

micro:bit no mbed

Lendo os botões da micro:bit no mbed Explorando a matriz de LEDs da micro:bit com mbed
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Software » Lendo o acelerômetro da micro:bit com mbed

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: