3-osni merilnik pospeška, ADXL345 z Raspberry Pi z uporabo Pythona: 6 korakov
3-osni merilnik pospeška, ADXL345 z Raspberry Pi z uporabo Pythona: 6 korakov
Anonim
3-osni merilnik pospeška, ADXL345 z Raspberry Pi z uporabo Pythona
3-osni merilnik pospeška, ADXL345 z Raspberry Pi z uporabo Pythona

Razmišljate o pripomočku, ki lahko preveri točko, na kateri je vaš Offroader nagnjen proti. Ali ne bi bilo prijetno, če bi se kdo prilagodil, ko obstaja možnost prevrnitve? Očitno da. To bi bilo resnično koristno za posameznike, ki radi hodijo v gore in na poslovna potovanja.

Brez dvoma je resnično briljantno obdobje naprednega vrednotenja figura, pred nami je IoT. Verjamemo, da je kot ljubitelj pripomočkov in programiranja Raspberry Pi, mikro Linux računalnik, obravnaval ustvarjalne sposobnosti ljudi na splošno in s seboj prinesel vrhunec v inovativnih metodologijah. Kakšni so torej možni rezultati, ki jih lahko naredimo, če imamo v bližini Raspberry Pi in 3-osni merilnik pospeška? Morali bi odkriti! Pri tej nalogi bomo zaznali pospešek na treh osh, X, Y in Z z uporabo Raspberry Pi in ADXL345, triosnega merilnika pospeška. Zato bi morali na tem izletu opazovati izdelavo ogrodja za merjenje tridimenzionalnega pospeška navzgor ali G-sile.

Korak: Osnovna strojna oprema, ki jo potrebujemo

Osnovna strojna oprema, ki jo potrebujemo
Osnovna strojna oprema, ki jo potrebujemo
Osnovna strojna oprema, ki jo potrebujemo
Osnovna strojna oprema, ki jo potrebujemo
Osnovna strojna oprema, ki jo potrebujemo
Osnovna strojna oprema, ki jo potrebujemo

Težave so bile za nas manjše, saj imamo na voljo ogromno stvari za delo. Kljub temu vemo, kako je drugim težavno sestaviti pravi del v idealnem času s primernega mesta, kar je upravičeno ne glede na vsak peni. Zato bi vam pomagali v vseh regijah. Za popoln seznam delov preberite naslednje.

1. Malina Pi

Prvi korak je bil nakup plošče Raspberry Pi. Ta majhen računalnik z nizko porabo energije ponuja poceni in na splošno preprosto osnovo za elektronske podvige, internet stvari (IoT), pametna mesta, šolsko izobraževanje.

2. I2C ščit za Raspberry Pi

Glavna stvar, ki Raspberry Pi resnično manjka, so vrata I²C. Zato vam priključek TOUTPI2 I²C daje smisel za uporabo Rasp Pi z napravami MULTIPLE I²C. Dostopno je v trgovini DCUBE

3. 3-osni merilnik pospeška, ADXL345

ADXL345, ki ga proizvaja Analog Devices, je 3-osni merilnik pospeška z nizko porabo energije z 13-bitnimi meritvami visoke ločljivosti do ± 16 g. Ta senzor smo kupili v trgovini DCUBE

4. Priključni kabel

Povezovalni kabel I2C smo imeli na voljo v trgovini DCUBE

5. Kabel mikro USB

Najmanjši zmedeni, a najstrožji glede potrebe po energiji je Raspberry Pi! Najbolj enostaven pristop za vklop Raspberry Pi je s kablom Micro USB.

6. Spletni dostop je potreba

Spletni dostop je mogoče pooblastiti prek kabla Ethernet (LAN), povezanega z lokalnim omrežjem in spletom. Po drugi strani pa se lahko povežete z brezžičnim omrežjem z brezžičnim ključem USB, ki bo zahteval konfiguracijo.

7. Kabel HDMI/oddaljeni dostop

S kablom HDMI lahko priključite na digitalno televizijo ali monitor. Treba je prihraniti denar! Raspberry Pi lahko na daljavo uporabite z uporabo posebnih strategij, kot sta SSH in Access preko spleta. Uporabite lahko izvorno programsko opremo PuTTYopen.

2. korak: Priključitev strojne opreme

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Naredite vezje po prikazani shemi. Narišite oris in po namestitvi namerno vzemite.

Povezava Raspberry Pi in I2C Shield

Predvsem pa vzemite Raspberry Pi in na njem opazite I2C Shield. Nežno pritisnite Shield na zatiče GPIO za Pi in končali smo s tem napredovanjem tako preprosto kot pita (glej snap).

Povezava senzorja in Raspberry Pi

Vzemite senzor in s seboj povežite kabel I2C. Za ustrezno delovanje tega kabla se spomnite, da je izhod I2C VEDNO povezan z vhodom I2C. Enako je treba upoštevati tudi za Raspberry Pi z I2C ščitom, nameščenim nanj preko zatičev GPIO.

Predpisujemo uporabo kabla I2C, saj ovrže zahtevo po pregledu pinouts, spajkanju in slabosti, ki jih povzroči tudi najmanjša napaka. S tem osnovnim kablom plug and play lahko preprosto predstavite, zamenjate naprave ali dodate več naprav v aplikacijo. Zaradi tega so stvari nezapletene.

Opomba: Rjava žica bi morala zanesljivo slediti ozemljitveni (GND) povezavi med izhodom ene naprave in vhodom druge naprave

Spletno omrežje je ključno

Da bi naše podjetje zmagalo, potrebujemo spletno povezavo za naš Raspberry Pi. Za to imate druge možnosti, kot je povezovanje kabla Ethernet (LAN) z domačim sistemom. Poleg tega je kot možnost koristna pot uporaba priključka WiFi. Včasih za to potrebujete voznika, da deluje. Zato se nagnite k tistemu z Linuxom v upodobitvi.

Napajanje

Priključite kabel Micro USB v vtičnico za napajanje Raspberry Pi. Prižgite ga in lahko gremo.

Povezava z zaslonom

Kabel HDMI lahko povežemo z drugim zaslonom. V nekaterih primerih morate priti do Raspberry Pi, ne da bi ga povezali z zaslonom, ali pa si boste morda morali ogledati nekatere podatke iz njega od drugod. Verjetno obstajajo inovativni in finančno podkovani pristopi k temu. Eden od njih uporablja - SSH (oddaljena prijava v ukazno vrstico). Za to lahko uporabite tudi programsko opremo PuTTY.

Korak: Kodiranje Python za Raspberry Pi

Python kodiranje za Raspberry Pi
Python kodiranje za Raspberry Pi

Koda Python za senzor Raspberry Pi in ADXL345 je dostopna v našem skladišču Github.

Preden nadaljujete s kodo, se prepričajte, da ste prebrali smernice v dokumentu Readme in nastavite Raspberry Pi v skladu z njo. Preprosto se bo za nekaj minut ustavilo, da bo tako.

Merilnik pospeška je naprava, ki meri pravilen pospešek; pravilen pospešek ni enak koordinatnemu pospešku (hitrost spremembe hitrosti). Eno- in večosni modeli merilnika pospeška so na voljo za identifikacijo velikosti in smeri ustreznega pospeška kot vektorske količine in jih je mogoče uporabiti za zaznavanje orientacije, koordiniranje pospeška, vibracije, udarca in padca v uporovnem mediju.

Koda je pred vami jasna in je v najbolj enostavni strukturi, ki si jo lahko zamislite, in ne bi smeli imeti težav.

# Razdeljeno z licenco za svobodno voljo.# Uporabite ga na kakršen koli način, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del. # ADXL345 # Ta koda je zasnovana za delo z mini modulom ADXL345_I2CS I2C, ki je na voljo na spletnem mestu dcubestore.com # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -modul/

uvoz smbus

čas uvoza

# Pridobite avtobus I2C

vodilo = smbus. SMBus (1)

# Naslov ADXL345, 0x53 (83)

# Izberite register hitrosti pasovne širine, 0x2C (44) # 0x0A (10) Običajen način, Hitrost izhodnih podatkov = 100 Hz bus.write_byte_data (0x53, 0x2C, 0x0A) # Naslov ADXL345, 0x53 (83) # Izberite register za nadzor moči, 0x2D (45) # 0x08 (08) Samodejno onemogoči bus.write_byte_data (0x53, 0x2D, 0x08) # ADXL345 naslov, 0x53 (83) # Izberite register podatkovnega formata, 0x31 (49) # 0x08 (08) Samopreizkus onemogočen, 4-žilni vmesnik # polna ločljivost, obseg = +/- 2g vodila.write_byte_data (0x53, 0x31, 0x08)

time.sleep (0,5)

# Naslov ADXL345, 0x53 (83)

# Preberite podatke nazaj iz 0x32 (50), 2 bajtov # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data (0x53, 0x32) data1 = bus.read_byte_data (0x53, 0x33)

# Pretvorite podatke v 10-bitne

xAccl = ((podatki1 & 0x03) * 256) + podatki0, če je xAccl> 511: xAccl -= 1024

# Naslov ADXL345, 0x53 (83)

# Preberite podatke nazaj iz 0x34 (52), 2 bajta # Y-os LSB, Y-os MSB data0 = bus.read_byte_data (0x53, 0x34) data1 = bus.read_byte_data (0x53, 0x35)

# Pretvorite podatke v 10-bitne

yAccl = ((podatki1 & 0x03) * 256) + podatki0, če je yAccl> 511: yAccl -= 1024

# Naslov ADXL345, 0x53 (83)

# Preberite podatke nazaj iz 0x36 (54), 2 bajta # Z-os LSB, Z-os MSB podatki 0 = vodilo.prebrani_bajtni_dati (0x53, 0x36) data1 = vodilo.read_byte_data (0x53, 0x37)

# Pretvorite podatke v 10-bitne

zAccl = ((podatki1 & 0x03) * 256) + podatki0, če je zAccl> 511: zAccl -= 1024

# Iznesite podatke na zaslon

print "Pospešek v osi X: %d" %xAccl print "Pospešek v osi Y: %d" %yAccl print "Pospešek v osi Z: %d" %zAccl

4. korak: Praktičnost kodeksa

Praktičnost kodeksa
Praktičnost kodeksa

Prenesite (ali git pull) kodo iz Github -a in jo odprite v Raspberry Pi.

Zaženite ukaze za sestavljanje in nalaganje kode v terminalu in si oglejte rezultate na monitorju. Po nekaj trenutkih bo prikazal vse parametre. Potem, ko zagotovite, da vse deluje brez težav, se lahko s tem podvigom lotite večje naloge.

5. korak: Aplikacije in funkcije

ADXL345 je majhen, tanek, 3-osni merilnik pospeška z ultra nizko močjo z visoko ločljivostjo (13-bitnimi) meritvami do ± 16 g. ADXL345 je primeren za aplikacije za mobilne telefone. Kvantificira statično pospeševanje gravitacije v aplikacijah za zaznavanje nagiba in dodatno dinamično pospeševanje zaradi gibanja ali šoka. Druge aplikacije vključujejo slušalke, medicinske instrumente, igralne in kazalne naprave, industrijske instrumente, osebne navigacijske naprave in zaščito trdega diska (HDD).

6. korak: Zaključek

Upam, da bo ta naloga spodbudila nadaljnje eksperimentiranje. Ta senzor I2C je izredno prilagodljiv, poceni in dostopen. Ker je sistem v veliki meri nespremenljiv, obstajajo zanimivi načini, kako lahko to nalogo razširite in jo celo izboljšate.

Na primer, lahko začnete z idejo o Inclinometru z uporabo ADXL345 in Raspberry Pi. V zgornjem projektu smo uporabili osnovne izračune. Kodo za vrednosti G, kote nagiba (ali nagiba), višino ali potiskanje predmeta glede na težo lahko improvizirate. Nato lahko preverite možnosti napredovanja, kot so koti vrtenja za zvitek (os spredaj-zadaj, X), nagib (stran-na-stran osi, Y) in nagib (navpična os, Z). Ta merilnik pospeška prikazuje 3-D sile G. Tako lahko uporabite ta senzor na različne načine.

Za vaše udobje imamo na YouTubu zanimivo video vajo, ki vam lahko pomaga pri preiskavi. Verjemite, da ta podvig spodbuja nadaljnje raziskovanje. Nadaljujte z razmišljanjem! Ne pozabite iskati, saj se vedno več pojavlja.