Mundarija:

Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: 6 qadam
Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: 6 qadam

Video: Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: 6 qadam

Video: Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: 6 qadam
Video: #2 Telefonni har doim ovozni zapis qilib olish 2020 2024, Iyul
Anonim
Image
Image

Menimcha, tezlashuv cheklangan, menimcha, ba'zi fizika qonunlariga ko'ra.- Terri Rayli

Gepard ta'qib qilishda hayratlanarli tezlashuv va tezlikdagi o'zgarishlardan foydalanadi. Eng tez qirg'oqqa chiqadigan jonivor, o'ljani tutish uchun tezligidan foydalanadi. Bu tezlikni 100 metrga yugurish paytida Useyn Boltdan besh barobar ko'proq kuch ishlatish orqali tezlashtirish mumkin.

Hozirgi vaqtda odamlar o'zlarining mavjudligini yangiliksiz tasavvur qila olmaydilar. Atrofimizdagi turli xil yangiliklar odamlarga o'zlarining isrofgarchiliklari bilan davom etishlariga yordam beradi. Raspberry Pi, bitta, bitta kompyuterli Linux kompyuter, elektronika ishi va IoT, aqlli shaharlar va maktab ta'limi kabi zamonaviy yutuqlar uchun arzon va hurmatli bazani beradi. Kompyuter va gadjetlar ishqibozlari sifatida biz Raspberry Pi bilan jiddiy chora ko'rdik va o'z manfaatlarimizni aralashtirishni tanladik. Xo'sh, yonimizda Raspberry Pi va 3 o'qli akselerometr bo'lsa nima qilishimiz mumkin bo'lgan natijalar qanday? Bu vazifada biz Python yordamida Raspberry Pi yordamida 3 yo'nalishda, X, Y va Z tezlanishlarni o'lchash uchun raqamli 3 o'qli MEMS chiziqli akselerometr sensori AIS328DQTRni o'z ichiga olamiz. Buni ko'rib chiqishga arziydi.

1 -qadam: Biz talab qiladigan apparat

Biz talab qiladigan apparat
Biz talab qiladigan apparat
Biz talab qiladigan apparat
Biz talab qiladigan apparat

Muammolar biz uchun kamroq edi, chunki bizda ishlash uchun juda ko'p narsalar bor. Qanday bo'lmasin, biz bilamizki, to'g'ri joyni kuchli joydan olib tashlash boshqalar uchun juda qiyin va bu har bir tinga kam e'tibor beradi. Shunday qilib, biz sizga yordam berardik.

1. Raspberry Pi

Birinchi qadam Raspberry Pi taxtasini olish edi. Raspberry Pi - bu Linux asosidagi shaxsiy kompyuter. Bu kichkina kompyuterda elektronika mashqlari sifatida ishlatiladigan ro'yxatga olish kuchi va elektron jadvallar, so'zlarni qayta ishlash, veb -bemaqsad, elektron pochta va o'yinlar kabi kompyuter operatsiyalari mavjud. Siz har qanday elektronika yoki sevimli mashg'ulot do'konida sotib olishingiz mumkin.

2. Raspberry Pi uchun I2C qalqoni

Raspberry Pi aslida yo'q bo'lgan asosiy muammo - bu I2C porti. Buning uchun TOUTPI2 I2C ulagichi sizga Raspberry Pi -ni istalgan I2C qurilmasi bilan ishlatish ma'nosini beradi. UDCUBE do'konida mavjud

3. 3 o'qli akselerometr, AIS328DQTR

STMicroelectronics harakat sensorlariga tegishli AIS328DQTR-bu SPI standartli raqamli ketma-ket interfeysli o'ta past quvvatli, 3 o'qli chiziqli akselerometr. Biz bu sensorni DCUBE do'konidan sotib oldik

4. Kabelni ulash

Biz DCUBE do'konidan I2C ulanish kabelini sotib oldik

5. Micro USB kabeli

Eng kambag'al, lekin kuch -quvvatga bo'lgan ehtiyoj eng qattiq - bu Raspberry Pi! O'yin rejasini hal qilishning eng oddiy usuli - bu Micro USB kabelidan foydalanish. GPIO pinlari yoki USB portlari ham xuddi shunday quvvat manbai sifatida ishlatilishi mumkin.

6. Internetga kirish - bu ehtiyoj

Ethernet (LAN) kabeli bilan bog'langan Raspberry Pi -ni oling va uni tarmoqqa ulang. Boshqa tomondan, Wi -Fi ulagichini qidiring va masofaviy tarmoqqa ulanish uchun USB portlaridan birini ishlating. Bu keskin, asosiy, kichik va sodda qaror!

7. HDMI kabeli/masofadan kirish

Raspberry Pi -ning HDMI porti bor, uni HDMI kabeli yordamida monitor yoki televizorga ulash mumkin. Tanlovli, siz Raspberry Pi -ni Linux kompyuteridan yoki Macintosh -dan terminaldan olib chiqish uchun SSH -dan foydalanishingiz mumkin. Bundan tashqari, PuTTY, bepul va ochiq manbali terminal emulyatori unchalik yomon tanlov emas.

2 -qadam: uskunani ulash

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

Sxemada ko'rsatilgandek, sxemani bajaring. Grafikda siz turli qismlar, quvvat bo'laklari va I2C sensorini ko'rasiz.

Raspberry Pi va I2C qalqoni ulanishi

Eng muhimi, Raspberry Pi -ni oling va undagi I2C qalqonini toping. Qalqonni Pi GPIO pinlari ustidan ehtiyotkorlik bilan bosing va biz bu qadamni pirogdek sodda qilib qo'ydik (rasmga qarang).

Raspberry Pi va sensor aloqasi

Sensorni oling va u bilan I2C kabelini ulang. Ushbu kabelning to'g'ri ishlashi uchun I2C chiqishi har doim I2C chiqishini ko'rib chiqing. GPIO pinlariga o'rnatilgan I2C qalqoni bo'lgan Raspberry Pi uchun ham xuddi shunday qilish kerak.

Biz I2C kabelidan foydalanishni rag'batlantiramiz, chunki u pinoutlarni kesish, mahkamlash va bezovtalikni eng oddiy tartibsizliklar bilan hal qilish talabini rad etadi. Ushbu ulanish va o'ynash kabeli yordamida siz mos keladigan ilovaga qarama -qarshilik ko'rsatishingiz, almashtirishingiz yoki boshqa gadjetlarni qo'shishingiz mumkin. Bu ish og'irligini juda yuqori darajada qo'llab -quvvatlaydi.

E'tibor bering: jigarrang sim bir qurilmaning chiqishi va boshqa qurilmaning kirishi o'rtasidagi Ground (GND) ulanishini ishonchli kuzatishi kerak

Veb -tarmoq kalit

Bizning urinishimiz g'alaba qozonishi uchun biz Raspberry Pi uchun Internetga ulanishni talab qilamiz. Buning uchun sizda Ethernet (LAN) uy tarmog'iga ulanish kabi variantlar mavjud. Bundan tashqari, variant sifatida Wi -Fi USB ulagichidan foydalanish yoqimli bo'ladi. Umuman olganda, buning uchun haydovchining ishlashi talab qilinadi. Shunday qilib, tasvirlangan Linux bilan ishlang.

Quvvatlantirish manbai

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

Ekranga ulanish

HDMI kabelini boshqa monitorga ulashimiz mumkin. Ba'zan, siz Raspberry Pi -ga ekranga ulanmasdan kirishingiz kerak yoki undan boshqa joydan ma'lumotlarni ko'rishingiz kerak bo'ladi. Ehtimol, hamma narsani o'ylab topishning ijodiy va moliyaviy jihatdan aqlli usullari mavjud. Ulardan biri - SSH (masofadan buyruq qatoriga kirish) dan foydalanmoqda. Buning uchun PuTTY dasturidan ham foydalanishingiz mumkin.

3 -qadam: Raspberry Pi uchun Python kodlash

Raspberry Pi uchun Python kodlash
Raspberry Pi uchun Python kodlash

Raspberry Pi va AIS328DQTR sensori uchun Python kodini bizning Github omboridan ko'rishingiz mumkin.

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.

Bu python kodidir va siz kodni xohlagan tarzda klonlashingiz va o'zgartirishingiz mumkin.

# Ixtiyoriy litsenziya bilan tarqatilgan.# Istalgan usulda, xoh foyda, xoh tekin, agar u tegishli ish litsenziyalariga mos keladigan bo'lsa, foydalaning. # AIS328DQTR # Bu kod dcubestore.com saytida mavjud bo'lgan AIS328DQTR_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan # https://dcubestore.com/product/ais328dqtr-high-performance-ultra-low-power-3-axis-accelerometer-with -avtomobil ilovalari uchun raqamli chiqish-i%C2%B2c-mini-moduli/

smbus import qilish

import vaqti

# I2C avtobusini oling

avtobus = smbus. SMBus (1)

# AIS328DQTR manzili, 0x18 (24)

# Boshqarish registrini tanlang1, 0x20 (32) # 0x27 (39) Quvvatni yoqish rejimi, Ma'lumot uzatish tezligini tanlash = 50Hz # X, Y, Z o'qi bilan yoqilgan bus.write_byte_data (0x18, 0x20, 0x27) # AIS328DQTR manzili, 0x18 (24) # Boshqarish registrini tanlang4, 0x23 (35) # 0x30 (48) Uzluksiz yangilanish, To'liq o'lchovli tanlash = +/- 8G bus.write_byte_data (0x18, 0x23, 0x30)

vaqt uyqu (0,5)

# AIS328DQTR 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

# AIS328DQTR 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

# AIS328DQTR 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: Kodeksning amaliyligi

Kodeksning amaliyligi
Kodeksning amaliyligi

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 kafolatlaganingizdan so'ng, siz har kuni ushbu tashabbusdan foydalanishingiz yoki bu ishni katta vazifaning bir qismiga aylantirishingiz mumkin. Sizning ehtiyojlaringiz nima bo'lishidan qat'i nazar, sizning yig'ilishingizda yana bir ziddiyat bor.

5 -qadam: Ilovalar va xususiyatlar

STMicroelectronics tomonidan ishlab chiqarilgan, ultra ixcham, past quvvatli, yuqori quvvatli, 3 eksa chiziqli akselerometr, harakat sezgichlariga tegishli. AIS328DQTR Telematika va Qora qutilar, Dash-da avtomobil navigatsiyasi, Nishab / moyilligini o'lchash, O'g'rilikka qarshi qurilma, Quvvatni tejash, Ta'sirni aniqlash va yozish, Vibratsiyali monitoring va Kompensatsiya va Harakatni faollashtirish funktsiyalari uchun mos keladi.

6 -qadam: Xulosa

Agar siz Raspberry Pi va I2C datchiklari olamini kashf etishni o'ylayotgan bo'lsangiz, demak, siz apparat asoslaridan, kodlashdan, tartibga solishdan, obro'li va hokazolardan foydalangan holda o'zingizni hayratda qoldirishingiz mumkin. Oddiy bo'lishi mumkin, ba'zilar sizni sinab ko'rishlari mumkin. Qanday bo'lmasin, siz o'zingizning shaklingizni o'zgartirib, yo'l qo'yib, uni beg'ubor qilishingiz mumkin.

Misol uchun, siz Python yordamida AIS328DQTR va Raspberry Pi yordamida hayvonlarning jismoniy harakatlari va tana holatini kuzatish va tasvirlash uchun Behavior Tracker prototipini o'ylashdan boshlashingiz mumkin. Yuqoridagi vazifada biz akselerometrning asosiy hisob -kitoblaridan foydalandik. Protokol har qanday girometr va GPS bilan birga akselerometr tizimini va hayvonlarning xatti -harakatlarini avtomatlashtirilgan identifikatsiyalash uchun boshqariladigan (mashina) o'rganish algoritmini (qo'llab -quvvatlash vektorli mashinasi (SVM)) yaratishdir. Bu parallel sensor o'lchovlarini yig'ish va qo'llab -quvvatlash vektorli mashinasi (SVM) tasnifi yordamida o'lchovlarni baholash bilan yakunlanishi kerak. Prototipning mustahkamligini aniqlash uchun mashq qilish va tekshirish uchun mustaqil o'lchovlarning turli kombinatsiyalaridan (o'tirish, yurish yoki yugurish) foydalaning. Biz tezroq bu prototipning ishlashini amalga oshirishga harakat qilamiz, konfiguratsiya, kod va modellashtirish ko'proq xatti -harakatlar uchun ishlaydi. Ishonamizki, barchangizga yoqadi!

Sizning qulayligingiz uchun YouTube -da sizni tekshirishingizga yordam beradigan ajoyib video bor. Ishoning, bu harakat keyingi izlanishlarga turtki bo'ladi. Siz turgan joydan boshlang. Sizda bor narsadan foydalaning. Qo'lingizdan kelganini qiling.

Tavsiya: