Mündəricat:

Raspberry Pi - ADXL345 3 Eksenli Akselerometr Python Dərsliyi: 4 Addım
Raspberry Pi - ADXL345 3 Eksenli Akselerometr Python Dərsliyi: 4 Addım

Video: Raspberry Pi - ADXL345 3 Eksenli Akselerometr Python Dərsliyi: 4 Addım

Video: Raspberry Pi - ADXL345 3 Eksenli Akselerometr Python Dərsliyi: 4 Addım
Video: Raspberry Pi + AltIMU-10 v4 2024, Iyul
Anonim

ADXL345, kiçik, nazik, ultralow gücü, ± 16 q-a qədər yüksək qətnamə (13-bit) ölçüsü olan 3 oxlu akselerometrdir. Rəqəmsal çıxış məlumatları 16 bitlik ikili tamamlayıcı olaraq formatlanır və I2 C rəqəmsal interfeys vasitəsilə əldə edilə bilər. Tilt algılama tətbiqlərində cazibənin statik sürətlənməsini, həmçinin hərəkət və ya şok nəticəsində yaranan dinamik sürətlənməni ölçür. Yüksək qətnaməsi (3.9 mg/LSB), meyl dəyişikliklərinin 1.0 ° -dən aşağı ölçülməsinə imkan verir. Python kodu istifadə edərək moruq pi ilə nümayişdir.

Addım 1: Nə Lazımdır..

Nə Lazımdır.. !!
Nə Lazımdır.. !!
Nə Lazımdır.. !!
Nə Lazımdır.. !!

1. Moruq Pi

2. ADXL345

3. I²C Kabel

4. Raspberry Pi üçün I²C Qalxanı

5. Ethernet Kabeli

Addım 2: Bağlantı:

Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı

Moruq pi üçün bir I2C qalxanı götürün və moruq pi gpio sancaqlarının üzərinə yumşaq bir şəkildə itələyin.

Sonra I2C kabelinin bir ucunu ADXL345 sensoruna, digər ucunu isə I2C ekranına bağlayın.

Ayrıca Ethernet kabelini pi -yə qoşun və ya WiFi modulundan istifadə edə bilərsiniz.

Bağlantılar yuxarıdakı şəkildə göstərilmişdir.

Addım 3: Kod:

Kod
Kod

ADXL345 üçün python kodu GitHub depomuzdan yükləyə bilərsiniz- Dcube Mağazası

İşdə bunun üçün bağlantı:

github.com/DcubeTechVentures/ADXL345..

Python kodu üçün SMBus kitabxanasından istifadə etmişik, moruq pi üzərində SMBus quraşdırma addımları burada təsvir edilmişdir:

pypi.python.org/pypi/smbus-cffi/0.5.1

Kodu buradan da kopyalaya bilərsiniz, belə verilir:

# Sərbəst iradə lisenziyası ilə paylandı.

# Əlaqədar əsərlərinin lisenziyalarına uyğun olması şərtilə, mənfəət və ya pulsuz olaraq istədiyiniz şəkildə istifadə edin.

# ADXL345

# Bu kod, Dcube Store -da mövcud olan ADXL345_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır.

smbus idxal edin

idxal vaxtı

# I2C avtobusu alın

avtobus = smbus. SMBus (1)

# ADXL345 ünvanı, 0x53 (83)

# Bant genişliyi dərəcəsi qeydini seçin, 0x2C (44)# 0x0A (10) Normal rejim, Çıxış məlumat sürəti = 100 Hz

bus.write_byte_data (0x53, 0x2C, 0x0A)

# ADXL345 ünvanı, 0x53 (83)

# Güc idarəetmə qeydini seçin, 0x2D (45)

# 0x08 (08) Avtomatik Yuxu deaktiv edin

bus.write_byte_data (0x53, 0x2D, 0x08)

# ADXL345 ünvanı, 0x53 (83)

# Məlumat formatı qeydini seçin, 0x31 (49)

# 0x08 (08) Self test əlil, 4 telli interfeys

# Tam qətnamə, Aralıq = +/- 2g

bus.write_byte_data (0x53, 0x31, 0x08)

vaxt.yuxu (0.5)

# ADXL345 ünvanı, 0x53 (83)

# 0x32 (50), 2 baytdan məlumatları geri oxuyun

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Məlumatı 10 bitə çevirin

xAccl = ((data1 & 0x03) * 256) + data0

əgər xAccl> 511:

xAccl -= 1024

# ADXL345 ünvanı, 0x53 (83)

# 0x34 (52), 2 baytdan məlumatları geri oxuyun

# Y-Axis LSB, Y-Axis MSB

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Məlumatı 10 bitə çevirin

yAccl = ((data1 & 0x03) * 256) + data0

yAccl> 511 olarsa:

yAccl -= 1024

# ADXL345 ünvanı, 0x53 (83)

# 0x36 (54), 2 baytdan məlumatları geri oxuyun

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Məlumatı 10 bitə çevirin

zAccl = ((data1 & 0x03) * 256) + data0

zAccl> 511 olarsa:

zAccl -= 1024

# Ekrana məlumat çıxarın

çap "X Eksenində Sürətləndirmə: %d" %xAccl

çap "Y Eksenində Sürətləndirmə: %d" %yAccl

çap "Z Eksenində Sürətləndirmə: %d" %zAccl

Addım 4: Tətbiqlər:

ADXL345, kiçik, nazik, ultralow güc, 3 oxlu akselerometrdir ki, bu da Telefonlar, Tibbi alətlər və s. İstifadəsinə Oyun və işarə cihazları, Sənaye alətləri, Fərdi naviqasiya cihazları və Sabit disk sürücüsü (HDD) qorunması daxildir.

Tövsiyə: