Turinys:
- 1 veiksmas: reikalinga aparatūra:
- 2 veiksmas: prijungimas prie aparatūros:
- 3 žingsnis: pagreičio matavimo kodas:
- 4 žingsnis: programos:
Video: Pagreičio matavimas naudojant ADXL345 ir Raspberry Pi: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
„ADXL345“yra mažas, plonas, itin mažos galios 3 ašių akselerometras su didelės skiriamosios gebos (13 bitų) matavimu iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2 C skaitmeninę sąsają. Jis matuoja statinį gravitacijos pagreitį pasvirimo jutiklyje, taip pat dinaminį pagreitį, atsirandantį dėl judesio ar smūgio. Didelė skiriamoji geba (3,9 mg/LSB) leidžia matuoti nuolydžio pokyčius, mažesnius nei 1,0 °.
Šioje pamokoje demonstruojama ADXL345 jutiklio modulio sąsaja su aviečių pi ir taip pat iliustruotas jo programavimas naudojant python kalbą. Norėdami perskaityti pagreičio vertes visose 3 ašyse, mes naudojome aviečių pi su I2C adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prisijungti prie jutiklio modulio.
1 veiksmas: reikalinga aparatūra:
Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:
1. ADXL345
2. Raspberry Pi
3. I2C kabelis
4. I2C skydas avietėms pi
5. Ethernet kabelis
2 veiksmas: prijungimas prie aparatūros:
Techninės įrangos prijungimo skyriuje iš esmės paaiškinamos reikalingos laidų jungtys tarp jutiklio ir aviečių pi. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:
ADXL345 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.
Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas.
Viskas, ko jums reikia, yra keturi laidai! Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.
Šie ryšiai parodyti aukščiau esančiose nuotraukose.
3 žingsnis: pagreičio matavimo kodas:
„Raspberry pi“naudojimo pranašumas yra tai, kad suteikia lankstumo programavimo kalbai, kuria norite programuoti plokštę, kad su ja susietumėte jutiklį. Pasinaudoję šiuo šios plokštės pranašumu, mes čia demonstruojame jos programavimą python'e. ADXL345 python kodą galima atsisiųsti iš mūsų „github“bendruomenės, kuri yra „Control Everything Community“.
Be vartotojų patogumo, mes taip pat paaiškiname kodą čia:
Kaip pirmąjį kodavimo žingsnį turite atsisiųsti „smbus“biblioteką „python“atveju, nes ši biblioteka palaiko kode naudojamas funkcijas. Taigi, norėdami atsisiųsti biblioteką, galite apsilankyti šioje nuorodoje:
pypi.python.org/pypi/smbus-cffi/0.5.1
Taip pat galite nukopijuoti šio jutiklio veikiančio python kodą:
importuoti smbus
importo laikas
# Gaukite I2C magistralę = smbus. SMBus (1)
# ADXL345 adresas, 0x53 (83)
# Pasirinkite dažnių juostos pločio registrą, 0x2C (44)
# 0x0A (10) Normalus režimas, išvesties duomenų perdavimo sparta = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 adresas, 0x53 (83)
# Pasirinkite galios valdymo registrą, 0x2D (45)
# 0x08 (08) Automatinis miego režimas išjungtas
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 adresas, 0x53 (83)
# Pasirinkite duomenų formatų registrą, 0x31 (49)
# 0x08 (08) Savęs testavimas išjungtas, 4 laidų sąsaja
# Visa raiška, diapazonas = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
laikas. miegas (0,5)
# ADXL345 adresas, 0x53 (83)
# Perskaitykite duomenis iš 0x32 (50), 2 baitų
# X ašis LSB, X ašis MSB
duomenys0 = magistralė.skaito_baitų_datai (0x53, 0x32)
duomenys1 = magistralė
# Konvertuokite duomenis į 10 bitų
xAccl = ((duomenys1 ir 0x03) * 256) + duomenys0
jei xAccl> 511:
xAccl -= 1024
# ADXL345 adresas, 0x53 (83)
# Perskaitykite duomenis iš 0x34 (52), 2 baitų
# Y ašis LSB, Y ašis MSB
duomenys0 = magistralė.skaito_baitų_datai (0x53, 0x34)
duomenys1 = magistralė
# Konvertuokite duomenis į 10 bitų
yAccl = ((duomenys1 ir 0x03) * 256) + duomenys0
jei yAccl> 511:
yAccl -= 1024
# ADXL345 adresas, 0x53 (83)
# Perskaitykite duomenis iš 0x36 (54), 2 baitų
# Z ašies LSB, Z ašies MSB
duomenys0 = magistralės.skaito_baitų_datai (0x53, 0x36)
duomenys1 = magistralė
# Konvertuokite duomenis į 10 bitų
zAccl = ((duomenys1 ir 0x03) * 256) + duomenys0
jei zAccl> 511:
zAccl -= 1024
# Išveskite duomenis į ekraną
spausdinti "pagreitis X ašyje: %d" %xAccl
spausdinti "pagreitis Y ašyje: %d" %yAccl
spauda "Pagreitis Z ašyje: %d" %zAccl
Toliau nurodyta kodo dalis apima bibliotekas, reikalingas teisingam python kodų vykdymui.
importuoti smbusimport laiką
Kodą galima vykdyti komandų eilutėje įvedus žemiau nurodytą komandą.
$> python ADXL345.py
Jutiklio išvestis taip pat parodyta aukščiau esančiame paveikslėlyje vartotojo naudai.
4 žingsnis: programos:
ADXL345 yra mažas, plonas, itin mažos galios 3 ašių akselerometras, kurį galima naudoti telefonuose, medicinos prietaisuose ir pan. Jo taikymas taip pat apima žaidimų ir rodymo prietaisus, pramoninius prietaisus, asmeninius navigacijos įrenginius ir standžiojo disko (HDD) apsaugą.
Rekomenduojamas:
Pagreičio matavimas naudojant ADXL345 ir dalelių fotoną: 4 žingsniai
Pagreičio matavimas naudojant ADXL345 ir dalelių fotoną: ADXL345 yra mažas, plonas, itin mažos galios 3 ašių akselerometras, kurio didelės skiriamosios gebos (13 bitų) matavimas yra iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2 C skaitmeninę sąsają. Tai matuoja
Pagreičio matavimas naudojant H3LIS331DL ir „Arduino Nano“: 4 žingsniai
Pagreičio matavimas naudojant H3LIS331DL ir „Arduino Nano“: H3LIS331DL yra mažos galios didelio našumo 3 ašių linijinis akselerometras, priklausantis „nano“šeimai, su skaitmenine I²C nuoseklia sąsaja. „H3LIS331DL“naudotojas gali pasirinkti visas ± 100 g/± 200 g/± 400 g skalę ir gali išmatuoti pagreitį
Pagreičio matavimas naudojant H3LIS331DL ir Raspberry Pi: 4 žingsniai
Pagreičio matavimas naudojant H3LIS331DL ir Raspberry Pi: H3LIS331DL yra mažos galios didelio našumo 3 ašių linijinis akselerometras, priklausantis „nano“šeimai, su skaitmenine I²C nuoseklia sąsaja. „H3LIS331DL“naudotojas gali pasirinkti visas ± 100 g/± 200 g/± 400 g skalę ir gali išmatuoti pagreitį
Pagreičio matavimas naudojant ADXL345 ir „Arduino Nano“: 4 žingsniai
Pagreičio matavimas naudojant ADXL345 ir „Arduino Nano“: ADXL345 yra mažas, plonas, itin mažos galios 3 ašių akselerometras, turintis didelės skiriamosios gebos (13 bitų) matavimą iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2 C skaitmeninę sąsają. Tai matuoja
Pagreičio matavimas naudojant BMA250 ir Raspberry Pi: 4 žingsniai
Pagreičio matavimas naudojant BMA250 ir Raspberry Pi: BMA250 yra mažas, plonas, itin mažos galios 3 ašių akselerometras, turintis didelės skiriamosios gebos (13 bitų) matavimą iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2C skaitmeninę sąsają. Matuoja statinį