Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
ADXL345 on pieni, ohut, erittäin pienitehoinen, 3-akselinen kiihtyvyysanturi, jonka tarkkuus (13-bittinen) mitataan jopa ± 16 g. Digitaalinen lähtötieto on muotoiltu 16-bittiseksi kaksoiskappaleeksi, ja se on saatavana digitaalisen I2 C-liitännän kautta. Se mittaa staattisen painovoiman kiihtyvyyden kallistusanturisovelluksissa sekä liikkeen tai iskun aiheuttaman dynaamisen kiihtyvyyden. Sen suuri resoluutio (3,9 mg/LSB) mahdollistaa kaltevuuden muutosten mittaamisen alle 1,0 °.
Tässä opetusohjelmassa esitetään ADXL345 -anturimoduulin liitäntä vadelmapi: n kanssa ja sen ohjelmointi python -kielellä on myös kuvattu. Kaikkien 3-akselisten kiihtyvyysarvojen lukemiseen olemme käyttäneet vadelma pi: tä I2C-sovittimen kanssa. Tämä I2C-sovitin tekee liitännän anturimoduuliin helppoa ja luotettavaa.
Vaihe 1: Tarvittava laitteisto:
Tavoitteemme saavuttamiseen tarvittavat materiaalit sisältävät seuraavat laitteistokomponentit:
1. ADXL345
2. Vadelma Pi
3. I2C -kaapeli
4. I2C Shield vadelmalle pi
5. Ethernet -kaapeli
Vaihe 2: Laitteiston kytkentä:
Laitteiston liitäntäosa selittää periaatteessa anturin ja vadelmapi: n väliset tarvittavat johdotusliitännät. Oikeiden liitosten varmistaminen on perustarve, kun työskentelet minkä tahansa järjestelmän kanssa halutun lähdön saavuttamiseksi. Tarvittavat liitännät ovat siis seuraavat:
ADXL345 toimii I2C: n kautta. Tässä on esimerkki kytkentäkaaviosta, joka osoittaa, miten anturin jokainen liitäntä kytketään.
Valmis levy on konfiguroitu I2C-rajapintaa varten, joten suosittelemme käyttämään tätä kytkentää, jos olet muuten agnostikko.
Tarvitset vain neljä johtoa! Tarvitaan vain neljä liitäntää Vcc, Gnd, SCL ja SDA, ja ne on kytketty I2C -kaapelin avulla.
Nämä yhteydet on esitetty yllä olevissa kuvissa.
Vaihe 3: Kiihtyvyyden mittauskoodi:
Raspberry pi: n käytön etuna on, että se tarjoaa joustavuuden ohjelmointikielelle, jolla haluat ohjelmoida levyn, jotta liitäntä anturiin sen kanssa. Hyödynnämme tämän levyn etua ja esittelemme sen ohjelmointia pythonissa. ADXL345: n python -koodin voi ladata github -yhteisöltämme, joka on Control Everything Community.
Käyttäjien helpottamiseksi selitämme koodin myös täällä:
Koodauksen ensimmäisenä vaiheena sinun on ladattava smbus -kirjasto python -tapauksessa, koska tämä kirjasto tukee koodissa käytettyjä toimintoja. Joten voit ladata kirjaston seuraavasta linkistä:
pypi.python.org/pypi/smbus-cffi/0.5.1
Voit myös kopioida tämän anturin toimivan python -koodin täältä:
tuoda smbus
tuonnin aika
# Hanki I2C -väylä = smbus. SMBus (1)
# ADXL345 -osoite, 0x53 (83)
# Valitse kaistanleveysrekisteri, 0x2C (44)
# 0x0A (10) Normaalitila, Lähdön datanopeus = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 -osoite, 0x53 (83)
# Valitse virranhallintarekisteri, 0x2D (45)
# 0x08 (08) Automaattinen lepotila pois käytöstä
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 -osoite, 0x53 (83)
# Valitse tietomuotorekisteri, 0x31 (49)
# 0x08 (08) Itsetesti pois käytöstä, 4-johtiminen liitäntä
# Täysi resoluutio, alue = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
aika. unta (0,5)
# ADXL345 -osoite, 0x53 (83)
# Lue tiedot takaisin 0x32 (50), 2 tavua
# X-akseli LSB, X-akseli MSB
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Muunna tiedot 10-bittisiksi
xAccl = ((data1 & 0x03) * 256) + data0
jos xAccl> 511:
xAccl -= 1024
# ADXL345 -osoite, 0x53 (83)
# Lue tiedot takaisin 0x34 (52), 2 tavua
# Y-akseli LSB, Y-akseli MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Muunna tiedot 10-bittisiksi
yAccl = ((data1 & 0x03) * 256) + data0
jos yAccl> 511:
yAccl -= 1024
# ADXL345 -osoite, 0x53 (83)
# Lue tiedot takaisin 0x36 (54), 2 tavua
# Z-akseli LSB, Z-akseli MSB
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Muunna tiedot 10-bittisiksi
zAccl = ((data1 & 0x03) * 256) + data0
jos zAccl> 511:
zAccl -= 1024
# Tulosta tiedot näytölle
tulosta "Kiihtyvyys X-akselilla: %d" %xAccl
tulosta "Kiihtyvyys Y-akselilla: %d" %yAccl
tulosta "Kiihtyvyys Z-akselilla: %d" %zAccl
Alla mainittu koodin osa sisältää kirjastot, joita tarvitaan python -koodien oikeaan suorittamiseen.
tuoda smbusimport -aikaa
Koodi voidaan suorittaa kirjoittamalla alla mainittu komento komentokehotteeseen.
$> python ADXL345.py
Anturin lähtö näkyy myös yllä olevassa kuvassa käyttäjän viitteenä.
Vaihe 4: Sovellukset:
ADXL345 on pieni, ohut, erittäin pienitehoinen, 3-akselinen kiihtyvyysmittari, jota voidaan käyttää luureissa, lääketieteellisissä laitteissa jne. Sen sovellus sisältää myös peli- ja osoitinlaitteet, teollisuuslaitteet, henkilökohtaiset navigointilaitteet ja kiintolevyaseman (HDD).