Talaan ng mga Nilalaman:

Motion Control Sa Raspberry Pi at LIS3DHTR, 3-Axis Accelerometer, Paggamit ng Python: 6 Hakbang
Motion Control Sa Raspberry Pi at LIS3DHTR, 3-Axis Accelerometer, Paggamit ng Python: 6 Hakbang

Video: Motion Control Sa Raspberry Pi at LIS3DHTR, 3-Axis Accelerometer, Paggamit ng Python: 6 Hakbang

Video: Motion Control Sa Raspberry Pi at LIS3DHTR, 3-Axis Accelerometer, Paggamit ng Python: 6 Hakbang
Video: How does an Accelerometer work? | 3D Animation 2024, Hulyo
Anonim
Image
Image
Pangunahing Hardware na Kinakailangan Namin
Pangunahing Hardware na Kinakailangan Namin

Napapaligiran tayo ng kagandahan, ngunit kadalasan, kailangan nating maglakad sa isang hardin upang malaman ito. - Rumi

Tulad ng pangkat na pinag-aralan na kami ay naroroon, namumuhunan kami ng karamihan sa aming lakas na nagtatrabaho bago ang aming mga PC at cell phone. Samakatuwid, madalas naming hinayaan ang aming kabutihan na kumuha ng pangalawang silid, hindi kailanman tunay na nakakahanap ng isang perpektong pagkakataon na pumunta sa gym o isang fitness class at bilang isang panuntunan sa pagpili ng mabilis na pagkain sa higit na maraming mga kapaki-pakinabang na pagpipilian. Ang nakapagpapalakas na balita ay kung ang kailangan mo lang ay ilang tulong sa pag-iingat ng record o upang masubaybayan ang iyong pagsulong, maaari mong magamit ang makabagong ideya ngayon sa paggawa ng ilang gadget upang matulungan ang iyong sarili.

Mabilis na umuunlad ang teknolohiya. Pare-pareho, nahuhuli namin ang ilang bagong pagbabago na magbabago sa mundo at sa paraan ng pag-aaral natin dito. Kapag ikaw ay nasa mga PC, pag-coding, at mga robot o nais lamang na mag-tinker, mayroong isang tech na pagpapala doon. Ang Raspberry Pi, ang micro, solong board Linux computer, ay nakatuon sa pagpapabuti ng paraan ng iyong pagkatuto sa makabagong teknolohiya ngunit ang susi din sa pagpapabuti ng pag-aaral ng edukasyon sa buong mundo. Kaya ano ang mga posibleng resulta na kung ano ang maaari nating gawin kung mayroon tayong malapit na Raspberry Pi at isang 3-axis na Accelerometer? Paano natin nahanap ito! Sa gawaing ito, susuriin namin ang pagpabilis sa 3 patas na mga axes, X, Y at Z na gumagamit ng Raspberry Pi at LIS3DHTR, isang 3-axis accelerometer. Kaya dapat nating makita sa paglalakbay na ito upang lumikha ng isang sistema upang suriin ang 3-dimensional na pagpapabilis 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

Ang mga isyu ay mas mababa para sa amin dahil mayroon kaming isang malaking halaga ng mga bagay-bagay na namamalagi upang gumana mula sa. Sa anumang kaso, alam namin kung paano mahirap para sa iba na tipunin ang tamang bahagi sa hindi malinis na oras mula sa kapaki-pakinabang na lugar at ipinagtatanggol ang pagbibigay ng kaunting pansin sa bawat sentimo. Kaya tutulungan ka namin. Sundin ang kasamang 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 Raspberry Pi ay isang solong-board Linux based PC. Ang maliit na PC na ito ay naglalagay ng isang suntok sa lakas ng computing, ginamit bilang isang bahagi ng mga aktibidad ng gadget, at prangka na pagpapatakbo tulad ng mga spreadsheet, paghahanda ng salita, pag-scan sa web at email, at mga laro.

2. I2C Shield para sa Raspberry Pi

Ang pangunahing pag-aalala na ang Raspberry Pi ay tunay na wala ay isang port ng I²C. Kaya't para doon, bibigyan ka ng konektor ng TOUTPI2 I²C na may katuturan na gamitin ang Rasp Pi sa ANUMANG mga aparato na I²C. Magagamit ito sa DCUBE Store

3. 3-axis accelerometer, LIS3DHTR

Ang LIS3DH ay isang ultra mababang lakas na mataas na pagganap ng tatlong mga axes linear accelerometer na kabilang sa pamilyang "nano", na may digital I2C / SPI serial interface na karaniwang output. Nakuha namin ang sensor na ito mula sa DCUBE Store

4. Pagkonekta ng Cable

Nakuha namin ang I2C Connecting cable mula saDCUBE Store

5. Micro USB cable

Ang pinakamaliit na natataranta, subalit ang pinaka mahigpit sa lawak na kailangan ng lakas ay ang Raspberry Pi! Ang pinakamadaling paraan upang makitungo ay sa pamamagitan ng paggamit ng Micro USB cable.

6. Kailangan ng Web Access

Mga batang INTERNET HINDI natutulog

Kunin ang iyong Raspberry Pi na nauugnay sa isang Ethernet (LAN) cable at ikonekta ito sa iyong network router. Elective, maghanap para sa isang konektor sa WiFi at gamitin ang isa sa mga USB port upang makapunta sa remote system. Ito ay isang masigasig na desisyon, simple, maliit at hindi masarap!

7. HDMI Cable / Remote Access

Ang Raspberry Pi ay may isang HDMI port kung saan maaari mong partikular na kumonekta sa isang screen o TV na may isang HDMI cable. Elective, maaari mong gamitin ang SSH upang maiugnay sa iyong Raspberry Pi mula sa isang Linux PC o Macintosh mula sa terminal. Gayundin, ang PuTTY, isang libre at bukas na mapagkukunan na emulator ng terminal ay parang isang disenteng kahalili.

Hakbang 2: 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 diagram at eksaktong gawin ang balangkas. Ang imahinasyon ay mas mahalaga kaysa sa Kaalaman.

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.

Sinusuportahan namin ang paggamit ng I2C cable dahil tinanggihan nito ang pangangailangan para sa pagsusuri ng mga pinout, pangkabit, at kakulangan sa ginhawa na dinala ng kahit na ang pinakamaliit na tornilyo. Gamit ang pangunahing pagkakabit at play cable, maaari mong ipakita, palitan ang mga gadget, o magdagdag ng higit pang mga gadget sa isang application nang epektibo. Pinapadali nito ang timbang ng trabaho hanggang sa isang makabuluhang antas.

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 pagsisikap, nangangailangan kami ng isang samahan sa Internet para sa aming Raspberry Pi. Para sa mga ito, mayroon kang mga pagpipilian tulad ng pag-interfacing ng isang Ethernet (LAN) cable na sumali sa home network. Bukod dito, bilang isang kahalili, maging na maaaring, isang kotseng tumatanggap ay ang paggamit ng isang konektor ng WiFi USB. Bilang panuntunan para dito, kailangan mo ng isang driver upang ito ay gumana. Kaya kumiling patungo sa isa sa Linux sa paglalarawan.

Power Supply

I-plug ang Micro USB cable sa power jack ng Raspberry Pi. Punch up at handa na kami.

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 ang paggamit ng -SSH (malayuang pag-login ng command-line). Maaari mo ring magamit ang PUTTY software para doon. Ito ay para sa mga advanced na gumagamit. Kaya't ang mga detalye ay hindi kasama dito.

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 LIS3DHTR Sensor ay naa-access sa aming GithubRepository.

Bago magpatuloy sa code, tiyaking nabasa mo ang mga panuntunang ibinigay sa Readme archive at I-set up ang iyong Raspberry Pi alinsunod dito. Magpapahinga lamang ito sandali upang gawin ang lahat ng bagay na isinasaalang-alang.

Ang isang accelerometer ay isang electromekanical na gadget na susukat sa mga puwersa ng pagpabilis. Ang mga kapangyarihan na ito ay maaaring static, katulad ng patuloy na lakas ng gravity na paghila sa iyong mga paa, o maaari silang mabago - dala ng paglipat o pag-vibrate ng accelerometer.

Ang kasama ay ang code ng sawa at maaari mong i-clone at ayusin ang code sa anumang paraan na gusto mong puntahan.

# 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. # LIS3DHTR # Ang code na ito ay dinisenyo upang gumana sa LIS3DHTR_I2CS I2C Mini Module na magagamit mula sa dcubestore.com # https://dcubestore.com/product/lis3dhtr-3-axis-accelerometer-digital-output-motion-sensor-i%C2 % B2c-mini-module /

import smbus

oras ng pag-import

# Kumuha ng I2C bus

bus = smbus. SMBus (1)

# LIS3DHTR address, 0x18 (24)

# Piliin ang control register1, 0x20 (32) # 0x27 (39) Mode na ON ON, Pagpipili ng rate ng data = 10 Hz # X, Y, Z-Axis pinagana ang bus.write_byte_data (0x18, 0x20, 0x27) # LIS3DHTR address, 0x18 (24) # Piliin ang control register4, 0x23 (35) # 0x00 (00) Patuloy na pag-update, Seleksyon ng buong sukat = +/- 2G bus.write_byte_data (0x18, 0x23, 0x00)

oras. pagtulog (0.5)

# LIS3DHTR address, 0x18 (24)

# Basahin ang data pabalik mula sa 0x28 (40), 2 bytes # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data (0x18, 0x28) data1 = bus.read_byte_data (0x18, 0x29)

# I-convert ang data

xAccl = data1 * 256 + data0 kung xAccl> 32767: xAccl - = 65536

# LIS3DHTR address, 0x18 (24)

# Basahin ang data pabalik mula sa 0x2A (42), 2 bytes # Y-Axis LSB, Y-Axis MSB data0 = bus.read_byte_data (0x18, 0x2A) data1 = bus.read_byte_data (0x18, 0x2B)

# I-convert ang data

yAccl = data1 * 256 + data0 kung yAccl> 32767: yAccl - = 65536

# LIS3DHTR address, 0x18 (24)

# Basahin ang data pabalik mula sa 0x2C (44), 2 bytes # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data (0x18, 0x2C) data1 = bus.read_byte_data (0x18, 0x2D)

# I-convert ang data

zAccl = data1 * 256 + data0 kung zAccl> 32767: zAccl - = 65536

# 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 Kakayahang Gumawa ng Code

Ang Kakayahang Gumawa ng Code
Ang Kakayahang Gumawa ng Code

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 ani sa Screen. Pagkuha ng ilang minuto, ipapakita nito ang bawat isa sa mga parameter. Dahil dito sa paggarantiya na ang lahat ay gumagana nang walang kahirap-hirap, maaari mong gawin ito maglakas-loob sa isang mas kapansin-pansin na gawain.

Hakbang 5: Mga Aplikasyon at Tampok

Ginawa ng STMicroelectronics, ang LIS3DHTR ay maaaring mapili ng buong kaliskis ng gumagamit na ± 2g / ± 4g / ± 8g / ± 16g at may kakayahang sukatin ang mga acceleration sa mga rate ng output ng output mula 1Hz hanggang 5kHz. Ang LIS3DHTR ay angkop para sa pag-andar ng Motion activated at Free-Fall Detection. Kinakalkula nito ang Static Acceleration of Gravity sa Mga Ikiling na Pagtuklas ng Mga Aplikasyon, at bilang karagdagan ang paparating na Dynamic na Pagpapabilis dahil sa Motion o Shock. Ang iba pang mga application ay may kasamang mga kagustuhan ng Pagkilala sa Pag-click / Dobleng Pag-click, Pag-save ng Matalinong Lakas Para sa Mga Handheld Device, Pedometer, orientation ng Display, Gaming And Virtual Reality Input Devices, Impact Recognition And Logging And Vibration Monitoring And Compensation.

Hakbang 6: Konklusyon

Tiwala sa pagsasagawa na ito ay sumusulong sa karagdagang pag-eksperimento. Ang I2C sensor na ito ay phenomenally adaptable, mahinhin at magagamit. Dahil ito ay isang kahanga-hangang balangkas na hindi permanenteng balangkas, may mga kagiliw-giliw na paraan na maaari mong mapalawak ang takdang-aralin na ito at mapahusay ito kahit.

Halimbawa, Maaari kang magsimula sa ideya ng isang Pedometer gamit ang LIS3DHTR at Raspberry Pi. Sa gawain sa itaas, gumamit kami ng mga pangunahing pagkalkula. Ang pagpabilis ay maaaring maging may-katuturang parameter upang pag-aralan ang naghaharing paglalakad. Maaari mong suriin ang tatlong mga bahagi ng paggalaw para sa isang indibidwal na pasulong (roll, X), gilid (pitch, Y) at patayo (yaw axis, Z). Ang isang tipikal na pattern ng lahat ng 3 axes ay naitala. Hindi bababa sa 1 axis ang magkakaroon ng kamag-anak malalaking mga pana-panahong halaga ng pagpapabilis. Kaya't ang rurok na direksyon at isang algorithm ay mahalaga. Kinukuha ang mga hakbang sa Parameter (Digital Filter, Peak Detection, Time Window, atbp.) Ng algorithm na ito, makikilala at mabibilang ang mga hakbang, pati na rin ang sukatin ang distansya, bilis, at-sa isang lawak na nasunog na calorie. Kaya maaari mong gamitin ang sensor na ito sa iba't ibang mga paraan na maaari mong isaalang-alang. Tiwala kaming lahat sa iyo tulad nito! Susubukan naming gumawa ng isang gumaganang pag-rendition ng pedometer na ito nang mas maaga kaysa sa paglaon, ang pagsasaayos, ang code, ang bahagi na pagkalkula ng mga paraan upang paghiwalayin ang paglalakad at pagtakbo at ang Calories ay nasunog.

Para sa iyong aliw, mayroon kaming nakakaintriga na video sa YouTube na maaaring makatulong sa iyong pagsusuri. Tiwala ang pakikipagsapalaran na ito ay nag-uudyok sa karagdagang pagsaliksik. Magpatuloy sa pag-mull! Tandaan na hanapin pagkatapos ng higit pa ay patuloy na lumalabas.

Inirerekumendang: