Talaan ng mga Nilalaman:

3-Axis Accelerometer, ADXL345 Sa Raspberry Pi Paggamit ng Python: 6 Hakbang
3-Axis Accelerometer, ADXL345 Sa Raspberry Pi Paggamit ng Python: 6 Hakbang

Video: 3-Axis Accelerometer, ADXL345 Sa Raspberry Pi Paggamit ng Python: 6 Hakbang

Video: 3-Axis Accelerometer, ADXL345 Sa Raspberry Pi Paggamit ng Python: 6 Hakbang
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Nobyembre
Anonim
3-Axis Accelerometer, ADXL345 Sa Raspberry Pi Gamit ang Python
3-Axis Accelerometer, ADXL345 Sa Raspberry Pi Gamit ang Python

Pag-iisip tungkol sa isang gadget na maaaring suriin ang punto kung saan ang iyong Offroader ay ikiling patungo sa matagal. Hindi ba ito magiging isang kaaya-aya sa kaganapan na ang isang tao ay nababagay kapag may posibilidad na magtipid? Malinaw na oo. Ito ay magiging tunay na kapaki-pakinabang sa mga indibidwal na gustong pumunta sa mga bundok at mga paglalakbay sa enterprise.

Nang walang pag-aalinlangan, isang tunay na napakatalino na panahon ng advanced na pagsusuri ng pag-uunawa, ang IoT ay nasa atin. Bilang mga mahilig sa Gadget at Programming, naniniwala kami, ang Raspberry Pi, ang micro Linux PC ay ginagamot ang mga malikhaing kakayahan ng mga tao sa pangkalahatan, dala nito ang isang pagsabog sa mga makabagong pamamaraan. Kaya ano ang maiisip na mga kinalabasan na kung ano ang maaari nating gawin sakaling magkaroon tayo ng isang Raspberry Pi at isang 3-axis na Accelerometer malapit? Dapat nating tuklasin! Sa gawaing ito, madarama natin ang pagpabilis sa 3 axes, X, Y at Z na gumagamit ng Raspberry Pi at ADXL345, isang 3-axis accelerometer. Kaya dapat nating obserbahan ang pamamasyal na ito upang makagawa ng isang balangkas upang masukat ang 3-dimensional na pagpabilis o G-Force.

Hakbang 1: Pangunahing Kailangan ng Hardware na Kinakailangan namin

Pangunahing Hardware na Kinakailangan Namin
Pangunahing Hardware na Kinakailangan Namin
Pangunahing Hardware na Kinakailangan Namin
Pangunahing Hardware na Kinakailangan Namin
Pangunahing Hardware na Kinakailangan Namin
Pangunahing Hardware na Kinakailangan Namin

Ang mga isyu ay mas mababa para sa amin dahil mayroon kaming isang tonelada ng mga bagay na nakahiga upang gumana. Gayunpaman, alam namin kung paano mahirap para sa iba na tipunin ang tamang bahagi sa perpektong oras mula sa naaangkop na lugar at nabibigyan ng katarungan anuman ang bawat sentimo. Kaya tutulungan ka namin sa lahat ng mga rehiyon. Basahin ang sumusunod upang makakuha ng isang kumpletong listahan ng mga bahagi.

1. Raspberry Pi

Ang paunang hakbang ay ang pagkuha ng isang board na Raspberry Pi. Ang maliit, malakihang kapangyarihan ng computer na ito ay nagbibigay ng isang murang at pangkalahatang simpleng batayan para sa mga pakikipagsapalaran sa electronics, Internet of Things (IoT), Smart Cities, School Education.

2. I2C Shield para sa Raspberry Pi

Ang pangunahing bagay na ang Raspberry Pi ay tunay na nawawala ay isang port ng I²C. Kaya't para doon, bibigyan ka ng konektor ng TOUTPI2 I²C na may katuturan na magamit ang Rasp Pi sa mga Maramihang I²C na aparato. Naa-access ito sa DCUBE Store

3. 3-axis accelerometer, ADXL345

Ginawa ng Mga Analog Device, ang ADXL345, ay isang mababang lakas na 3-axis accelerometer na may mataas na resolusyon na 13-bit na pagsukat hanggang sa ± 16g. Nakuha namin ang sensor na ito mula sa DCUBE Store

4. Pagkonekta ng Cable

Mayroon kaming I2C na kumokonekta na cable na naa-access sa DCUBE Store

5. Micro USB cable

Ang pinakamaliit na nalito, ngunit ang pinaka mahigpit hanggang sa kailangan ng kuryente ay ang Raspberry Pi! Ang pinaka-hirap na diskarte upang mapalakas ang Raspberry Pi ay sa pamamagitan ng Micro USB cable.

6. Kailangan ng Web Access

Ang web access ay maaaring bigyang kapangyarihan sa pamamagitan ng isang Ethernet (LAN) cable na nauugnay sa isang lokal na network at web. Sa kabilang banda, maaari kang maiugnay sa isang wireless network gamit ang isang USB wireless dongle, na mangangailangan ng pagsasaayos.

7. HDMI Cable / Remote Access

Sa board na HDMI, maaari mo itong mai-hook sa isang digital TV o sa isang Monitor. Kailangang magtipid ng cash! Ang Raspberry Pi ay maaaring makuha mula sa malayo sa paggamit ng mga natatanging diskarte tulad ng-SSH at Pag-access sa Web. Maaari mong gamitin ang PuTTYopen source software.

Hakbang 2: Pagkonekta sa Hardware

Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware
Pagkonekta sa Hardware

Lumabas ang circuit alinsunod sa eskematiko na lumitaw. Gumuhit ng isang balangkas at sinasadya pagkatapos ng pagsasaayos.

Koneksyon ng Raspberry Pi at I2C Shield

Higit sa lahat, kunin ang Raspberry Pi at makita ang I2C Shield dito. Pindutin ang Shield nang delikado sa mga GPIO pin ng Pi at natapos na kami sa pag-unlad na ito na kasing simple ng pie (tingnan ang snap).

Koneksyon ng Sensor at Raspberry Pi

Kunin ang sensor at Interface ang I2C Cable kasama nito. Para sa naaangkop na pagpapatakbo ng Cable na ito, mangyaring alalahanin ang I2C Output ALWAYS na nauugnay sa I2C Input. Ang pareho ay dapat na kinuha pagkatapos para sa Raspberry Pi na may kalasag I2C na naka-mount sa ibabaw nito ang mga GPIO pin.

Inireseta namin ang paggamit ng I2C cable dahil tinanggihan nito ang kinakailangan para sa perusing pinout, paghihinang, at karamdaman na sanhi ng kahit na pinakamaliit na pagkakasala. Gamit ang pangunahing plug and play cable na ito, maaari mong ipakilala, palitan ang mga aparato, o magdagdag ng higit pang mga aparato sa isang application nang madali. Ginagawa nitong hindi kumplikado ang mga bagay.

Tandaan: Ang brown wire ay dapat na masaligang sundin ang koneksyon ng Ground (GND) sa pagitan ng output ng isang aparato at ng pag-input ng ibang aparato

Ang Web Network ay Susi

Upang magwagi ang aming pakikipagsapalaran, nangangailangan kami ng isang koneksyon sa web para sa aming Raspberry Pi. Para sa mga ito, mayroon kang mga kahalili tulad ng pag-interfacing ng isang Ethernet (LAN) cable sa home system. Bilang karagdagan, bilang isang pagpipilian, gayunpaman, isang kapaki-pakinabang na ruta ay ang paggamit ng isang konektor sa WiFi. Ang ilan sa mga oras para dito, kailangan mo ng isang driver upang ito ay gumana. Kaya sandalan sa isa na may Linux sa paglalarawan.

Power Supply

I-plug ang Micro USB cable sa power jack ng Raspberry Pi. I-ilaw ito at mabuti kaming pumunta.

Koneksyon sa Screen

Maaari naming maiugnay ang HDMI cable sa isa pang screen. Sa ilang mga kaso, kailangan mong makapunta sa isang Raspberry Pi nang hindi ito pinapasok sa isang screen o maaaring kailanganin mong tingnan ang ilang data mula rito mula sa ibang lugar. Mapagpalagay, may mga makabago at matalino sa pananalapi na mga diskarte sa paggawa ng tulad. Ang isa sa mga ito ay gumagamit - SSH (malayuang pag-login ng command-line). Maaari mo ring magamit ang PuTTY software para doon.

Hakbang 3: Python Coding para sa Raspberry Pi

Python Coding para sa Raspberry Pi
Python Coding para sa Raspberry Pi

Ang Python Code para sa Raspberry Pi at ADXL345 Sensor ay naa-access sa aming Github Repository.

Bago magpatuloy sa code, tiyaking nabasa mo ang mga alituntunin na ibinigay sa Readme na dokumento at I-set up ang iyong Raspberry Pi alinsunod dito. Ito ay simpleng i-pause para sa isang minuto upang gawin tulad ng.

Ang isang accelerometer ay isang aparato na sumusukat sa wastong pagpapabilis; ang tamang pagbilis ay hindi katulad ng coordinate acceleration (rate ng pagbabago ng bilis). Ang mga modelo ng solong- at multi-axis ng accelerometer ay maa-access upang makilala ang lakas at direksyon ng wastong pagpapabilis, bilang isang dami ng vector, at maaaring magamit upang maunawaan ang oryentasyon, i-coordinate ang pagpabilis, panginginig, pagkabigla, at pagbagsak sa isang resistive medium.

Ang code ay malinaw sa harap mo at ito ay sa pinaka prangkang istraktura na maaari mong isipin at dapat kang walang mga isyu.

# Ipinamamahagi ng isang lisensya na may malayang kalooban. # Gamitin ito sa anumang paraan na nais mo, tubo o libre, sa kondisyon na naaangkop ito sa mga lisensya ng mga nauugnay na gawa nito. # ADXL345 # Ang code na ito ay idinisenyo upang gumana kasama ang ADXL345_I2CS I2C Mini Module na magagamit mula sa dcubestore.com -module /

import smbus

oras ng pag-import

# Kumuha ng I2C bus

bus = smbus. SMBus (1)

# ADXL345 address, 0x53 (83)

# Piliin ang rehistro ng rate ng bandwidth, 0x2C (44) # 0x0A (10) Karaniwang mode, rate ng data ng output = 100 Hz bus.write_byte_data (0x53, 0x2C, 0x0A) # ADXL345 address, 0x53 (83) # Piliin ang rehistro ng control ng kuryente, 0x2D (45) # 0x08 (08) I-disable ng Auto Sleep ang bus.write_byte_data (0x53, 0x2D, 0x08) # ADXL345 address, 0x53 (83) # Piliin ang rehistro ng format ng data, 0x31 (49) # 0x08 (08) Hindi pinagana ang self test, 4-wire interface # Buong resolusyon, Saklaw = +/- 2g bus.write_byte_data (0x53, 0x31, 0x08)

oras. pagtulog (0.5)

# ADXL345 address, 0x53 (83)

# Basahin ang data pabalik mula sa 0x32 (50), 2 bytes # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data (0x53, 0x32) data1 = bus.read_byte_data (0x53, 0x33)

# I-convert ang data sa 10-bit

xAccl = (((data1 & 0x03) * 256) + data0 kung xAccl> 511: xAccl - = 1024

# ADXL345 address, 0x53 (83)

# Basahin ang data pabalik mula sa 0x34 (52), 2 bytes # Y-Axis LSB, Y-Axis MSB data0 = bus.read_byte_data (0x53, 0x34) data1 = bus.read_byte_data (0x53, 0x35)

# I-convert ang data sa 10-bit

yAccl = (((data1 & 0x03) * 256) + data0 kung yAccl> 511: yAccl - = 1024

# ADXL345 address, 0x53 (83)

# Basahin ang data mula sa 0x36 (54), 2 bytes # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data (0x53, 0x36) data1 = bus.read_byte_data (0x53, 0x37)

# I-convert ang data sa 10-bit

zAccl = (((data1 & 0x03) * 256) + data0 kung zAccl> 511: zAccl - = 1024

# Data ng output sa screen

i-print ang "Acceleration in X-Axis:% d"% xAccl print "Acceleration in Y-Axis:% d"% yAccl print "Acceleration in Z-Axis:% d"% zAccl

Hakbang 4: Ang Pagsasabuhay ng Code

Ang pagiging praktiko ng Kodigo
Ang pagiging praktiko ng Kodigo

I-download (o git pull) ang code mula sa Github at buksan ito sa Raspberry Pi.

Patakbuhin ang mga utos upang Magtipon at Mag-upload ng code sa terminal at makita ang output sa Monitor. Kasunod sa ilang sandali, ipapakita nito ang bawat isa sa mga parameter. Kasunod sa pagtiyak na gumagana ang lahat madali, maaari mong gawin ang pakikipagsapalaran na ito sa isang mas malaking gawain.

Hakbang 5: Mga Aplikasyon at Tampok

Ang ADXL345 ay isang maliit, manipis, ultralow power, 3-axis accelerometer na may mataas na resolusyon (13-bit) na pagsukat hanggang sa ± 16 g. Ang ADXL345 ay angkop para sa Mga Application ng Cell Phone. Kinakalkula nito ang Static Acceleration ng Gravity sa Mga Ikiling na Pagtuklas ng Mga Aplikasyon at bilang karagdagan Dynamic na Pagpapabilis na paparating tungkol sa dahil sa Motion o Shock. Kasama sa iba pang mga application ang mga kagustuhan ng Handsets, Instrumentasyong medikal, Mga Device sa Paglalaro at Pagturo, Instrumentasyong Pang-industriya, Mga Device sa Personal na Pag-navigate, at Proteksyon ng Hard Disk Drive (HDD).

Hakbang 6: Konklusyon

Inaasahan na ang gawaing ito ay mag-uudyok ng karagdagang pag-eksperimento. Ang I2C sensor na ito ay labis na nababaluktot, mura at naa-access. Dahil ito ay sa isang mahusay na antas na hindi permanenteng sistema, may mga kagiliw-giliw na paraan na maaari mong palawakin ang gawaing ito at pagbutihin ito kahit.

Halimbawa, Maaari kang magsimula sa ideya ng isang Inclinometer gamit ang ADXL345 at Raspberry Pi. Sa proyekto sa itaas, gumamit kami ng mga pangunahing kalkulasyon. Maaari mong pagbutihin ang code para sa mga halaga ng G, mga anggulo ng slope (o ikiling), taas o pagkalumbay ng isang bagay na patungkol sa gravity. Pagkatapos ay maaari mong suriin ang mga advance na pagpipilian tulad ng mga anggulo ng pag-ikot para sa roll (front-to-back axis, X), pitch (side-to-side axis, Y) at yaw (vertikal na axis, Z). Ipinapakita ng accelerometer na ito ang 3-D G-Forces. Kaya maaari mong gamitin ang sensor na ito sa iba't ibang mga paraan na maaari mong isaalang-alang.

Para sa iyong kaginhawaan, mayroon kaming kamangha-manghang ehersisyo sa pagtuturo ng video sa YouTube na maaaring makatulong sa iyong pagsisiyasat. Tiwala ang pakikipagsapalaran na ito ay nag-uudyok sa karagdagang pagsaliksik. Patuloy na pagnilayan! Isaisip na maghanap bilang higit pa ay patuloy na darating.

Inirerekumendang: