Innholdsfortegnelse:

3-akset akselerometer, ADXL345 med bringebær Pi ved bruk av Python: 6 trinn
3-akset akselerometer, ADXL345 med bringebær Pi ved bruk av Python: 6 trinn

Video: 3-akset akselerometer, ADXL345 med bringebær Pi ved bruk av Python: 6 trinn

Video: 3-akset akselerometer, ADXL345 med bringebær Pi ved bruk av Python: 6 trinn
Video: Arduino Nano and GY-521 MPU6050 3-осевой гироскоп, 3-осевой акселерометр и DMP 2024, November
Anonim
3-akset akselerometer, ADXL345 med bringebær Pi ved bruk av Python
3-akset akselerometer, ADXL345 med bringebær Pi ved bruk av Python

Tenker på en gadget som kan kontrollere punktet der offroaderen er vippet mot for å dvele. Ville det ikke vært hyggelig i tilfelle noen blir justert når det er mulighet for å velte? Tydeligvis ja. Det ville virkelig være nyttig for personer som liker å gå på fjellet og foretaksturer.

Uten tvil, en virkelig strålende periode med avansert beregningsevaluering, er IoT over oss. Som elskere av gadgets og programmer, tror vi, Raspberry Pi, at mikro -Linux -PC -en har behandlet menneskers kreative evner generelt, og har med seg en eksplosjon i innovative metoder. Så hva er de tenkelige utfallene av hva vi kan gjøre i tilfelle vi har en Raspberry Pi og et 3-akset akselerometer i nærheten? Vi burde oppdage! I denne oppgaven vil vi kjenne akselerasjonen på 3 akser, X, Y og Z ved å bruke Raspberry Pi og ADXL345, et 3-akset akselerometer. Så vi bør observere på denne ekskursjonen for å lage et rammeverk for å måle den tredimensjonale akselerasjonen opp eller G-Force.

Trinn 1: Grunnleggende maskinvare vi krever

Grunnleggende maskinvare vi krever
Grunnleggende maskinvare vi krever
Grunnleggende maskinvare vi krever
Grunnleggende maskinvare vi krever
Grunnleggende maskinvare vi krever
Grunnleggende maskinvare vi krever

Problemene var mindre for oss siden vi har massevis av ting som ligger å jobbe ut fra. Likevel vet vi hvordan det er plagsomt for andre å sette sammen den rette delen i perfekt tid fra det passende stedet, og det er berettiget uavhengig av hver krone. Så vi ville hjelpe deg i alle regioner. Les følgende for å få en komplett deleliste.

1. Bringebær Pi

Det første trinnet var å anskaffe et Raspberry Pi -kort. Denne lille datamaskinen med lav effekt gir en billig og generelt enkel base for elektronikkvirksomheter, Internet of Things (IoT), Smart Cities, School Education.

2. I2C Shield for Raspberry Pi

Det viktigste Raspberry Pi virkelig mangler er en I²C -port. Så for det gir TOUTPI2 I²C -kontakten deg følelsen av å bruke Rasp Pi med MULTIPLE I²C -enheter. Den er tilgjengelig på DCUBE Store

3. 3-akset akselerometer, ADXL345

Produsert av analoge enheter, ADXL345, er et laveffekt 3-akset akselerometer med høyoppløselig 13-bit måling på opptil ± 16g. Vi kjøpte denne sensoren fra DCUBE Store

4. Tilkoblingskabel

Vi hadde I2C -tilkoblingskabelen tilgjengelig i DCUBE Store

5. Micro USB -kabel

Raspberry Pi er den minste forvirrede, men likevel strengeste når det gjelder strømbehov! Den mest enkle fremgangsmåten for å slå på Raspberry Pi er ved hjelp av Micro USB -kabelen.

6. Internett -tilgang er et behov

Internett -tilgang kan styrkes gjennom en Ethernet -kabel (LAN) knyttet til et lokalt nettverk og Internett. På den annen side kan du knytte til et trådløst nettverk ved hjelp av en trådløs USB -dongle, noe som krever konfigurasjon.

7. HDMI -kabel/ekstern tilgang

Med HDMI -kabel ombord kan du koble den til en digital -TV eller til en skjerm. Trenger å spare penger! Raspberry Pi kan fjernstyres ved å bruke særegne strategier som SSH og Access over nettet. Du kan bruke kildeprogramvaren PuTTYopen.

Trinn 2: Koble til maskinvaren

Koble til maskinvaren
Koble til maskinvaren
Koble til maskinvaren
Koble til maskinvaren
Koble til maskinvaren
Koble til maskinvaren
Koble til maskinvaren
Koble til maskinvaren

Gjør kretsen i henhold til skjematisk dukket opp. Tegn en oversikt og ta etter konfigurasjonen bevisst.

Tilkobling av Raspberry Pi og I2C Shield

Fremfor alt, ta Raspberry Pi og se I2C -skjoldet på den. Trykk skjoldet forsiktig over GPIO -pinnene til Pi, og vi er ferdige med denne progresjonen så enkel som en kake (se bildet).

Tilkobling av sensoren og Raspberry Pi

Ta sensoren og koble til I2C -kabelen med den. For riktig bruk av denne kabelen, husk at I2C -utgang ALLTID er tilknyttet I2C -inngangen. Det samme må tas etter for Raspberry Pi med I2C -skjoldet montert over GPIO -pinnene.

Vi foreskriver bruk av I2C -kabelen, da den avviser kravet om gjennomgang av pinouts, lodding og ubehag forårsaket av selv den minste tabbe. Med denne grunnleggende plug and play -kabelen kan du enkelt introdusere, bytte enheter eller legge til flere enheter i et program. Dette gjør ting ukomplisert.

Merk: Den brune ledningen bør på en pålitelig måte følge jordforbindelsen (GND) mellom utgangen til en enhet og inngangen til en annen enhet

Webnettverk er nøkkelen

For å gjøre vårt foretak en gevinst, krever vi en nettforbindelse for vår Raspberry Pi. For dette har du alternativer som å koble en Ethernet (LAN) kabel til hjemmesystemet. I tillegg, som et alternativ, er imidlertid en nyttig rute å bruke en WiFi -tilkobling. Noen ganger trenger du en sjåfør for å få det til å fungere. Så len deg mot den med Linux i skildringen.

Strømforsyning

Koble Micro USB -kabelen til strømkontakten på Raspberry Pi. Lys opp, så er vi i gang.

Tilkobling til skjerm

Vi kan ha HDMI -kabelen tilknyttet en annen skjerm. I noen tilfeller må du komme til en Raspberry Pi uten å koble den til en skjerm, eller du må kanskje se noen data fra den fra et annet sted. Tenkelig er det innovative og økonomisk kunnskapsrike tilnærminger til å gjøre som sådan. En av dem bruker - SSH (ekstern kommandolinje -pålogging). Du kan også bruke PuTTY -programvaren til det.

Trinn 3: Python -koding for Raspberry Pi

Python -koding for Raspberry Pi
Python -koding for Raspberry Pi

Python -koden for Raspberry Pi og ADXL345 -sensoren er tilgjengelig i vårt Github -depot.

Før du går videre til koden, må du kontrollere at du leser retningslinjene i Readme -dokumentet og konfigurerer Raspberry Pi i henhold til den. Det vil bare stoppe i et minutt for å gjøre som sådan.

Et akselerometer er en enhet som måler riktig akselerasjon; riktig akselerasjon er ikke det samme som koordinatakselerasjon (hastighetsendring av hastighet). En- og flerakse modeller av akselerometeret er tilgjengelige for å identifisere størrelsen og retningen for riktig akselerasjon, som en vektormengde, og kan brukes til å registrere orientering, koordinere akselerasjon, vibrasjon, sjokk og fall i et resistivt medium.

Koden er ren foran deg, og den er i den mest enkle strukturen du kan se for deg, og du burde ikke ha noen problemer.

# Distribuert med en fri viljelisens.# Bruk den som du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene. # ADXL345 # Denne koden er designet for å fungere med ADXL345_I2CS I2C Mini Module tilgjengelig fra dcubestore.com # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -modul/

importer smbus

importtid

# Få I2C -buss

buss = smbus. SMBus (1)

# ADXL345 adresse, 0x53 (83)

# Velg båndbreddehastighetsregister, 0x2C (44) # 0x0A (10) Normal modus, Utdatahastighet = 100 Hz buss. Skrive_byte_data (0x53, 0x2C, 0x0A) # ADXL345 -adresse, 0x53 (83) # Velg strømkontrollregister, 0x2D (45) # 0x08 (08) Automatisk hvilemodus deaktivere bus.write_byte_data (0x53, 0x2D, 0x08) # ADXL345-adresse, 0x53 (83) # Velg dataformatregister, 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-Axis LSB, Y-Axis 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 "Acceleration in X-Axis: %d" %xAccl print "Acceleration in Y-Axis: %d" %yAccl print "Acceleration in Z-Axis: %d" %zAccl

Trinn 4: Det praktiske i koden

Det praktiske i koden
Det praktiske i koden

Last ned (eller git pull) koden fra Github og åpne den i Raspberry Pi.

Kjør kommandoene for å kompilere og laste opp koden i terminalen og se utgangen på Monitor. Etter noen få øyeblikk vil den vise alle parametrene. Etter å ha sørget for at alt fungerer enkelt, kan du ta denne satsingen til en større oppgave.

Trinn 5: Programmer og funksjoner

ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. ADXL345 er egnet for mobiltelefonapplikasjoner. Det kvantifiserer statisk tyngdekraftsakselerasjon i applikasjoner som tiltes av tilt og i tillegg kommer dynamisk akselerasjon på grunn av bevegelse eller sjokk. Andre applikasjoner inkluderer håndsett, medisinsk instrumentering, spill- og pekeenheter, industriell instrumentering, personlige navigasjonsenheter og beskyttelse mot harddisk (HDD).

Trinn 6: Konklusjon

Håper denne oppgaven motiverer til ytterligere eksperimentering. Denne I2C -sensoren er usedvanlig fleksibel, billig og tilgjengelig. Siden det er et i stor grad ubestandig system, er det interessante måter du kan utvide denne oppgaven og forbedre den til og med.

For eksempel kan du starte med ideen om et skråmåler ved hjelp av ADXL345 og Raspberry Pi. I prosjektet ovenfor har vi brukt grunnleggende beregninger. Du kan improvisere koden for G-verdier, skråningsvinkler (eller tilt), høyde eller depresjon av et objekt med hensyn til tyngdekraften. Deretter kan du sjekke forhåndsalternativene som rotasjonsvinkler for rull (front-til-bak-akse, X), stigning (side-til-side-akse, Y) og gjeving (vertikal akse, Z). Dette akselerometeret viser 3D-G-styrker. Så du kan bruke denne sensoren på forskjellige måter du kan vurdere.

For din bekvemmelighet har vi en fascinerende videoopplæringsøvelse på YouTube som kan hjelpe deg med etterforskningen. Stol på at denne satsingen motiverer til videre leting. Fortsett å tenke! Husk å søke etter ettersom det stadig kommer mer.

Anbefalt: