2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
MMA8452Q, 12 bit qətnamə ilə ağıllı, aşağı güclü, üç oxlu, tutumlu, mikromaşinli sürətləndiricidir. İstifadəçi tərəfindən proqramlaşdırıla bilən seçimlər, iki fasilə sancağına konfiqurasiya edilə bilən akselerometrdə quraşdırılmış funksiyaların köməyi ilə təmin edilir. İstifadəçinin seçə biləcəyi tam ölçülü ± 2g/± 4g/± 8g yüksək keçid filtrli məlumatları və real vaxtda süzülməmiş məlumatları var. Python kodu istifadə edərək moruq pi ilə nümayişidir.
Addım 1: Nə Lazımdır..
1. Moruq Pi
2. MMA8452Q
3. I²C Kabel
4. Raspberry Pi üçün I²C Qalxanı
5. Ethernet Kabeli
Addım 2: Bağlantılar:
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 MMA8452Q 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:
MMA8452Q üçün python kodu github depomuzdan yüklənə bilər- ControlEverythingCommunity
İşdə link.
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.
# MMA8452Q
# Bu kod MMA8452Q_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)
# MMA8452Q ünvanı, 0x1C (28)
# İdarəetmə qeydini seçin, 0x2A (42)
# 0x00 (00) StandBy rejimi
bus.write_byte_data (0x1C, 0x2A, 0x00)
# MMA8452Q ünvanı, 0x1C (28)
# İdarəetmə qeydini seçin, 0x2A (42)
# 0x01 (01) Aktiv rejim
bus.write_byte_data (0x1C, 0x2A, 0x01)
# MMA8452Q ünvanı, 0x1C (28)
# Konfiqurasiya qeydini seçin, 0x0E (14)
# 0x00 (00) Aralığı +/- 2g olaraq təyin edin
bus.write_byte_data (0x1C, 0x0E, 0x00)
vaxt.yuxu (0.5)
# MMA8452Q ünvanı, 0x1C (28)
# 0x00 (0), 7 baytdan məlumatları geri oxuyun
# Status qeydiyyatı, X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB
data = bus.read_i2c_block_data (0x1C, 0x00, 7)
# Məlumatları çevirin
xAccl = (data [1] * 256 + data [2]) / 16
əgər xAccl> 2047:
xAccl -= 4096
yAccl = (data [3] * 256 + data [4]) / 16
yAccl> 2047 olarsa:
yAccl -= 4096 z
Accl = (data [5] * 256 + data [6]) / 16
əgər zAccl> 2047:
zAccl -= 4096
# 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:
MMA8452Q, E-Pusula tətbiqləri, Portret/Landşaft, Yuxarı/Aşağı, Sol/Sağ, Arxa/Ön mövqe identifikasiyası, Notebook, e-oxucu və Laptop Tumble and Freefall Detection, Real-time daxil olan Statik oriyentasiya aşkarlamasını özündə birləşdirən müxtəlif tətbiqlərə malikdir. virtual reallıq və oyun 3D istifadəçi mövqeyi geribildirimi, pedometr addım sayma, HDD üçün sərbəst düşmə algılama, ölü hesablama GPS ehtiyatı və daha çox kimi real vaxt fəaliyyət təhlili də daxil olmaqla oriyentasiya aşkarlanması.