2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13 bitli) ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2 C raqamli interfeysi orqali kirish mumkin. Nishab olishda tortishish statik tezlanishini, shuningdek harakat yoki zarba natijasida dinamik tezlanishni o'lchaydi. Uning yuqori aniqligi (3,9 mg/LSB) moyillik o'zgarishlarini 1,0 ° dan past o'lchash imkonini beradi. Bu erda malina pi bilan python kodi yordamida namoyish.
1 -qadam: Sizga nima kerak.. !
1. Raspberry Pi
2. ADXL345
3. I²C kabeli
4. Raspberry Pi uchun I²C qalqoni
5. Ethernet kabeli
2 -qadam: Ulanish:
Malinali pi uchun I2C qalqonini oling va uni malina pi gpio pimlariga sekin suring.
Keyin I2C kabelining bir uchini ADXL345 sensoriga, ikkinchi uchini esa I2C ekraniga ulang.
Ethernet kabelini pi -ga ulang yoki WiFi modulidan foydalanishingiz mumkin.
Ulanishlar yuqoridagi rasmda ko'rsatilgan.
3 -qadam: Kod:
ADXL345 uchun python kodini bizning GitHub omboridan yuklab olish mumkin- Dcube do'koni
Mana shu havola:
github.com/DcubeTechVentures/ADXL345..
Biz python kodi uchun SMBus kutubxonasidan foydalandik, malina pi ga SMBus o'rnatish bosqichlari bu erda tasvirlangan:
pypi.python.org/pypi/smbus-cffi/0.5.1
Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:
# Ixtiyoriy litsenziya bilan tarqatilgan.
# Agar xohlasang, foyda yoki tekin, agar u tegishli ish litsenziyalariga mos keladigan bo'lsa, ishlat.
# ADXL345
# Bu kod Dcube do'konida mavjud ADXL345_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.
smbus import qilish
import vaqti
# I2C avtobusini oling
avtobus = smbus. SMBus (1)
# ADXL345 manzili, 0x53 (83)
# O'tkazish tezligi registrini tanlang, 0x2C (44)# 0x0A (10) Oddiy rejim, Chiqish ma'lumoti tezligi = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 manzili, 0x53 (83)
# Quvvatni boshqarish registrini tanlang, 0x2D (45)
# 0x08 (08) Avtomatik uyquni o'chirish
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 manzili, 0x53 (83)
# Ma'lumotlar formati registrini tanlang, 0x31 (49)
# 0x08 (08) Self-test o'chirilgan, 4 simli interfeys
# To'liq aniqlik, diapazon = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
vaqt uyqu (0,5)
# ADXL345 manzili, 0x53 (83)
# Ma'lumotni 0x32 (50), 2 baytdan o'qing
# X o'qi LSB, X o'qi MSB
ma'lumotlar0 = bus.read_byte_data (0x53, 0x32)
ma'lumotlar1 = avtobus.read_byte_data (0x53, 0x33)
# Ma'lumotni 10 bitga aylantiring
xAccl = ((ma'lumotlar1 va 0x03) * 256) + ma'lumotlar0
agar xAccl> 511:
xAccl -= 1024
# ADXL345 manzili, 0x53 (83)
# 0x34 (52), 2 baytdan ma'lumotlarni o'qing
# Y-o'qi LSB, Y-o'qi MSB
ma'lumotlar0 = avtobus.read_byte_data (0x53, 0x34)
ma'lumotlar1 = avtobus.read_byte_data (0x53, 0x35)
# Ma'lumotni 10 bitga aylantiring
yAccl = ((ma'lumotlar1 va 0x03) * 256) + ma'lumotlar0
agar yAccl> 511 bo'lsa:
yAccl -= 1024
# ADXL345 manzili, 0x53 (83)
# 0x36 (54), 2 baytdan ma'lumotlarni o'qing
# Z-Axis LSB, Z-Axis MSB
ma'lumotlar0 = avtobus.read_byte_data (0x53, 0x36)
ma'lumotlar1 = avtobus.read_byte_data (0x53, 0x37)
# Ma'lumotni 10 bitga aylantiring
zAccl = ((ma'lumotlar1 va 0x03) * 256) + ma'lumotlar0
agar zAccl> 511:
zAccl -= 1024
# Ma'lumotlarni ekranga chiqarish
chop etish "X o'qida tezlashtirish: %d" %xAccl
chop etish "Y o'qida tezlashtirish: %d" %yAccl
chop etish "Z o'qida tezlashtirish: %d" %zAccl
4 -qadam: Ilovalar:
ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr bo'lib, u telefonlar, tibbiy asboblar va boshqalarda qo'llanilishi mumkin. O'yin va ishora asboblari, sanoat asboblari, shaxsiy navigatsiya qurilmalari va qattiq disk (HDD) himoyasini o'z ichiga oladi.