Turinys:

Pagreičio matavimas naudojant ADXL345 ir Raspberry Pi: 4 žingsniai
Pagreičio matavimas naudojant ADXL345 ir Raspberry Pi: 4 žingsniai

Video: Pagreičio matavimas naudojant ADXL345 ir Raspberry Pi: 4 žingsniai

Video: Pagreičio matavimas naudojant ADXL345 ir Raspberry Pi: 4 žingsniai
Video: 5 klase vaizdo pamoka 009 Matlankis. Kaip nubraižyti norimo dydžio kampą? 2024, Liepa
Anonim
Image
Image

„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:

Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
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:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

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:

Pagreičio matavimo kodas
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:

Programos
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: