Mundarija:
- 1 -qadam: Bizga kerak bo'lgan asosiy uskunalar
- 2 -qadam: uskunani ulash
- 3 -qadam: Raspberry Pi uchun Python kodlash
- 4 -qadam: Kodeksning amaliyligi
- 5 -qadam: Ilovalar va xususiyatlar
- 6 -qadam: Xulosa
Video: Python yordamida Raspberry Pi bilan 3 o'qli akselerometr, ADXL345: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
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
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
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 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
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:
Raspberry Pi - ADXL345 3 o'qli akselerometr Python qo'llanmasi: 4 qadam
Raspberry Pi-ADXL345 3 o'qli akselerometr Python qo'llanmasi: ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13 bitli) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2 C raqamli interfeysi orqali kirish mumkin. O'lchovlar
Raspberry Pi - ADXL345 3 o'qli akselerometr Java darsligi: 4 qadam
Raspberry Pi-ADXL345 3 o'qli akselerometr Java qo'llanmasi: ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13 bitli) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2 C raqamli interfeysi orqali kirish mumkin. O'lchovlar
Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: 4 qadam
Raspberry Pi MMA8452Q 3-o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: MMA8452Q-bu 12 bitli aniqlikdagi aqlli, kam quvvatli, uch o'qli, sig'imli, mikromashinli akselerometr. Foydalanuvchilar tomonidan dasturlashtiriladigan moslashuvchan variantlar akselerometrga o'rnatilgan ikkita funktsiya yordamida ta'minlanadi, ular ikkita uzilishga o'rnatiladi
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: Go'zallik bizni o'rab oladi, lekin odatda biz buni bilish uchun bog'da yurishimiz kerak. - Biz o'qimishli guruh sifatida biz energiyamizning katta qismini kompyuter va mobil telefonlarimizdan oldin sarflaymiz. Shuning uchun, biz tez -tez o'z sog'ligimizga ruxsat beramiz
Pi bo'yicha dastlabki* SPI: Raspberry Pi yordamida SPI 3 o'qli akselerometr bilan aloqa: 10 qadam
Pi bo'yicha dastlabki* SPI: Raspberry Pi yordamida SPI 3 o'qli akselerometr bilan aloqa: Raspbianni sozlash va bcm2835 SPI kutubxonasi yordamida SPI qurilmasi bilan muloqot qilish bo'yicha bosqichma-bosqich ko'rsatma (bit urilmagan!) Bu hali juda oldindan … Men jismoniy bog'lanishning yaxshiroq rasmlarini qo'shishim va ba'zi noqulay kodlar ustida ishlashim kerak