8
Acelerômetros e Arduino ADXL345 - Uma Introdução Os acelerômetros são bastante comuns em eletrônicos, especialmente em projetos de hobby. Muitos de vocês já ouviram falar sobre acelerômetros, e já usaram alguns deles. Aqui estamos indo para obter um acelerômetro conectado e nos dando as medições em 15 minutos. Este breve tutorial explica em primeiro lugar o que é um acelerômetro, e depois como ligar um em seu Arduino usando Biblioteca ADXL345 Arduino da Love Eletrônica. Estamos focando em um acelerômetro que usamos aqui na Love Electronics, o ADXL345 acelerômetro eixo triplo. Este acelerômetro é um ótimo para começar a usar, como ele tem boa variedade (até 16G), interface digital (I2C e SPI), e é bastante resistente a vibrações. Nós também fizemos e é realmente fácil de usar como nós colocamos ele em uma placa de fuga pequeno para você, assim você não precisa de solda este chip x 3mm 5mm a seu Arduino. Nós também adicionamos os capacitores adequados de filtragem e de afinação para você. Um acelerômetro mede aceleração. Que pode parecer óbvio, no entanto, existem dois tipos de aceleração. Aceleração estática - como a gravidade - que é o que você vai usar o seu acelerômetro para medir com mais frequência. Também aceleração dinâmica, que é basicamente o movimento, que normalmente fica no caminho da maioria da nossa inclinação em aplicações de sensoriamento remoto geralmente usou-se acelerômetros para tal atividade. Para uma mais profunda explicação de acelerômetros, você vai querer verificar para fora nossos Acelerômetros: ADXL345 Biblioteca e Tutorial Netduino, como esse tutorial entra em grandes detalhes sobre como trabalhar com acelerômetros, e quais os benefícios e os problemas vêm com o uso de um.

Acelerômetros e Arduino ADXL345

Embed Size (px)

Citation preview

Page 1: Acelerômetros e Arduino ADXL345

Acelerômetros e Arduino ADXL345 - Uma Introdução

Os acelerômetros são bastante comuns em eletrônicos, especialmente em projetos de

hobby. Muitos de vocês já ouviram falar sobre acelerômetros, e já usaram alguns deles.

Aqui estamos indo para obter um acelerômetro conectado e nos dando as medições em

15 minutos. Este breve tutorial explica em primeiro lugar o que é um acelerômetro, e

depois como ligar um em seu Arduino usando Biblioteca ADXL345 – Arduino da Love

Eletrônica. Estamos focando em um acelerômetro que usamos aqui na Love Electronics,

o ADXL345 acelerômetro eixo triplo.

Este acelerômetro é um ótimo para começar a usar, como ele tem boa variedade (até

16G), interface digital (I2C e SPI), e é bastante resistente a vibrações. Nós também

fizemos e é realmente fácil de usar como nós colocamos ele em uma placa de fuga

pequeno para você, assim você não precisa de solda este chip x 3mm 5mm a seu

Arduino. Nós também adicionamos os capacitores adequados de filtragem e de afinação

para você.

Um acelerômetro mede aceleração. Que pode parecer óbvio, no entanto, existem dois

tipos de aceleração. Aceleração estática - como a gravidade - que é o que você vai usar

o seu acelerômetro para medir com mais frequência. Também aceleração dinâmica, que

é basicamente o movimento, que normalmente fica no caminho da maioria da nossa

inclinação em aplicações de sensoriamento remoto geralmente usou-se acelerômetros

para tal atividade.

Para uma mais profunda explicação de acelerômetros, você vai querer verificar para

fora nossos Acelerômetros: ADXL345 Biblioteca e Tutorial Netduino, como esse

tutorial entra em grandes detalhes sobre como trabalhar com acelerômetros, e quais os

benefícios e os problemas vêm com o uso de um.

Page 2: Acelerômetros e Arduino ADXL345

Instalação

Junto com o acelerômetro, você precisará do hardware abaixo:

An ADXL345 Breakout Board.

An Arduino Uno or Arduino Mega.

A small breadboard.

Two resistors (between 4.7k and 10k Ohms).

A bundle of wires.

A green LED.

Some male headers

Você também vai precisar destes softwares:

The Arduino development environment.

The Love Electronics ADXL345 Arduino Library.

Em primeiro lugar vamos configurar o seu ambiente de desenvolvimento. Faça o

download do ambiente de desenvolvimento do Arduino e instalá-lo. A maioria de vocês

já fizeram essa etapa, mas apenas no caso, baixe a versão mais recente para o seu

computador a partir do site do Arduino e extraí-lo em algum lugar (eu coloquei em C: \

Arquivos de Programas \Arduino\).

Uma vez que você tem o ambiente Arduino configurado, você vai precisar instalar a

Biblioteca da Love Eletrônica ADXL345 – Arduino. Baixe a biblioteca e extraí-lo para

aqui: C: \ Arquivos de programas \ \ Arduino bibliotecas, ou onde quer que você tenha

colocado o ambiente Arduino.

Muito bom. Esse é o lado do software tudo feito. Agora você vai ser capaz de usar a

Biblioteca da Love Eletrônica ADXL345 em seus programas Arduino (esboços).

Do lado do hardware é tão fácil. Siga estas instruções para conectar seu Conselho

Breakout ADXL345 para o Arduino, ou siga a imagem abaixo. Você provavelmente vai

querer solda em alguns cabeçalhos masculinos em seu Conselho de Triplo Eixo

ADXL345 Breakout acelerômetro para tornar mais fácil para ligar a sua placa de

montagem.

Page 3: Acelerômetros e Arduino ADXL345

Ligue Arduino 3.3V a ADXL345 VCC, SDO e CS.

Ligue Arduino GND para ADXL345 GND.

Ligue ADXL345 SDA para Arduino 3.3V usando uma de suas resistências.

Ligue ADXL345 SCL para Arduino 3.3V usando uma de suas resistências.

Ligue ADXL345 SDA para Arduino analógica 4 (dados I2C) em seu (Pino 20 em um

Arduino Mega).

Ligue ADXL345 SCL para Arduino analógica 5 (Clock I2C) em seu (Pin 21 em um

Arduino Mega).

Seu feito conectando seu ADXL345 para o Arduino. Eu normalmente gosto de incluir

um LED, então eu sei o que meu desenho está fazendo só de olhar. Este passo é

opcional, por isso eu estou conectando um LED verde ao pino digital 2 e GND no meu

Arduino. (Fixe o pino mais no LED para GND, e quanto menor o seu pino para pino

digital).

Você deve acabar com algo parecido com isto:

Page 4: Acelerômetros e Arduino ADXL345

Programação

Agora que você tem o circuito montado, podemos iniciar a programação! Agora esta

parte é realmente fácil. Nós colocamos todas as partes complicadas sobre a

comunicação com o acelerômetro em nossa biblioteca, então tudo que você tem a fazer

é usar métodos sensivelmente nomeados para obter o acelerômetro para fazer o que

você precisa. Vamos começar com um esboço simples para ver se você tem o circuito

montado corretamente.

Veja o código abaixo que se conecta ao acelerômetro o eixo triplo e nos permite saber,

através da porta serial e nosso LED de status, se podemos nos comunicar com o

acelerômetro de 3 eixos:

// Include the Wire library so we can start using I2C.

#include <Wire.h>

// Include the Love Electronics ADXL345 library so we can use the

accelerometer.

#include <ADXL345.h>

// Declare a global instance of the accelerometer.

ADXL345 accel;

// Set up a pin we are going to use to indicate our status using an LED.

int statusPin = 2; // I'm using digital pin 2.

void setup()

{

// Begin by setting up the Serial Port so we can output our results.

Serial.begin(9600);

// Start the I2C Wire library so we can use I2C to talk to the

accelerometer.

Wire.begin();

// Ready an LED to indicate our status.

pinMode(statusPin, OUTPUT);

// Create an instance of the accelerometer on the default address (0x1D)

accel = ADXL345();

// Check that the accelerometer is infact connected.

if(accel.EnsureConnected())

{

Serial.println("Connected to ADXL345.");

digitalWrite(statusPin, HIGH); // If we are connected, light our status

LED.

}

else

Page 5: Acelerômetros e Arduino ADXL345

{

Serial.println("Could not connect to ADXL345.");

digitalWrite(statusPin, LOW); // If we are not connected, turn our LED

off.

}

}

void loop() {}

Você deve ver isso quando você abrir a janela da porta serial no ambiente Arduino, o

LED de status deverá também ser aceso:

Se você ver isso em vez da imagem acima, há um problema no circuito, dê uma olhada

nas instruções acima e veja se você pode resolver o problema. Se você ficar preso de

verdade, nos envie um e-mail para [email protected] e nós ficaríamos felizes

em lhe dar uma mão.

Uma vez conectado, então nós queremos ler os dados do dispositivo que ainda não

possuímos dados nenhum! Assim, segurem seus cavalos! Os chips pobres ainda não

sabem que tipo de dados que você deseja. Você ainda nem disse que quer todos os

dados ainda! Permite dizer a ADXL345 que queremos medir dados entre +2G e -2G, e

que nós queremos que ele comece a tomar medidas. Fazemos isso adicionando o

seguinte código para o fundo da nossa rotina de setup():

Page 6: Acelerômetros e Arduino ADXL345

// Set the range of the accelerometer to a maximum of 2G.

accel.SetRange(2, true);

// Tell the accelerometer to start taking measurements.

accel.EnableMeasurements();

Ótimo, agora o ADXL345 vai saber informar sobre medidas entre +2G e -2G, e se

receber mais alguma coisa, irá nos dizer o valor máximo que se pode obter. Ele também

saberá para iniciar a medição, então agora a sua beavering de distância (ou o que nunca

chips fazem quando eles estão trabalhando duro - lascar talvez) nos deixando saber

como ele é inclinado. Para ouvi-la, vamos substituir o nosso loop () de rotina com um

presente:

void loop()

{

if(accel.IsConnected) // If we are connected to the accelerometer.

{

// Read the raw data from the accelerometer.

AccelerometerRaw raw = accel.ReadRawAxis();

//This data can be accessed like so:

int xAxisRawData = raw.XAxis;

// Read the *scaled* data from the accelerometer (this does it's own read

from the accelerometer

// so you don't have to ReadRawAxis before you use this method).

// This useful method gives you the value in G thanks to the Love

Electronics library.

AccelerometerScaled scaled = accel.ReadScaledAxis();

// This data can be accessed like so:

float xAxisGs = scaled.XAxis;

// We output our received data.

Output(raw, scaled);

}

}

Como você pode ver, este é realmente simples. É só você chamar os métodos no

acelerômetro que declaramos em nossa rotina de configuração para obter dados a partir

do dispositivo! Todas as partes complicadas sobre a escrita aos registos I2C,

estabelecendo velocidades de clock, ORing, ANDing e MAYBEing tudo é feito dentro

da nossa biblioteca ADXL345!

Agora, antes de você chegar muito apressado, este código não irá compilar. Você pode

ter observado que, no fim da rotina de loop () chamamos um método chamado de

Page 7: Acelerômetros e Arduino ADXL345

Output(). Que toma as medições brutas e dimensionadas, temos recuperado do

ADXL345. Basta adicionar este método para o fim de seu esboço, e está feito.

void Output(AccelerometerRaw raw, AccelerometerScaled scaled)

{

// Tell us about the raw values coming from the accelerometer.

Serial.print("Raw:\t");

Serial.print(raw.XAxis);

Serial.print(" ");

Serial.print(raw.YAxis);

Serial.print(" ");

Serial.print(raw.ZAxis);

// Tell us about the this data, but scale it into useful units (G).

Serial.print(" \tScaled:\t");

Serial.print(scaled.XAxis);

Serial.print("G ");

Serial.print(scaled.YAxis);

Serial.print("G ");

Serial.print(scaled.ZAxis);

Serial.println("G");

}

O que todos esses métodos fazem, é enviar nossos dados para fora através da janela de

série. Se você abrir a janela de série que você deve ver todos os dados de inundação de

volta! Dar a coisa toda uma inclinação pouco e você vai ver os valores oscilando em

torno de como o movimento da placa. Tente experimentar com os dois tipos de

aceleração. Estática, o dispositivo de inclinação, e dinâmico, movendo a placa de lado a

lado.

Page 8: Acelerômetros e Arduino ADXL345

Se os seus problemas são com a obtenção de dados a partir do dispositivo, ou se está

tendo problemas para por o código para funcionar, tente carregar o esboço exemplo (que

é o que nós fizemos aqui) a partir do menu abaixo, e tentar novamente.

Tudo certo! Você está conectado com sucesso a ADXL345 para o Arduino! Ela foi feita

em uma placa eletrônica da Love Eletrônica e super fácil de ser montado, além de usar a

Biblioteca da Love Eletrônica ADXL345 – Arduino.

Espero que tenham gostado deste tutorial. Por ter mais gente a ler nossos tutoriais nós

vamos ser capazes de produzir mais para vocês sobre todos os tipos de coisas.

Fonte do Tutorial: https://www.loveelectronics.co.uk/Tutorials/12/adxl345-

accelerometer-arduino-tutorial.