ઘણા અદ્યતન ઇલેક્ટ્રોનિક્સ પ્રોજેક્ટ્સમાં સેન્સરનો ઉપયોગ આવશ્યક છે. જો તમે Arduino વિશ્વમાં છો, તો તમે કદાચ એક્સીલેરોમીટર વિશે સાંભળ્યું હશે, એક ઉપકરણ જે પ્રવેગમાં વિવિધતાને માપે છે અને જાયરોસ્કોપ, જે તમને કોણીય માપ સાથે કામ કરવાની મંજૂરી આપે છે. બંને તમને ત્રિ-પરિમાણીય અક્ષોમાં ચળવળ અને અભિગમને કેપ્ચર કરવાની મંજૂરી આપે છે, જે રસપ્રદ શક્યતાઓનું બ્રહ્માંડ ખોલે છે.
આ લેખમાં અમે ઊંડાણપૂર્વક સમજાવીશું કે એક્સીલેરોમીટર શું છે અને તમે તેને તમારા Arduino પ્રોજેક્ટ્સમાં કેવી રીતે એકીકૃત કરી શકો છો. અમે MPU6050, ADXL345 અને અન્ય સમાન જેવા વિવિધ મોડ્યુલોનું વર્ણન કરીશું, તેમાંથી સૌથી વધુ કેવી રીતે મેળવવું તેની વિગતો આપીશું. વધુમાં, અમે તમને આ સેન્સર્સ અને કોડ ઉદાહરણોને કેવી રીતે કનેક્ટ કરવા તે અંગેની સામગ્રી પ્રદાન કરીએ છીએ જેનો તમે તમારા પ્રોજેક્ટ્સ માટે ઉપયોગ કરી શકો છો.
એક્સીલેરોમીટર શું છે?
એક્સેલરોમીટર એ એક સેન્સર છે જે એક અથવા વધુ અક્ષોમાં ઑબ્જેક્ટના પ્રવેગને માપે છે. આમાં ગતિને કારણે પ્રવેગક અને ગુરુત્વાકર્ષણને કારણે પ્રવેગક બંનેનો સમાવેશ થાય છે. પ્રવેગક મીટર પ્રતિ સેકન્ડ ચોરસ (m/s²) માં માપવામાં આવે છે, અને તેના ત્રણ અક્ષો (X, Y અને Z) ધ્યાનમાં લઈને, આપણે જાણી શકીએ છીએ કે વસ્તુ કઈ દિશામાં અને કયા બળથી આગળ વધી રહી છે.
ગતિ, ઝુકાવ અથવા કંપન શોધની જરૂર હોય તેવા એપ્લિકેશનો માટે એક્સીલેરોમીટર આવશ્યક છે. ઉદાહરણ તરીકે, તેનો ઉપયોગ સ્ક્રીન ઓરિએન્ટેશન, કેમેરા સ્ટેબિલાઇઝેશન, સુરક્ષા ઉપકરણો અને વિડિયો ગેમ્સમાં ફોલ ડિટેક્શન શોધવા માટે સ્માર્ટફોનમાં થાય છે.
Arduino પ્રોજેક્ટ્સમાં, એક્સેલેરોમીટર ડેટાનો ભંડાર પૂરો પાડે છે જેને તમે ક્રિયાઓમાં રૂપાંતરિત કરી શકો છો જેમ કે રોબોટના ઓરિએન્ટેશનને નિયંત્રિત કરવું અથવા જ્યારે ચોક્કસ પ્રવેગ મર્યાદા ઓળંગાઈ જાય ત્યારે એલાર્મ ટ્રિગર કરવું. વધુમાં, ઘણા મોડ્યુલો જેમ કે MPU6050 અને ADXL345 તેમાં ગાયરોસ્કોપનો પણ સમાવેશ થાય છે, જે કોણીય વેગ અને પિચ પર વધારાના ડેટા માટે પરવાનગી આપે છે.
MPU6050 એક્સેલરોમીટર
El MPU6050 તેની મહાન વૈવિધ્યતાને કારણે તે સૌથી વધુ ઉપયોગમાં લેવાતા મોડ્યુલોમાંનું એક છે. આ ઉપકરણ એક જ ચિપ પર ત્રણ-અક્ષીય પ્રવેગક અને ત્રણ-અક્ષીય ગાયરોસ્કોપ બંનેને જોડે છે, જે કુલ છ ડિગ્રી સ્વતંત્રતા (6DOF) પ્રદાન કરે છે. વધુમાં, તેમાં ડિજિટલ મોશન પ્રોસેસર (DMP)નો સમાવેશ થાય છે જે માઇક્રોકન્ટ્રોલરની અંદર જટિલ ગણતરીઓ ટાળીને Arduinoના પ્રદર્શનને ઑપ્ટિમાઇઝ કરીને, બંને સેન્સરના રીડિંગ્સને જોડવાની મંજૂરી આપે છે.
એક્સીલેરોમીટરની માપન શ્રેણી ±2g, ±4g, ±8g અને ±16g વચ્ચેની એડજસ્ટેબલ શ્રેણી સાથે કામ કરવાની મંજૂરી આપે છે. આ તેને મહાન ચોકસાઇ આપે છે, કારણ કે તેમાં 16-બીટ કન્વર્ટર છે જે દરેક અક્ષમાં નાના ફેરફારોને કેપ્ચર કરવાની મંજૂરી આપે છે. તેમજ તેનું આંતરિક જાયરોસ્કોપ ±250°/s થી ±2000°/s વચ્ચેની એડજસ્ટેબલ રેન્જ સાથે પરિભ્રમણને માપવાની મંજૂરી આપે છે.
કોમ્યુનિકેશન એ I2C અથવા SPI પ્રોટોકોલ માટે સરળ આભાર છે, જે તમને અસરકારક રીતે કનેક્ટ કરવાની મંજૂરી આપે છે. MPU6050 Arduino પર જાઓ અને ડેટા બસ પર ઝડપથી ડેટા મેળવો. તેનો ઓછો વીજ વપરાશ (સરેરાશ આશરે 3,5mA) તેને એવા પ્રોજેક્ટ્સ માટે આદર્શ બનાવે છે જ્યાં ઉર્જાનો ઉપયોગ ઑપ્ટિમાઇઝ હોવો જોઈએ.
MPU6050 કનેક્શન ઉદાહરણ
MPU6050 મોડ્યુલ અને Arduino વચ્ચેનું જોડાણ એકદમ સરળ છે, I2C સ્ટાન્ડર્ડ કે જે આ સેન્સર વાપરે છે તેના માટે આભાર.
MPU6050 | Arduino Uno (અથવા સમાન) |
---|---|
વીસીસી | 5V |
GND | GND |
એસસીએલ | A5 |
એસડીએ | A4 |
એકવાર આ જોડાણો સ્થાપિત થઈ જાય, પછી તમે Arduino IDE માં કોડ લોડ કરી શકો છો જે તમને રીઅલ ટાઇમમાં એક્સીલેરોમીટર અને ગાયરોસ્કોપ ડેટા વાંચવાની મંજૂરી આપે છે.
Arduino સાથે ડેટા વાંચન
MPU6050 માંથી વાંચન મેળવવા માટે, તમે પુસ્તકાલયોનો ઉપયોગ કરી શકો છો MPU6050 y વાયર, જે સેન્સર અને Arduino બોર્ડ વચ્ચે સંચારની સુવિધા આપે છે. નીચે અમે તમને પ્રવેગક અને પરિભ્રમણ કેવી રીતે વાંચવા અને તેમને સીરીયલ પોર્ટ દ્વારા પ્રદર્શિત કરવા તેનું એક સરળ ઉદાહરણ બતાવીએ છીએ:
#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);
}
એક્સીલેરોમીટર કેલિબ્રેશન
એકવાર કનેક્ટ થઈ ગયા પછી અને ડેટા પ્રાપ્ત કર્યા પછી, ચોક્કસ રીડિંગ્સ મેળવવા માટે સેન્સરને માપાંકિત કરવું મહત્વપૂર્ણ છે. આમાં સેન્સર ટિલ્ટ અથવા ઇલેક્ટ્રોનિક્સમાં નાની ભિન્નતાને કારણે કોઈપણ ભૂલો માટે વળતરનો સમાવેશ થાય છે.
તમારા MPU6050 મોડ્યુલને માપાંકિત કરવા માટે, તમે ની કિંમતોને સમાયોજિત કરી શકો છો ઑફસેટ એક્સેલરોમીટર અને ગાયરોસ્કોપ બંને. આ ઑફસેટ્સ તમને રીડિંગ્સ સુધારવા અને વાસ્તવિક મૂલ્યોને વધુ સચોટ રીતે પ્રતિબિંબિત કરવાની મંજૂરી આપશે. અહીં એક ઉદાહરણ છે જ્યાં ઑફસેટ્સ આપમેળે ગોઠવાય છે:
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);
}
આ કોડ માત્ર એક સ્નિપેટ છે જે સમજાવવા માટે કે કેટલાંક પુનરાવર્તિત વાંચનમાંથી ઑફસેટ્સને કેવી રીતે સમાયોજિત કરવું.
ADXL345 એક્સેલરોમીટર
El ADXL345 3-અક્ષ કેપેસિટીવ એક્સીલેરોમીટર છે જે Arduino સમુદાયમાં પણ ખૂબ જ લોકપ્રિય છે. MPU6050 ની જેમ, આ સેન્સર લો-પાવર છે અને ત્રણેય અક્ષોમાંથી માપના 32 સેટ સુધી સ્ટોર કરવા માટે FIFO મેમરી બ્લોક ધરાવે છે.
તેના મજબૂત મુદ્દાઓમાંથી એક એ છે કે તે તમને 2 બિટ્સ સુધીના રિઝોલ્યુશન સાથે ±16g થી ±13g સુધીની વિવિધ માપન શ્રેણીઓ વચ્ચે પસંદગી કરવાની મંજૂરી આપે છે. તેમાં બે ઇન્ટરપ્ટ પિન પણ છે જેને તમે ચોક્કસ ઘટનાઓ જેમ કે અચાનક હલનચલન અથવા ફ્રી ફોલ્સ શોધવા માટે ગોઠવી શકો છો.
Arduino સાથે ADXL345 નો ઉપયોગ કરવો
ADXL345 ને Arduino સાથે કનેક્ટ કરવું પણ એકદમ સરળ છે. નીચે I2C બસનો ઉપયોગ કરીને સેન્સરને કેવી રીતે કનેક્ટ કરવું તે છે:
ADXL345 | Arduino Uno (અથવા સમાન) |
---|---|
વીસીસી | 5V |
GND | GND |
એસડીએ | A4 |
એસસીએલ | A5 |
એકવાર તમે તૈયાર થઈ જાઓ, પછી તમે પુસ્તકાલયનો ઉપયોગ કરી શકો છો SparkFun_ADXL345 તમારા એક્સીલેરોમીટર રીડિંગ્સને ઝડપથી અને અસરકારક રીતે લોંચ કરવા માટે. આ વાંચન કેવી રીતે કરવું તે અંગે નીચે કેટલાક કોડ છે:
#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);
}
એક્સેલરોમીટર એપ્લિકેશન્સ
એક્સીલેરોમીટરમાં વિવિધ પ્રકારની એપ્લિકેશન હોય છે. Arduino સાથે હોબી પ્રોજેક્ટ્સમાં ઉપયોગ કરવા ઉપરાંત, તેઓ મોબાઇલ ફોન, કેમેરા અને નેવિગેશન સિસ્ટમ જેવા ઇલેક્ટ્રોનિક ઉપકરણોમાં આવશ્યક છે. સૌથી સામાન્ય એપ્લિકેશનોમાં શામેલ છે:
- વિડિયો ગેમ્સ અને કંટ્રોલર્સમાં મોશન ડિટેક્શન.
- કેમેરા સ્થિરીકરણ સ્પંદનો ટાળવા માટે.
- સલામતી ઉપકરણો ધોધ અથવા અચાનક હલનચલન શોધવા માટે.
- સુરક્ષા એલાર્મ વાહનો અથવા એક્સેસ સિસ્ટમ્સમાં.
ભલે તમે તમારો પોતાનો રોબોટ બનાવવા માંગતા હો, હાવભાવ-આધારિત કંટ્રોલ સિસ્ટમ વિકસાવવા માંગતા હો, અથવા ફક્ત સેન્સર વિશે વધુ શીખવા માંગતા હો, એક્સીલેરોમીટર એ શરૂઆત કરવા માટેના શ્રેષ્ઠ વિકલ્પોમાંથી એક છે. વ્યવહારુ ઉદાહરણો અને યોગ્ય માપાંકન દ્વારા, તમે ચોક્કસ રીડિંગ્સ મેળવી શકો છો જે તમને તમારા પ્રોજેક્ટ્સમાં વાસ્તવિક સમયના નિર્ણયો લેવાની મંજૂરી આપશે.