Innholdsfortegnelse:
- Trinn 1: Nødvendig maskinvare:
- Trinn 2: Maskinvaretilkobling:
- Trinn 3: Kode for måling av akselerasjon:
- Trinn 4: Søknader:
Video: Måling av akselerasjon ved bruk av ADXL345 og Raspberry Pi: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2 C digitalt grensesnitt. Den måler den statiske gravitasjonsakselerasjonen i tilt-sensing-applikasjoner, samt dynamisk akselerasjon som følge av bevegelse eller sjokk. Den høye oppløsningen (3,9 mg/LSB) muliggjør måling av hellingsendringer mindre enn 1,0 °.
I denne opplæringen er grensesnittet mellom ADXL345 sensormodulen og bringebær pi demonstrert, og programmeringen ved hjelp av pythonspråk er også illustrert. For å lese akselerasjonsverdiene på alle 3-aksene har vi brukt bringebær pi med en I2C-adapter. Denne I2C-adapteren gjør tilkoblingen til sensormodulen enkel og mer pålitelig.
Trinn 1: Nødvendig maskinvare:
Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:
1. ADXL345
2. Bringebær Pi
3. I2C -kabel
4. I2C Shield for bringebær pi
5. Ethernet -kabel
Trinn 2: Maskinvaretilkobling:
Maskinvaretilkoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og bringebær -pi. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:
ADXL345 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.
Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker.
Alt du trenger er fire ledninger! Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.
Disse sammenhengene er vist på bildene ovenfor.
Trinn 3: Kode for måling av akselerasjon:
Fordelen med å bruke bringebær pi er at det gir deg fleksibiliteten til programmeringsspråket der du vil programmere brettet for å koble sensoren til det. Ved å utnytte denne fordelen med dette brettet, demonstrerer vi her programmeringen i python. Python -koden for ADXL345 kan lastes ned fra vårt github -fellesskap som er Control Everything Community.
I tillegg til brukernes brukervennlighet, forklarer vi koden også her:
Som det første trinnet i kodingen må du laste ned smbus -biblioteket i tilfelle python, fordi dette biblioteket støtter funksjonene som brukes i koden. Så for å laste ned biblioteket kan du besøke følgende lenke:
pypi.python.org/pypi/smbus-cffi/0.5.1
Du kan også kopiere arbeidspythonkoden for denne sensoren herfra:
importer smbus
importtid
# Få I2C -bussbuss = smbus. SMBus (1)
# ADXL345 adresse, 0x53 (83)
# Velg båndbreddehastighetsregister, 0x2C (44)
# 0x0A (10) Normal modus, Utdatahastighet = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 adresse, 0x53 (83)
# Velg effektkontrollregister, 0x2D (45)
# 0x08 (08) Deaktivert automatisk søvn
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 adresse, 0x53 (83)
# Velg register for dataformat, 0x31 (49)
# 0x08 (08) Selvtest deaktivert, 4-leder grensesnitt
# Full oppløsning, område = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
time.sleep (0,5)
# ADXL345 adresse, 0x53 (83)
# Les data tilbake fra 0x32 (50), 2 byte
# X-Axis LSB, X-Axis MSB
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Konverter dataene til 10-bits
xAccl = ((data1 & 0x03) * 256) + data0
hvis xAccl> 511:
xAccl -= 1024
# ADXL345 adresse, 0x53 (83)
# Les data tilbake fra 0x34 (52), 2 byte
# Y-akse LSB, Y-akse MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Konverter dataene til 10-bits
yAccl = ((data1 & 0x03) * 256) + data0
hvis yAccl> 511:
yAccl -= 1024
# ADXL345 adresse, 0x53 (83)
# Les data tilbake fra 0x36 (54), 2 byte
# Z-Axis LSB, Z-Axis MSB
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Konverter dataene til 10-bits
zAccl = ((data1 & 0x03) * 256) + data0
hvis zAccl> 511:
zAccl -= 1024
# Utdata til skjermen
print "Akselerasjon i X-aksen: %d" %xAccl
print "Akselerasjon i Y-aksen: %d" %yAccl
print "Akselerasjon i Z-aksen: %d" %zAccl
Den delen av koden som er nevnt nedenfor inkluderer bibliotekene som kreves for riktig utførelse av pythonkodene.
import smbusimport tid
Koden kan utføres ved å skrive kommandoen nedenfor i ledeteksten.
$> python ADXL345.py
Sensorens utgang er også vist på bildet ovenfor for referanse til brukeren.
Trinn 4: Søknader:
ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer som kan brukes i håndsett, medisinsk instrumentering etc. Applikasjonen inkluderer også spill- og pekeenheter, industriell instrumentering, personlige navigasjonsenheter og beskyttelse mot harddisk (HDD).
Anbefalt:
Måling av akselerasjon ved bruk av ADXL345 og Particle Photon: 4 trinn
Måling av akselerasjon ved bruk av ADXL345 og Particle Photon: ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2 C digitalt grensesnitt. Den måler
Måling av akselerasjon ved bruk av H3LIS331DL og partikkelfoton: 4 trinn
Måling av akselerasjon ved hjelp av H3LIS331DL og Particle Photon: H3LIS331DL, er et laveffekt 3-akset lineært akselerometer med høy ytelse som tilhører "nano" -familien, med digitalt I²C serielt grensesnitt. H3LIS331DL har full skalaer som kan velges på ± 100g/± 200g/± 400g, og den er i stand til å måle akselerasjoner m
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Måling av akselerasjon ved hjelp av H3LIS331DL og Raspberry Pi: 4 trinn
Måling av akselerasjon ved hjelp av H3LIS331DL og Raspberry Pi: H3LIS331DL, er et laveffekt 3-akset lineært akselerometer med høy ytelse som tilhører "nano" -familien, med digitalt I²C serielt grensesnitt. H3LIS331DL har full skalaer som kan velges på ± 100g/± 200g/± 400g, og den er i stand til å måle akselerasjoner m
Måling av akselerasjon ved bruk av ADXL345 og Arduino Nano: 4 trinn
Måling av akselerasjon ved hjelp av ADXL345 og Arduino Nano: ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2 C digitalt grensesnitt. Den måler