Mundarija:

Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: 6 qadam
Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: 6 qadam

Video: Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: 6 qadam

Video: Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: 6 qadam
Video: PiicoDev 3-Axis Accelerometer LIS3DH | Guide for Raspberry Pi 2024, Noyabr
Anonim
Image
Image
Bizga kerak bo'lgan asosiy uskunalar
Bizga kerak bo'lgan asosiy uskunalar

Go'zallik bizni o'rab oladi, lekin odatda biz buni bilish uchun bog'da sayr qilishimiz kerak. - Rumiy

Biz bilimli guruh sifatida biz energiyamizning katta qismini kompyuter va mobil telefonlarimizdan oldin sarflaymiz. Shunday qilib, biz tez -tez o'z farovonligimizni ikkinchi darajali dam olish xonasiga qo'yib beramiz, lekin hech qachon sport zaliga yoki fitnes mashg'ulotlariga borish uchun ideal imkoniyatni topa olmaymiz va odatda ko'proq foydali tanlovlardan ko'ra tez tayyorlanadigan taomlarni tanlaymiz. Sizni yangiliklarni yuritishda sizga yordam kerakmi yoki sizning yutuqlaringizni kuzatib borish kerakmi, siz bugungi yangilikdan foydalanib, o'zingizga yordam beradigan gadjet ishlab chiqarishingiz mumkin.

Texnologiya tez rivojlanmoqda. Doimiy ravishda, biz dunyoni va undan o'rganish usulini o'zgartiradigan yangi yangiliklarni eslaymiz. Agar siz shaxsiy kompyuterlar, kodlash va robotlar bilan shug'ullanayotganingizda yoki o'ylashni yaxshi ko'rsangiz, u erda texnologiya barakasi bor. Raspberry Pi, bitta, bitta kompyuterli Linux Linux kompyuteri, siz innovatsion texnologiyalar yordamida o'qish uslubingizni yaxshilashga bag'ishlangan, ammo butun dunyo bo'ylab ta'limni yaxshilashning kalitidir. Xo'sh, yonimizda Raspberry Pi va 3 o'qli akselerometr bo'lsa nima qilishimiz mumkin bo'lgan natijalar qanday? Buni qanday topsak bo'ladi! Bu vazifada biz 3 o'qli akselerometr yordamida Raspberry Pi va LIS3DHTR yordamida 3 perpendikulyar o'q, X, Y va Z tezlanishini tekshiramiz. Shunday qilib, biz ushbu sayohatda 3 o'lchovli tezlanish yoki G-Forceni tekshirish tizimini yaratishimiz kerak.

1 -qadam: Bizga kerak bo'lgan asosiy uskunalar

Bizga kerak bo'lgan asosiy uskunalar
Bizga kerak bo'lgan asosiy uskunalar
Bizga kerak bo'lgan asosiy uskunalar
Bizga kerak bo'lgan asosiy uskunalar

Muammolar biz uchun kamroq edi, chunki bizda ishlash uchun juda ko'p narsalar bor. Qanday bo'lmasin, biz bilamizki, yordam berish joyidan to'g'ri vaqtni to'g'ri yig'ish boshqalar uchun qanchalik qiyin va biz har bir tinga unchalik ahamiyat bermaymiz. Shunday qilib, biz sizga yordam berardik. To'liq qismlar ro'yxatini olish uchun unga amal qiling.

1. Raspberry Pi

Birinchi qadam Raspberry Pi taxtasini olish edi. Raspberry Pi-bu Linux asosidagi bitta taxtali kompyuter. Bu kichik kompyuter gadjetlar faoliyatining bir qismi sifatida ishlatiladigan hisoblash quvvatiga va elektron jadvallar, so'zlarni tayyorlash, veb -skanerlash, elektron pochta va o'yinlar kabi oddiy operatsiyalarga ega.

2. Raspberry Pi uchun I2C qalqoni

Raspberry Pi haqiqatan ham yo'q bo'lgan asosiy muammo - bu I²C porti. Buning uchun TOUTPI2 I²C ulagichi sizga Rasp Pi -ni har qanday I²C qurilmasi bilan ishlatish ma'nosini beradi. U DCUBE do'konida mavjud

3. 3 o'qli akselerometr, LIS3DHTR

LIS3DH-bu "nano" oilasiga mansub, uch o'qli, past quvvatli, yuqori quvvatli, raqamli I2C/SPI ketma-ket interfeysli standart chiqish. Biz bu sensorni DCUBE do'konidan sotib oldik

4. Kabelni ulash

Biz I2C ulanish kabeliniDCUBE Store -dan sotib oldik

5. Micro USB kabeli

Eng kichik hayratda qolgan, lekin kuchga bo'lgan ehtiyoj eng qattiq - bu Raspberry Pi! Eng oson yo'li - Micro USB kabelidan foydalanish.

6. Internetga kirish - bu ehtiyoj

Internetdagi bolalar hech qachon uxlamaydilar

Ethernet (LAN) kabeli bilan bog'langan Raspberry Pi -ni oling va uni tarmoq routeriga ulang. Tanlangan, Wi -Fi ulagichini qidiring va USB portlaridan birini ishlatib masofaviy tizimga kiring. Bu keskin, oddiy, kichkina va nopok qaror!

7. HDMI kabeli/masofadan kirish

Raspberry Pi -ning HDMI porti bor, uni maxsus HDMI kabeli yordamida ekranga yoki televizorga ulash mumkin. Tanlovli, siz Raspberry Pi bilan Linux kompyuteridan yoki terminaldan Macintosh bilan bog'lanish uchun SSH -dan foydalanishingiz mumkin. Xuddi shunday PuTTY, bepul va ochiq manbali terminal emulyatori munosib alternativa kabi ko'rinadi.

2 -qadam: uskunani ulash

Uskunani ulash
Uskunani ulash
Uskunani ulash
Uskunani ulash
Uskunani ulash
Uskunani ulash

Ko'rsatilgan sxemaga muvofiq sxemani tuzing. Diagramma tuzing va aniq rejadan so'ng oling. Tasavvur bilimdan ko'ra muhimroqdir.

Raspberry Pi va I2C qalqonining ulanishi

Eng muhimi, Raspberry Pi -ni oling va undagi I2C qalqonini toping. Qalqonni GPIO pinlari ustidan nozik bosing va biz pirog kabi oddiy jarayonni tugatdik (rasmga qarang).

Sensor va Raspberry Pi ulanishi

Sensorni va I2C kabelining interfeysini oling. Ushbu kabelning to'g'ri ishlashi uchun har doim I2C chiqishi bilan bog'liq bo'lgan I2C chiqishini eslang. GPU pinlari o'rnatilgan I2C qalqoni bo'lgan Raspberry Pi uchun ham xuddi shunday qilish kerak.

Biz I2C kabelidan foydalanishni ma'qul ko'ramiz, chunki u eng kichik vintlar yordamida olib borilgan pinout, mahkamlash va noqulaylikni tekshirish zarurligini inkor etadi. Ushbu asosiy biriktiruvchi va o'ynash kabeli yordamida siz gadjetlarni samarali taqdim etishingiz, almashtirishingiz yoki qo'shimcha gadjetlarni samarali qo'shishingiz mumkin. Bu ish og'irligini sezilarli darajada osonlashtiradi.

Eslatma: Jigarrang sim bir qurilmaning chiqishi va boshqa qurilmaning kirishi o'rtasidagi Ground (GND) ulanishini ishonchli kuzatishi kerak

Veb -tarmoq kalit

Bizning harakatlarimiz g'alaba qozonishi uchun biz Raspberry Pi uchun Internet assotsiatsiyasini talab qilamiz. Buning uchun sizda Ethernet (LAN) kabelini uy tarmog'iga ulash kabi tanlovlar mavjud. Shu bilan bir qatorda, Wi -Fi USB ulagichidan foydalanish qulay bo'lishi mumkin. Qoida tariqasida, haydovchining ishlashini talab qiladi. Shunday qilib, tavsifda Linux -ga ega bo'ling.

Quvvatlantirish manbai

Micro USB kabelini Raspberry Pi quvvat manbaiga ulang. Yoping va biz tayyormiz.

Ekranga ulanish

Biz HDMI kabelini boshqa ekran bilan bog'lashimiz mumkin. Ba'zi hollarda, siz Raspberry Pi -ga ekranga ulanmasdan kirishingiz kerak yoki undan ba'zi ma'lumotlarni boshqa joydan ko'rishingiz kerak bo'ladi. Buni amalga oshirish uchun innovatsion va moliyaviy jihatdan oqilona yondashuvlar mavjud. Ulardan biri -SSH (masofadan buyruq qatoriga kirish) dan foydalanish. Buning uchun siz PUTTY dasturidan ham foydalanishingiz mumkin. Bu ilg'or foydalanuvchilar uchun. Shuning uchun tafsilotlar bu erga kiritilmagan.

3 -qadam: Raspberry Pi uchun Python kodlash

Raspberry Pi uchun Python kodlash
Raspberry Pi uchun Python kodlash

Raspberry Pi va LIS3DHTR sensori uchun Python kodi bizning GithubRepository -da mavjud.

Kodga o'tishdan oldin, Readme arxivida berilgan qoidalarni o'qiganingizga va Raspberry Pi -ni unga muvofiq sozlaganingizga ishonch hosil qiling. O'ylangan hamma narsani qilish uchun bir lahza tanaffus qilinadi.

Akselerometr - bu elektromekanik gadjet bo'lib, u tezlashuv kuchlarini o'lchaydi. Bu kuchlar statik bo'lishi mumkin, xuddi doimiy tortishish kuchi oyog'ingizga o'xshaydi yoki akselerometrni harakatga keltirish yoki tebranish orqali o'zgarishi mumkin.

Python kodi hamrohlik qiladi va siz xohlagan tarzda kodni klonlashingiz va sozlashingiz mumkin.

# Ixtiyoriy litsenziya bilan tarqatilgan.# Istalgan usulda, xoh foyda, xoh tekin, agar u tegishli ish litsenziyalariga mos keladigan bo'lsa, foydalaning. # LIS3DHTR # Bu kod dcubestore.com saytida mavjud LIS3DHTR_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan # https://dcubestore.com/product/lis3dhtr-3-axis-accelerometer-digital-output-motion-sensor-i%C2 %B2c-mini-moduli/

smbus import qilish

import vaqti

# I2C avtobusini oling

avtobus = smbus. SMBus (1)

# LIS3DHTR manzili, 0x18 (24)

# Boshqarish registrini tanlang1, 0x20 (32) # 0x27 (39) Quvvatni yoqish rejimi, Ma'lumot uzatish tezligini tanlash = 10 Hz # X, Y, Z o'qi yoqilgan bus.write_byte_data (0x18, 0x20, 0x27) # LIS3DHTR manzili, 0x18 (24) # Boshqarish registrini tanlang4, 0x23 (35) # 0x00 (00) Uzluksiz yangilanish, To'liq o'lchovli tanlov = +/- 2G bus.write_byte_data (0x18, 0x23, 0x00)

vaqt uyqu (0,5)

# LIS3DHTR manzili, 0x18 (24)

# Ma'lumotni 0x28 (40), 2 baytdan o'qing # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data (0x18, 0x28) data1 = bus.read_byte_data (0x18, 0x29)

# Ma'lumotni aylantirish

xAccl = ma'lumotlar1 * 256 + ma'lumotlar0 agar xAccl> 32767 bo'lsa: xAccl -= 65536

# LIS3DHTR manzili, 0x18 (24)

# Ma'lumotni 0x2A (42), 2 baytdan o'qing # Y-Axis LSB, Y-Axis MSB data0 = bus.read_byte_data (0x18, 0x2A) data1 = bus.read_byte_data (0x18, 0x2B)

# Ma'lumotni aylantirish

yAccl = ma'lumotlar1 * 256 + ma'lumotlar0 agar yAccl> 32767 bo'lsa: yAccl -= 65536

# LIS3DHTR manzili, 0x18 (24)

# Ma'lumotni 0x2C (44), 2 baytdan o'qing # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data (0x18, 0x2C) data1 = bus.read_byte_data (0x18, 0x2D)

# Ma'lumotni aylantirish

zAccl = ma'lumotlar1 * 256 + ma'lumotlar0 agar zAccl> 32767 bo'lsa: zAccl -= 65536

# Ma'lumotlarni ekranga chiqarish

chop etish "X o'qida tezlashtirish: %d" %xAccl print "Y o'qida tezlashtirish: %d" %yAccl print "Z o'qida tezlashtirish: %d" %zAccl

4 -qadam: Kodning ishlashi

Kodeksning ishlash qobiliyati
Kodeksning ishlash qobiliyati

Github -dan kodni yuklab oling (yoki git pull) va uni Raspberry Pi -da oching.

Kodni kompilyatsiya qilish va terminalga yuklash buyruqlarini bajaring va ekrandagi hosilni ko'ring. Bir necha daqiqadan so'ng, u har bir parametrni ko'rsatadi. Hamma narsa muammosiz ishlashini kafolatlaganingiz uchun, siz bu jasoratni yanada diqqatga sazovor ishga olib borishingiz mumkin.

5 -qadam: Ilovalar va xususiyatlar

STMicroelectronics tomonidan ishlab chiqarilgan LIS3DHTR, foydalanuvchi tomonidan ± 2g/± 4g/± 8g/± 16g dinamik ravishda tanlanadigan to'liq o'lchovlarga ega va 1 Gts dan 5 kHz gacha bo'lgan chiqish tezligi tezligini o'lchashga qodir. LIS3DHTR Motion faollashtirilgan funktsiyalari va Free-Fall Detection uchun mos keladi. Nishabni aniqlaydigan ilovalarda tortishishning statik tezlashishi, shuningdek, harakat yoki zarba tufayli yaqinlashib kelayotgan dinamik tezlashuvni aniqlaydi. Boshqa ilovalar orasida "Click/Double Click Recognition", "Qo'l qurilmalari uchun aqlli quvvat tejash", "Pedometr", "displey" yo'nalishi, "o'yin" va "virtual haqiqat" kiritish qurilmalari, ta'sirlarni aniqlash va jurnalga yozish, tebranish monitoringi va kompensatsiya kabi usullar kiradi.

6 -qadam: Xulosa

Ishoning, bu harakat keyingi tajribalarga turtki beradi. Bu I2C sensori juda moslashuvchan, oddiy va mavjud. Bu ajoyib darajadagi doimiy ramka bo'lgani uchun, bu vazifani kengaytirish va hatto yaxshilashning qiziqarli usullari mavjud.

Masalan, siz LIS3DHTR va Raspberry Pi yordamida Pedometr g'oyasidan boshlashingiz mumkin. Yuqoridagi vazifada biz asosiy hisoblardan foydalandik. Yurish qarorini tahlil qilish uchun tezlashtirish tegishli parametr bo'lishi mumkin. Siz harakatning uchta komponentini oldinga (yuvarlanma, X), yon tomonga (pitch, Y) va vertikal (yaw o'qi, Z) tekshirishingiz mumkin. Barcha 3 o'qning odatiy namunasi yozilgan. Kamida 1 eksa nisbatan katta davriy tezlanish qiymatiga ega bo'ladi. Shunday qilib, eng yuqori yo'nalish va algoritm muhim ahamiyatga ega. Ushbu algoritmning parametr parametrlarini (raqamli filtr, tepalikni aniqlash, vaqt oynasi va boshqalar) hisobga olgan holda siz qadamlarni taniy olasiz va hisoblay olasiz, shuningdek, masofani, tezlikni va yoqilgan kaloriyalarni o'lchashingiz mumkin. Shunday qilib, siz ushbu sensordan har xil usulda foydalanishingiz mumkin. Barchangizga yoqadi deb ishonamiz! Biz tezda bu pedometrning ishlashini bajarishga harakat qilamiz, konfiguratsiya, kod, yurish va yugurishni ajratish vositalarini hisoblaydigan qism va yoqilgan kaloriyalar.

Sizga tasalli berish uchun bizda YouTube -da sizni tekshirishga yordam beradigan qiziqarli video bor. Ishonch, bu tashabbus kelgusi kashfiyotlarga turtki beradi. O'ylashni davom ettiring! Qidirishni unutmang, chunki yana ko'p narsalar doimiy ravishda keladi.

Tavsiya: