Použití senzorů je zásadní v mnoha pokročilých elektronických projektech. Pokud jste ve světě Arduina, pravděpodobně jste slyšeli o akcelerometru, zařízení, které měří odchylky ve zrychlení, a gyroskopu, který vám umožňuje pracovat s úhlovými měřeními. Obojí umožňuje zachytit pohyb a orientaci v trojrozměrných osách, což otevírá vesmír zajímavých možností.
V tomto článku podrobně vysvětlíme, co je akcelerometr a jak jej můžete integrovat do svých projektů Arduino. Popíšeme různé moduly, jako je MPU6050, ADXL345 a další podobné, a podrobně popíšeme, jak z nich vytěžit maximum. Kromě toho vám nabízíme materiál o tom, jak tyto senzory zapojit, a příklady kódů, které můžete využít pro své projekty.
Co je to akcelerometr?
Akcelerometr je senzor, který měří zrychlení objektu v jedné nebo více osách. To zahrnuje jak zrychlení způsobené pohybem, tak zrychlení způsobené gravitací. Zrychlení se měří v metrech za sekundu na druhou (m/s²) a když vezmeme v úvahu jeho tři osy (X, Y a Z), můžeme vědět, kterým směrem a jakou silou se objekt pohybuje.
Akcelerometry jsou nezbytné pro aplikace vyžadující detekci pohybu, náklonu nebo vibrací. Používají se například v chytrých telefonech pro detekci orientace obrazovky, stabilizaci kamery, detekci pádu v bezpečnostních zařízeních a videohrách.
V projektech Arduino poskytuje akcelerometr množství dat, která můžete převést na akce, jako je ovládání orientace robota nebo spouštění alarmů při překročení určitých limitů zrychlení. Dále mnoho modulů jako např MPU 6050 a ADXL345 Zahrnují také gyroskopy, které umožňují další údaje o úhlové rychlosti a sklonu.
Akcelerometr MPU6050
El MPU 6050 Je to jeden z nejpoužívanějších modulů díky své velké univerzálnosti. Toto zařízení kombinuje jak tříosý akcelerometr, tak tříosý gyroskop na jediném čipu, což poskytuje celkem šest stupňů volnosti (6DOF). Kromě toho obsahuje digitální pohybový procesor (DMP), který umožňuje kombinovat hodnoty z obou senzorů, čímž se optimalizuje výkon Arduina tím, že se vyhne složitým výpočtům v mikrokontroléru.
Rozsah měření akcelerometru umožňuje pracovat s nastavitelným rozsahem mezi ±2g, ±4g, ±8g a ±16g. To mu dává velkou přesnost, protože má 16bitové převodníky, které umožňují zachytit malé odchylky v každé ose. Také jeho vnitřní gyroskop umožňuje měření rotací s nastavitelným rozsahem mezi ±250°/s až ±2000°/s.
Komunikace je jednoduchá díky protokolu I2C nebo SPI, který umožňuje efektivní připojení MPU 6050 na Arduino a získat data rychle přes datovou sběrnici. Díky nízké spotřebě energie (v průměru asi 3,5 mA) je ideální pro projekty, kde je nutné optimalizovat spotřebu energie.
Příklad připojení MPU6050
Spojení mezi modulem MPU6050 a Arduinem je poměrně jednoduché díky standardu I2C, který tento senzor používá.
MPU 6050 | Arduino Uno (nebo podobné) |
---|---|
VCC | 5V |
GND | GND |
SCL | A5 |
SDA | A4 |
Jakmile jsou tato připojení navázána, můžete načíst kód do Arduino IDE, který vám umožní číst data akcelerometru a gyroskopu v reálném čase.
Čtení dat pomocí Arduina
Chcete-li získat údaje z MPU6050, můžete použít knihovny MPU 6050 y Drát, které usnadňují komunikaci mezi senzorem a deskou Arduino. Níže vám ukážeme jednoduchý příklad, jak číst zrychlení a rotace a zobrazovat je přes sériový port:
#include
#include
MPU6050 accelGyro;
int ax, ay, az;
int gx, gy, gz;
void setup() {
Serial.begin(9600);
Wire.begin();
accelGyro.initialize();
if (accelGyro.testConnection()) {
Serial.println("Sensor conectado correctamente");
} else {
Serial.println("Error al conectar el sensor");
}
}
void loop() {
accelGyro.getAcceleration(&ax, &ay, &az);
accelGyro.getRotation(&gx, &gy, &gz);
Serial.print("Accel: ");
Serial.print(ax); Serial.print(" ");
Serial.print(ay); Serial.print(" ");
Serial.print(az); Serial.print(" ");
Serial.print("Gyro: ");
Serial.print(gx); Serial.print(" ");
Serial.print(gy); Serial.print(" ");
Serial.println(gz);
delay(100);
}
Kalibrace akcelerometru
Po připojení a příjmu dat je důležité senzor zkalibrovat, abyste získali přesné údaje. To zahrnuje kompenzaci jakýchkoli chyb způsobených nakloněním snímače nebo malými odchylkami v elektronice.
Pro kalibraci modulu MPU6050 můžete upravit hodnoty ofset jak akcelerometru, tak gyroskopu. Tyto offsety vám umožní opravit naměřené hodnoty a učinit je, aby přesněji odrážely skutečné hodnoty. Zde je příklad, kdy se offsety upravují automaticky:
void calibrateMPU6050() {
int16_t ax, ay, az, gx, gy, gz;
int ax_offset = 0, ay_offset = 0, az_offset = 0;
int gx_offset = 0, gy_offset = 0, gz_offset = 0;
// Inicia con valores de ejemplo...
for(int i=0; i<100; i++) {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
ax_offset += ax; ay_offset += ay; az_offset += az;
gx_offset += gx; gy_offset += gy; gz_offset += gz;
delay(100);
}
Tento kód je jen úryvek, který ilustruje, jak upravit offsety z několika opakovaných čtení.
Akcelerometr ADXL345
El ADXL345 je 3osý kapacitní akcelerometr také velmi oblíbený v komunitě Arduino. Stejně jako MPU6050 je tento snímač nízkoenergetický a má paměťový blok FIFO pro uložení až 32 sad měření ze všech tří os.
Jednou z jeho silných stránek je, že umožňuje volit mezi několika rozsahy měření, od ±2g do ±16g, s rozlišením až 13 bitů. Má také dva přerušovací kolíky, které můžete nakonfigurovat tak, aby detekovaly specifické události, jako jsou náhlé pohyby nebo volné pády.
Použití ADXL345 s Arduino
Připojení ADXL345 k Arduinu je také docela jednoduché. Níže je uveden postup připojení snímače pomocí sběrnice I2C:
ADXL345 | Arduino Uno (nebo podobné) |
---|---|
Vcc | 5V |
GND | GND |
SDA | A4 |
SCL | A5 |
Jakmile budete připraveni, můžete knihovnu používat SparkFun_ADXL345 rychle a efektivně spouštět údaje z akcelerometru. Níže je uveden kód, jak provádět tato čtení:
#include
ADXL345 adxl;
void setup() {
Serial.begin(9600);
adxl.powerOn();
adxl.setRangeSetting(8); // Selecciona el rango de ±8g
}
void loop() {
int x, y, z;
adxl.readAccel(&x, &y, &z);
Serial.print("X:"); Serial.print(x);
Serial.print(" Y:"); Serial.print(y);
Serial.print(" Z:"); Serial.println(z);
delay(500);
}
Aplikace akcelerometru
Akcelerometry mají širokou škálu aplikací. Kromě toho, že se používají v hobby projektech s Arduinem, jsou nezbytné v elektronických zařízeních, jako jsou mobilní telefony, fotoaparáty a navigační systémy. Mezi nejběžnější aplikace patří:
- Detekce pohybu ve videohrách a ovladačích.
- Stabilizace fotoaparátu aby se zabránilo vibracím.
- Bezpečnostní zařízení pro detekci pádů nebo náhlých pohybů.
- Bezpečnostní alarm ve vozidlech nebo přístupových systémech.
Ať už si chcete postavit vlastního robota, vyvinout řídicí systém založený na gestech nebo se jednoduše dozvědět více o senzorech, akcelerometr je pro začátek jednou z nejlepších možností. Prostřednictvím praktických příkladů a správné kalibrace můžete získat přesné údaje, které vám umožní rozhodovat se ve vašich projektech v reálném čase.