Mundarija:

Python yordamida Raspberry Pi bilan 3 o'qli akselerometr, ADXL345: 6 qadam
Python yordamida Raspberry Pi bilan 3 o'qli akselerometr, ADXL345: 6 qadam

Video: Python yordamida Raspberry Pi bilan 3 o'qli akselerometr, ADXL345: 6 qadam

Video: Python yordamida Raspberry Pi bilan 3 o'qli akselerometr, ADXL345: 6 qadam
Video: How to use Raspberry Pi 3 & python 3 with blinking Led 2024, Noyabr
Anonim
Python yordamida Raspberry Pi bilan 3 o'qli akselerometr, ADXL345
Python yordamida Raspberry Pi bilan 3 o'qli akselerometr, ADXL345

Gadjet haqida o'ylab, sizning offroaderingiz qaysi tomonga cho'zilganligini tekshirib ko'rishi mumkin. Agar kimdir ag'darilib ketish ehtimoli bo'lsa, uni tuzatish yoqimli bo'larmidi? Shubhasiz, ha. Bu, albatta, tog'larga chiqishni va korxona safarlarini yaxshi ko'radiganlar uchun foydali bo'ladi.

Shubhasiz, IoT -ni ilg'or baholashning haqiqiy yorqin davri keldi. Gadjetlar va dasturlash ishqibozlari, biz ishonamizki, Raspberry Pi, Linux Linux mikrokompyuteri, umuman olganda, odamlarning ijodiy qobiliyatlarini ko'rib chiqdi va ular bilan innovatsion metodologiyani yaratdi. Xo'sh, yaqin atrofda Raspberry Pi va 3 o'qli akselerometr bo'lsa, nima qilishimiz mumkin? Biz kashf qilishimiz kerak! Bu vazifada biz Raspberry Pi va ADXL345, 3 o'qli akselerometr yordamida 3 o'qda, X, Y va Z tezlanishini sezamiz. Shunday qilib, biz ushbu ekskursiyada 3 o'lchovli tezlashtirishni yoki G-kuchini o'lchash uchun ramka yaratish uchun kuzatishimiz 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
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. Shunday bo'lsa -da, biz bilamizki, to'g'ri joyni to'g'ri vaqtda yig'ish boshqalar uchun qanchalik qiyin va bu har bir tinga qaramasdan oqlanadi. Shunday qilib, biz sizga barcha hududlarda yordam berardik. To'liq qismlar ro'yxatini olish uchun quyidagilarni o'qing.

1. Raspberry Pi

Birinchi qadam Raspberry Pi kartasini sotib olish edi. Bu kichik, kam quvvatli kompyuter elektronika, narsalar Interneti (IoT), aqlli shaharlar, maktab ta'limi uchun arzon va oddiy bazani ta'minlaydi.

2. Raspberry Pi uchun I2C qalqoni

Raspberry Pi chindan ham etishmayotgan asosiy narsa - bu I²C porti. Buning uchun TOUTPI2 I²C ulagichi sizga Rasp Pi -ni MULTIPLE I²C qurilmalaridan foydalanish ma'nosini beradi. Bu DCUBE do'konida mavjud

3. 3 o'qli akselerometr, ADXL345

Analog qurilmalar tomonidan ishlab chiqarilgan ADXL345, past quvvatli 3 o'qli akselerometr bo'lib, yuqori aniqlikdagi 13-bitli o'lchami ± 16g gacha. Biz bu sensorni DCUBE do'konidan sotib oldik

4. Kabelni ulash

Bizda DCUBE do'konida I2C ulanish kabeli bor edi

5. Micro USB kabeli

Eng kichik chalkashlik, lekin kuch -qudratga bo'lgan ehtiyoj - bu Raspberry Pi! Raspberry Pi -ni yoqishning eng oson usuli bu Micro USB kabeli.

6. Internetga kirish - bu ehtiyoj

Internetga kirishni mahalliy tarmoq va tarmoq bilan bog'liq Ethernet (LAN) kabeli orqali kuchaytirish mumkin. Boshqa tomondan, siz USB simsiz tugmachasi yordamida simsiz tarmoq bilan bog'lanishingiz mumkin, bu esa konfiguratsiyani talab qiladi.

7. HDMI kabeli/masofadan kirish

Bortda HDMI kabeli bo'lsa, uni raqamli televizorga yoki monitorga ulashingiz mumkin. Pulni tejash kerak! Raspberry Pi-ni masofadan turib SSH va Internet orqali kirish kabi o'ziga xos strategiyalardan foydalanish mumkin. PuTTYopen manba dasturidan foydalanishingiz mumkin.

2 -qadam: uskunani ulash

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

Ko'rsatilgan sxemaga muvofiq sxemani tuzing. Sxemani tuzing va konfiguratsiyani ataylab oling.

Raspberry Pi va I2C qalqonining ulanishi

Eng muhimi, Raspberry Pi -ni oling va undagi I2C qalqonini toping. Qalqonni GPIO pinlari ustidan sekin 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 belgilaymiz, chunki u hatto eng kichik xatolardan kelib chiqqan pinouts, lehim va buzilishlarni tekshirish talabini rad etadi. Ushbu asosiy kabel va kabel yordamida siz ilovalarni osongina qo'shishingiz, almashtirishingiz yoki boshqa qurilmalarni qo'shishingiz mumkin. Bu narsalarni murakkablashtirmaydi.

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

Veb -tarmoq kalit

Tashabbusni g'alaba qozonish uchun biz Raspberry Pi uchun veb -ulanishni talab qilamiz. Buning uchun sizda Ethernet (LAN) kabelini uy tizimi bilan ulash kabi alternativalar mavjud. Bundan tashqari, variant sifatida, Wi -Fi ulagichidan foydalanish foydali bo'ladi. Vaqti -vaqti bilan siz haydovchidan ishlashini talab qilasiz. Shunday qilib, tasvirlangan Linux bilan ishlang.

Quvvatlantirish manbai

Micro USB kabelini Raspberry Pi quvvat manbaiga ulang. Chiroqni yoqing va biz borishga 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 (buyruq satriga masofadan kirish). 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 ADXL345 sensori uchun Python kodi bizning Github omborida mavjud.

Kodga o'tishdan oldin, Readme hujjatida keltirilgan ko'rsatmalarni o'qiganingizga va Raspberry Pi -ni unga muvofiq sozlaganingizga ishonch hosil qiling. Buni qilish uchun bir daqiqa to'xtab qoladi.

Akselerometr - bu to'g'ri tezlanishni o'lchaydigan qurilma; to'g'ri tezlanish koordinatali tezlanish bilan bir xil emas (tezlikni o'zgartirish tezligi). Akselerometrning bitta va ko'p o'qli modellari vektor miqdori sifatida to'g'ri tezlanishning kattaligi va yo'nalishini aniqlash uchun mavjud bo'lib, uni yo'nalishni aniqlash, tezlashtirish, tebranish, zarba va qarshilik muhitida tushish uchun ishlatish mumkin.

Kod sizning oldingizda aniq va siz tasavvur qila oladigan eng sodda tuzilishda va sizda hech qanday muammo bo'lmasligi kerak.

# Ixtiyoriy litsenziya bilan tarqatilgan.# Istalgan usulda, xoh foyda, xoh tekin, agar u tegishli ish litsenziyalariga mos keladigan bo'lsa, foydalaning. # ADXL345 # Bu kod dcubestore.com saytida mavjud ADXL345_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -modul/

smbus import qilish

import vaqti

# I2C avtobusini oling

avtobus = smbus. SMBus (1)

# ADXL345 manzili, 0x53 (83)

# Tarmoqli o'tkazish tezligi registrini tanlang, 0x2C (44) # 0x0A (10) Oddiy rejim, Chiqish ma'lumoti tezligi = 100 Hz bus.write_byte_data (0x53, 0x2C, 0x0A) # ADXL345 manzili, 0x53 (83) # Quvvatni boshqarish registrini tanlang, 0x2D (45) # 0x08 (08) Avtomatik uyqu o'chirilgan bus.write_byte_data (0x53, 0x2D, 0x08) # ADXL345 manzili, 0x53 (83) # Ma'lumot formatini tanlash registri, 0x31 (49) # 0x08 (08) O'z-o'zini tekshirish o'chirilgan, 4 simli. interfeys # To'liq piksellar sonini, diapazoni = +/- 2g bus.write_byte_data (0x53, 0x31, 0x08)

vaqt uyqu (0,5)

# ADXL345 manzili, 0x53 (83)

# Ma'lumotni 0x32 (50), 2 baytdan o'qing # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data (0x53, 0x32) data1 = bus.read_byte_data (0x53, 0x33)

# Ma'lumotni 10 bitga aylantiring

xAccl = ((ma'lumotlar1 va 0x03) * 256) + ma'lumotlar0 xAccl> 511 bo'lsa: xAccl -= 1024

# ADXL345 manzili, 0x53 (83)

# Ma'lumotlarni 0x34 (52), 2 baytdan o'qing # Y-Axis LSB, Y-Axis MSB ma'lumotlari0 = bus.read_byte_data (0x53, 0x34) ma'lumotlar1 = bus.read_byte_data (0x53, 0x35)

# Ma'lumotni 10 bitga aylantiring

yAccl = ((data1 & 0x03) * 256) + data0 agar yAccl> 511 bo'lsa: yAccl -= 1024

# ADXL345 manzili, 0x53 (83)

# Ma'lumotni 0x36 (54), 2 baytdan o'qing # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data (0x53, 0x36) data1 = bus.read_byte_data (0x53, 0x37)

# Ma'lumotni 10 bitga aylantiring

zAccl = ((data1 & 0x03) * 256) + data0 agar zAccl> 511 bo'lsa: zAccl -= 1024

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

Terminalda kodni kompilyatsiya qilish va yuklash buyruqlarini bajaring va monitorda chiqishni ko'ring. Bir necha daqiqadan so'ng, u har bir parametrni ko'rsatadi. Hamma narsa oson ishlashini ta'minlaganingizdan so'ng, siz bu ishni katta vazifaga topshirishingiz mumkin.

5 -qadam: Ilovalar va xususiyatlar

ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13 bitli) ± 16 g gacha. ADXL345 uyali telefon ilovalari uchun javob beradi. Nishabni aniqlaydigan ilovalarda tortishishning statik tezlashishi va harakat yoki zarba tufayli yaqinlashib kelayotgan dinamik tezlashuvni aniqlaydi. Boshqa ilovalarga telefonlar, tibbiy asboblar, o'yin va ishora asboblari, sanoat asboblari, shaxsiy navigatsiya qurilmalari va qattiq diskni himoya qilish kiradi.

6 -qadam: Xulosa

Umid qilamanki, bu vazifa keyingi tajribalarga turtki bo'ladi. Bu I2C sensori juda moslashuvchan, arzon va qulay. Bu juda katta darajadagi doimiy tizim bo'lgani uchun, bu vazifani kengaytirish va hatto yaxshilashning qiziqarli usullari mavjud.

Masalan, siz ADXL345 va Raspberry Pi yordamida inklinometr g'oyasidan boshlashingiz mumkin. Yuqoridagi loyihada biz asosiy hisob -kitoblardan foydalanganmiz. Siz G-qiymatlari, qiyalik (yoki egilish) burchaklari, ob'ektning tortishish kuchi bo'yicha ko'tarilishi yoki tushishi uchun kodni improvizatsiya qilishingiz mumkin. Keyin oldinga siljish (old-orqa o'q, X), qadam (yonma-yon o'q, Y) va yaw (vertikal o'q, Z) uchun burilish burchaklari kabi oldindan variantlarni tekshirishingiz mumkin. Bu akselerometr 3 o'lchamli G kuchlarini ko'rsatadi. Shunday qilib, siz ushbu sensordan har xil usulda foydalanishingiz mumkin.

Sizning qulayligingiz uchun bizda YouTube -da sizning tergovingizga yordam beradigan qiziqarli video -ko'rsatma mashqlari mavjud. Ishonch, bu tashabbus kelgusi kashfiyotlarga turtki beradi. Fikrlashda davom eting! Qidirishni unutmang, chunki yana ko'p narsalar doimiy ravishda keladi.

Tavsiya: