Indholdsfortegnelse:
- Trin 1: Påkrævet hardware:
- Trin 2: Hardware -tilslutning:
- Trin 3: Kode til måling af acceleration:
- Trin 4: Ansøgninger:
Video: Måling af acceleration ved hjælp af ADXL345 og Raspberry Pi: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
ADXL345 er et lille, tyndt, ultralavt, 3-akset accelerometer med høj opløsning (13-bit) måling på op til ± 16 g. Digitale outputdata er formateret som 16-bit tokomplement og er tilgængelige via I2 C digital interface. Det måler den statiske tyngdekraftacceleration i tilt-sensing applikationer samt dynamisk acceleration som følge af bevægelse eller stød. Dens høje opløsning (3,9 mg/LSB) muliggør måling af hældningsændringer mindre end 1,0 °.
I denne vejledning demonstreres grænsefladen mellem ADXL345 sensormodulet og hindbær pi, og dets programmering ved hjælp af pythonsprog er også illustreret. For at aflæse accelerationsværdierne på alle 3-akserne har vi brugt hindbær pi med en I2C-adapter. Denne I2C-adapter gør forbindelsen til sensormodulet let og mere pålidelig.
Trin 1: Påkrævet hardware:
De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:
1. ADXL345
2. Hindbær Pi
3. I2C -kabel
4. I2C Skjold til hindbær pi
5. Ethernet -kabel
Trin 2: Hardware -tilslutning:
Hardware -tilslutningssektionen forklarer grundlæggende de ledningsforbindelser, der kræves mellem sensoren og hindbær pi. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:
ADXL345 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.
Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker.
Alt du behøver er fire ledninger! Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.
Disse forbindelser er vist på billederne ovenfor.
Trin 3: Kode til måling af acceleration:
Fordelen ved at bruge hindbær pi er, det vil sige giver dig fleksibiliteten i det programmeringssprog, hvor du vil programmere tavlen, for at interface sensoren med den. Ved at udnytte denne fordel ved dette board demonstrerer vi her sin programmering i python. Python -koden til ADXL345 kan downloades fra vores github -fællesskab, der er Control Everything Community.
Ud over brugernes brugervenlighed forklarer vi også koden her:
Som det første trin i kodningen skal du downloade smbus -biblioteket i tilfælde af python, fordi dette bibliotek understøtter de funktioner, der bruges i koden. Så for at downloade biblioteket kan du besøge følgende link:
pypi.python.org/pypi/smbus-cffi/0.5.1
Du kan også kopiere arbejdspython -koden til denne sensor herfra:
import smbus
importtid
# Få I2C busbus = smbus. SMBus (1)
# ADXL345 adresse, 0x53 (83)
# Vælg båndbreddehastighedsregister, 0x2C (44)
# 0x0A (10) Normal tilstand, Output datahastighed = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 adresse, 0x53 (83)
# Vælg effektstyringsregister, 0x2D (45)
# 0x08 (08) Deaktivering af automatisk søvn
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 adresse, 0x53 (83)
# Vælg dataformatregister, 0x31 (49)
# 0x08 (08) Selvtest deaktiveret, 4-leder interface
# Fuld opløsning, Område = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
time.sleep (0,5)
# ADXL345 adresse, 0x53 (83)
# Læs data tilbage fra 0x32 (50), 2 bytes
# X-Axis LSB, X-Axis MSB
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Konverter dataene til 10-bit
xAccl = ((data1 & 0x03) * 256) + data0
hvis xAccl> 511:
xAccl -= 1024
# ADXL345 adresse, 0x53 (83)
# Læs data tilbage fra 0x34 (52), 2 bytes
# Y-akse LSB, Y-akse MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Konverter dataene til 10-bit
yAccl = ((data1 & 0x03) * 256) + data0
hvis yAccl> 511:
yAccl -= 1024
# ADXL345 adresse, 0x53 (83)
# Læs data tilbage fra 0x36 (54), 2 bytes
# Z-Axis LSB, Z-Axis MSB
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Konverter dataene til 10-bit
zAccl = ((data1 & 0x03) * 256) + data0
hvis zAccl> 511:
zAccl -= 1024
# Output data til skærmen
print "Acceleration i X-akse: %d" %xAccl
print "Acceleration i Y-akse: %d" %yAccl
print "Acceleration i Z-akse: %d" %zAccl
Den del af koden, der er nævnt herunder, omfatter de biblioteker, der kræves til korrekt udførelse af pythonkoderne.
import smbusimport tid
Koden kan udføres ved at skrive kommandoen nedenfor i kommandoprompten.
$> python ADXL345.py
Sensorens output vises også på billedet ovenfor til brugerens reference.
Trin 4: Ansøgninger:
ADXL345 er et lille, tyndt, ultralavt, 3-akset accelerometer, der kan bruges i håndsæt, medicinsk instrumentering osv. Dets anvendelse omfatter også spil- og pegeudstyr, industriel instrumentering, personlige navigationsenheder og beskyttelse af harddisk (HDD).
Anbefalede:
Måling af acceleration ved hjælp af ADXL345 og Particle Photon: 4 trin
Måling af acceleration ved hjælp af ADXL345 og Particle Photon: ADXL345 er et lille, tyndt, ultralavt, 3-akset accelerometer med høj opløsning (13-bit) måling på op til ± 16 g. Digitale outputdata er formateret som 16-bit tokomplement og er tilgængelige via I2 C digital interface. Det måler
Måling af acceleration ved hjælp af H3LIS331DL og Arduino Nano: 4 trin
Måling af acceleration ved hjælp af H3LIS331DL og Arduino Nano: H3LIS331DL, er et laveffekt højtydende 3-akset lineært accelerometer, der tilhører "nano" -familien, med digitalt I²C serielt interface. H3LIS331DL har bruger -valgbare fulde skalaer på ± 100g/± 200g/± 400g, og den er i stand til at måle accelerationer m
Måling af acceleration ved hjælp af H3LIS331DL og partikelfoton: 4 trin
Måling af acceleration ved hjælp af H3LIS331DL og Particle Photon: H3LIS331DL, er et laveffekt højtydende 3-akset lineært accelerometer, der tilhører "nano" -familien, med digitalt I²C serielt interface. H3LIS331DL har bruger -valgbare fulde skalaer på ± 100g/± 200g/± 400g, og den er i stand til at måle accelerationer m
Måling af acceleration ved hjælp af H3LIS331DL og Raspberry Pi: 4 trin
Måling af acceleration ved hjælp af H3LIS331DL og Raspberry Pi: H3LIS331DL, er et laveffekt højtydende 3-akset lineært accelerometer, der tilhører "nano" -familien, med digitalt I²C serielt interface. H3LIS331DL har bruger -valgbare fulde skalaer på ± 100g/± 200g/± 400g, og den er i stand til at måle accelerationer m
Måling af acceleration ved hjælp af ADXL345 og Arduino Nano: 4 trin
Måling af acceleration ved hjælp af ADXL345 og Arduino Nano: ADXL345 er et lille, tyndt, ultralavt, 3-akset accelerometer med høj opløsning (13-bit) måling på op til ± 16 g. Digitale outputdata er formateret som 16-bit tokomplement og er tilgængelige via I2 C digital interface. Det måler