Mundarija:

Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: 6 qadam
Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: 6 qadam

Video: Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: 6 qadam

Video: Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: 6 qadam
Video: 1 daqiqada Python dasturlash tili yordamida Spotify Logosini chizish 2024, Noyabr
Anonim
Image
Image

Men qoqilmadim, tortish kuchini sinab ko'rdim. Hali ham ishlaydi…

Tezlashib borayotgan kosmik kemaning tasviri shuni ko'rsatdiki, tortishish vaqtining kengayishi tufayli, eng yuqori nuqtadagi soat tayanchga qaraganda tezroq bo'ladi. Ba'zilar, bortda tezlikni ko'tarish ikkala soatda ham bir xil bo'ladi, deb ta'kidlashdi, shuning uchun ular bir xil tezlikda harakat qilishlari kerak edi. Bir oz o'ylab ko'ring.

Fikrlar, motivatsiya va hatto yo'l-yo'riq har qanday joydan kelib chiqishi mumkin, lekin agar siz innovatsiyaga e'tibor qaratgan bo'lsangiz, u o'z fikrini shu joyga jamlagan odamlardan oladi. Raspberry Pi, bitta kompyuterli Linux shaxsiy kompyuterlari, yagona tashabbuslar va elektronika ishlab chiqarishni tashkil qilish, dasturlash va maslahatlar beradi. Raspberry Pi va qurilmalar bo'yicha qo'llanmalar ishlab chiqaruvchisi bo'lgandan so'ng, biz kompyuter fanlari va elektronika bilan dasturlash, o'ylash va hayratlanarli narsalarni yaratish imkoniyatidan foydalanamiz. Kechqurun biz akselerometr yordamida vazifani bajarishdan xursand bo'ldik va bu gadjet bilan nima qilish mumkinligi haqidagi fikrlar juda zo'r. Python yordamida Raspberry Pi yordamida 3 o'lchovli, X, Y va Z tezlikni o'lchash uchun 3 o'qli Raqamli akselerometr sensori MMA7455-ni o'z ichiga olamiz.

1 -qadam: Biz talab qiladigan apparat

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

Qaysi qismlarni olish kerakligini, qayerdan ajratish kerakligini va hamma narsaning narxi qancha bo'lishini bilmay turib, urinish va olib ketish qanchalik qiyinligini bilamiz. Shunday qilib, biz siz uchun hamma narsani qildik. Agar siz barcha qismlarni kvadratga aylantirsangiz, bu vazifani tezda bajarishingiz kerak bo'ladi. To'liq qismlar ro'yxatini olish uchun ketgandan keyin oling.

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. U DCUBE do'konida mavjud

3. 3 o'qli akselerometr, MMA7455

Freescale Semiconductor, Inc. tomonidan ishlab chiqarilgan MMA7455 3 o'qli raqamli akselerometr past quvvatli, X, Y va Z o'qlari bo'ylab tezlikni o'lchash uchun mos keladigan kichik o'lchamli ishlov berilgan sensor. Biz bu sensorni DCUBE do'konidan oldik

4. Kabelni ulash

Biz I2C ulanish kabeliniDCUBE Store -dan sotib oldik

5. Micro USB kabeli

Eng kichik chalkashlik, lekin kuch -qudratga bo'lgan ehtiyoj - bu Raspberry Pi! Strategiyani boshqarishda eng ko'p talab qilinadigan va talab qilinmaydigan yondashuv Micro USB kabelidan foydalanishdir. Eng ilg'or va maxsus yo'l - bu GPIO yoki USB portlari orqali quvvat berish.

6. Tarmoqni qo'llab -quvvatlash

Ethernet (LAN) kabeli bilan bog'langan Raspberry Pi -ni oling va uni uy tarmog'iga 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 mavjud, uni siz HDMI kabeli yordamida ekranga yoki televizorga ulashingiz mumkin. Tanlovli, siz Raspberry Pi -ni Linux kompyuteridan yoki Mac -dan terminaldan o'rnatish uchun SSH -dan foydalanishingiz mumkin. Xuddi shunday PuTTY bepul va ochiq manbali terminal emulyatori aqlli fikrga o'xshaydi.

2 -qadam: uskunani ulash

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

Sxemada ko'rsatilgandek, sxemani bajaring. Sxemada siz turli xil elektron komponentlarning ulanishlarini, ulash simlarini, quvvat kabellarini va I2C sensorini ko'rasiz.

Raspberry Pi va I2C qalqoni ulanishi

Eng muhimi, Raspberry Pi -ni oling va I2C qalqonini aniqlang. Qalqonni Pi GPIO pinlari ustiga yaxshilab bosing va biz bu jarayonni pirog kabi oson tugatamiz (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 tavsiya etamiz, chunki u pinoutlarni kesish, mahkamlash va bezovtalikni eng kamsituvchi tartibsizliklar bilan bajarishni talab qilmaydi. 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.

Eslatma: Jigarrang sim bir qurilmaning chiqishi va boshqa qurilmaning kirishi orasidagi Ground (GND) ulanishidan keyin ishonchli tarzda olinishi kerak

Internetga kirish - bu kalit

Bizning harakatlarimiz g'alaba qozonishi uchun biz Raspberry Pi uchun Internetga ulanishni talab qilamiz. Buning uchun sizda Ethernet (LAN) uy tarmog'iga ulanish kabi alternativalar mavjud. Shu bilan bir qatorda, qoniqarli kurs - WiFi USB ulagichidan foydalanish. Umuman olganda, buni amalga oshirish uchun haydovchidan talab qilinadi. Shunday qilib, linux bilan Linux -ga o'ting.

Quvvatlantirish manbai

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

Ekranga ulanish

HDMI kabelini boshqa monitor/televizorga 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 (buyruq satriga masofadan kirish) dan foydalanadi. Buning uchun PuTTY dasturidan ham foydalanishingiz mumkin.

3 -qadam: Raspberry Pi uchun Python kodlash

Raspberry Pi uchun Python kodlash
Raspberry Pi uchun Python kodlash

Bizning GithubRepository -da Raspberry Pi va MMA7455 sensori uchun Python kodini ko'rishingiz mumkin.

Kodni davom ettirishdan oldin, Readme yilnomasida keltirilgan standartlarni o'qishingizga kafolat bering va Raspberry Pi -ni u ko'rsatganidek o'rnating. Hozirgi sharoitni hisobga olsak, bu bir daqiqaga osonlashadi.

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. # MMA7455L # Ushbu kod dcubestore.com saytida mavjud bo'lgan MMA7455L_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan # https://dcubestore.com/product/mma7455l-3-axis-low-g-digital-output-accelerometer-i%C2 %B2c-mini-modul/

smbus import qilish

import vaqti

# I2C avtobusini oling

avtobus = smbus. SMBus (1)

# MMA7455L manzili, 0x1D (16)

# Tanlash rejimini boshqarish registri, 0x16 (22) # 0x01 (01) O'lchov rejimi, +/- 8g bus.write_byte_data (0x1D, 0x16, 0x01)

vaqt uyqu (0,5)

# MMA7455L manzili, 0x1D (16)

# Ma'lumotlarni 0x00 (00), 6 baytdan o'qing # X-Axis LSB, X-Axis MSB, Y-Axis LSB, Y-Axis MSB, Z-Axis LSB, Z-Axis MSB data = bus.read_i2c_block_data (0x1D, 0x00, 6)

# Ma'lumotni 10 bitga aylantiring

xAccl = (ma'lumotlar [1] & 0x03) * 256 + ma'lumotlar [0] agar xAccl> 511 bo'lsa: xAccl -= 1024 yAccl = (ma'lumotlar [3] & 0x03) * 256 + ma'lumotlar [2] agar yAccl> 511: yAccl - = 1024 zAccl = (ma'lumotlar [5] va 0x03) * 256 + ma'lumotlar [4] agar zAccl> 511: 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.

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 narsaning oson ishlashini ta'minlaganingizdan so'ng, siz har kuni bu sayohatni ishlatishingiz yoki bu yurishni ancha muhim vazifaning bir qismiga aylantirishingiz mumkin. Sizning ehtiyojlaringiz nima bo'lishidan qat'i nazar, yig'ilishda sizda yana bir ziddiyat bor.

5 -qadam: Ilovalar va xususiyatlar

Sensorli ma'lumotlarni o'zgartirish, mahsulot yo'nalishi va imo-ishoralarni aniqlash uchun Freescale Semiconductor kompaniyasi tomonidan ishlab chiqarilgan MMA7455, past quvvatli yuqori quvvatli 3 o'qli raqamli akselerometrdan foydalanish mumkin. Bu uyali telefon/PMP/PDA: yo'nalishni aniqlash (portret/landshaft), tasvir barqarorligi, matnni aylantirish, harakatni terish, ovozini o'chirish, noutbuk: o'g'irlikka qarshi, o'yin: harakatni aniqlash, avtomatik uyg'onish/kabi ilovalar uchun juda mos keladi. Kam quvvat iste'moli va raqamli harakatsiz kamera uchun uyqu: tasvir barqarorligi.

6 -qadam: Xulosa

Agar siz Raspberry Pi va I2C datchiklari olamini kashf qilishni o'ylayotgan bo'lsangiz, o'zingizni ijodiy bo'lishga harakat qilayotganingizda apparat asoslari, kodlash, tartibga solish, obro'li va hokazolardan foydalanib o'zingizni hayratda qoldirishingiz mumkin. kichik shovqin, u hech qachon tashqi manbalarga o'tishni buzmaydi. Bu usulda bir nechta oddiy vazifalar bo'lishi mumkin, ba'zilari sizni sinab ko'rishlari mumkin. Qanday bo'lmasin, siz o'zingizning shaklingizni o'zgartirib, yo'l qo'yib, uni beg'ubor qilishingiz mumkin.

Masalan, siz Gravimetr prototipi haqidagi fikrni Python yordamida MMA7455 va Raspberry Pi yordamida Yerning mahalliy tortishish maydonini o'lchashdan boshlashingiz mumkin. Yuqoridagi korxonada biz asosiy hisoblardan foydalanganmiz. Dizaynning asosiy printsipi - Yerning tortishish kuchi 1 g bo'lgan juda kichik kasrli o'zgarishlarni o'lchash. Shunday qilib, siz ushbu sensordan har xil usulda foydalanishingiz mumkin. Algoritm gravitatsiya tensorini keltirib chiqaradigan vertikal tortish vektorining har uch perpendikulyar yo'nalishdagi o'zgarish tezligini o'lchashdan iborat. Buni tortishish qiymatini kichik vertikal masofa bilan ajratilgan ikki nuqtada, l va bu masofaga bo'lish orqali farqlash mumkin. Biz shovqin va tebranishlarni tahlil qilish uchun konfiguratsiya, kod va modellashtirish ishlarini tezroq bajarishga harakat qilamiz. Ishonamizki, barchangizga yoqadi!

Sizni tasalli berish uchun bizda YouTub -da sizni tekshirishga yordam beradigan sehrli video bor. Ishoning, bu harakat keyingi tergovga yordam beradi. Agar imkoniyat taqillatmasa, eshik yarating.

Tavsiya: