Mündəricat:

Python istifadə edərək Raspberry Pi ilə 3 Eksenli Akselerometr, ADXL345: 6 Addım
Python istifadə edərək Raspberry Pi ilə 3 Eksenli Akselerometr, ADXL345: 6 Addım

Video: Python istifadə edərək Raspberry Pi ilə 3 Eksenli Akselerometr, ADXL345: 6 Addım

Video: Python istifadə edərək Raspberry Pi ilə 3 Eksenli Akselerometr, ADXL345: 6 Addım
Video: Raspberry pi nədir? Harada istifadə olunur? Xüsusiyyətləri nədir? Arduinodan fərqi. 2024, Noyabr
Anonim
Python istifadə edərək Raspberry Pi ilə 3 Eksenli Akselerometr, ADXL345
Python istifadə edərək Raspberry Pi ilə 3 Eksenli Akselerometr, ADXL345

Offroader -in uzanacağı nöqtəni yoxlaya biləcək bir cihaz haqqında düşünmək. Çevrilmə ehtimalı olduqda birinin düzəldilməsi xoş olmazmı? Aydındır ki, bəli. Dağlara və müəssisə səfərlərinə çıxmağı sevən insanlar üçün həqiqətən faydalı olardı.

Şübhəsiz ki, qabaqcıl fiqurlu qiymətləndirmənin əsl parlaq dövrü olan IoT qarşımızdadır. Gadget'lar və Proqramlaşdırma həvəskarları olaraq, inanırıq ki, Raspberry Pi, mikro Linux PC, ümumiyyətlə insanların yaradıcılıq qabiliyyətlərini müalicə etdi və özündə yenilikçi metodologiyalar yaratdı. Yaxınlıqda bir Raspberry Pi və 3 oxlu Accelerometrimiz varsa nə edə biləcəyimizi düşünə biləcəyiniz nəticələr nələrdir? Kəşf etməliyik! Bu işdə, Raspberry Pi və 3 oxlu akselerometr olan ADXL345 istifadə edərək X, Y və Z 3 oxda sürətlənməni hiss edəcəyik. Beləliklə, G-Force-un 3 ölçülü sürətlənməsini ölçmək üçün bir çərçivə hazırlamaq üçün bu ekskursiyada müşahidə etməliyik.

Addım 1: Ehtiyac duyduğumuz Əsas Təchizat

Ehtiyac duyduğumuz Əsas Təchizat
Ehtiyac duyduğumuz Əsas Təchizat
Ehtiyac duyduğumuz Əsas Təchizat
Ehtiyac duyduğumuz Əsas Təchizat
Ehtiyac duyduğumuz Əsas Təchizat
Ehtiyac duyduğumuz Əsas Təchizat

Məsələlər bizim üçün daha az idi, çünki işləmək üçün çoxlu şeylər yatırdıq. Buna baxmayaraq, uyğun bir yerdən doğru hissəni mükəmməl vaxtda yığmağın başqalarının nə qədər çətin olduğunu bilirik və bu, hər qəpikdən asılı olmayaraq haqlıdır. Buna görə də bütün bölgələrdə sizə kömək edərdik. Tam bir hissə siyahısı əldə etmək üçün aşağıdakıları oxuyun.

1. Moruq Pi

İlk addım bir Raspberry Pi lövhəsi əldə etmək idi. Bu kiçik, aşağı güclü kompüter, elektronika müəssisələri, Əşyalar İnterneti (IoT), Ağıllı Şəhərlər, Məktəb Təhsili üçün ucuz və ümumiyyətlə sadə bir baza təmin edir.

2. Raspberry Pi üçün I2C Shield

Raspberry Pi -nin həqiqətən itkin olduğu əsas şey I²C portudur. Bunun üçün TOUTPI2 I²C konnektoru, Rasp Pi -dən MULTIPLE I²C cihazları ilə istifadə etmək mənasını verir. DCUBE Mağazasında əldə edilə bilər

3. 3 oxlu akselerometr, ADXL345

Analog Cihazlar tərəfindən istehsal edilən ADXL345, ± 16g-ə qədər yüksək qətnamə 13 bit ölçmə ilə aşağı güclü 3 oxlu akselerometrdir. Bu sensoru DCUBE Mağazasından aldıq

4. Bağlayıcı Kabel

DCUBE Mağazasında əldə edilə bilən I2C birləşdirən kabelimiz var idi

5. Mikro USB kabeli

Ən kiçik çaşqınlıq, amma güc zəruriliyinə qədər ən sərt Raspberry Pi -dir! Raspberry Pi -ni işə salmağın ən asan yolu Micro USB kabelidir.

6. Vebə giriş bir ehtiyacdır

Vebə giriş yerli şəbəkə və internetlə əlaqəli bir Ethernet (LAN) kabeli vasitəsilə gücləndirilə bilər. Digər tərəfdən, konfiqurasiya tələb edəcək USB simsiz açar istifadə edərək simsiz şəbəkə ilə əlaqə qura bilərsiniz.

7. HDMI Kabeli/Uzaqdan Giriş

Gəmidə olan HDMI kabeli ilə onu rəqəmsal TV -yə və ya Monitora bağlaya bilərsiniz. Nağd pula ehtiyac var! Raspberry Pi, SSH və İnternetə giriş kimi fərqli strategiyalardan uzaqdan istifadə edilə bilər. PuTTYopen mənbə proqramından istifadə edə bilərsiniz.

Addım 2: Avadanlıqların birləşdirilməsi

Avadanlıq Bağlanması
Avadanlıq Bağlanması
Avadanlıq Bağlanması
Avadanlıq Bağlanması
Avadanlıq Bağlanması
Avadanlıq Bağlanması
Avadanlıq Bağlanması
Avadanlıq Bağlanması

Sxemə görə dövrə edin. Bir kontur tərtib edin və konfiqurasiyanı qəsdən edin.

Raspberry Pi və I2C Shield bağlantısı

Hər şeydən əvvəl, Raspberry Pi götürün və üzərindəki I2C Shield -ə baxın. Qalxanı Pi -nin GPIO sancaqları üzərində incə bir şəkildə basın və biz bu irəliləyişimizi pasta kimi sadə bir şəkildə başa vurmuşuq (snapa baxın).

Sensor və Raspberry Pi -nin əlaqəsi

Sensoru və onunla birlikdə I2C Kabelini götürün. Bu Kabelin düzgün işləməsi üçün lütfən I2C Çıxışını hər zaman I2C Giriş ilə əlaqələndirin. Eyni şey, üzərinə GPIO pinləri quraşdırılmış I2C qalxanı olan Raspberry Pi üçün də edilməlidir.

I2C kabelinin istifadəsini yazırıq, çünki hətta ən kiçik səhvdən yaranan pinouts, lehimləmə və halsızlığı araşdırmaq tələbini rədd edir. Bu əsas tak ve çalıştır kabeliyle cihazları tanıya, dəyişdirə və ya bir tətbiqə daha çox cihaz əlavə edə bilərsiniz. Bu, işləri çətinləşdirir.

Qeyd: Qəhvəyi tel, bir cihazın çıxışı ilə digər cihazın girişi arasındakı Ground (GND) bağlantısını etibarlı şəkildə izləməlidir

Veb Şəbəkəsi Açardır

Müvəffəqiyyətimizi qazanmaq üçün Raspberry Pi üçün veb bağlantısı lazımdır. Bunun üçün Ethernet (LAN) kabelini ev sistemi ilə əlaqələndirmək kimi alternativləriniz var. Əlavə olaraq, bir seçim olaraq, köməkçi bir marşrut WiFi bağlayıcısından istifadə etməkdir. Bəzən bunun işləməsi üçün bir sürücü tələb olunur. Təsvirdə Linux olana söykənin.

Enerji təchizatı

Micro USB kabelini Raspberry Pi -nin elektrik prizinə qoşun. Yandırın və getməyimiz yaxşıdır.

Ekrana keçid

HDMI kabelini başqa bir ekranla əlaqələndirə bilərik. Bəzi hallarda, bir ekrana keçmədən bir Raspberry Pi əldə etməlisiniz və ya bəzi məlumatları başqa bir yerdən görmək lazım ola bilər. Düşünmək olar ki, bunun üçün yenilikçi və maliyyə cəhətdən ağıllı yanaşmalar mövcuddur. Bunlardan biri SSH (uzaqdan əmr satırına giriş) istifadə etməkdir. Bunun üçün PuTTY proqramından da istifadə edə bilərsiniz.

Addım 3: Raspberry Pi üçün Python Kodlaması

Raspberry Pi üçün Python Kodlaması
Raspberry Pi üçün Python Kodlaması

Raspberry Pi və ADXL345 Sensoru üçün Python Koduna Github Depozitimizdə daxil olmaq mümkündür.

Kodu keçmədən əvvəl, Readme sənədində verilən qaydaları oxuduğunuzdan və Raspberry Pi -ni buna uyğun olaraq qurduğunuzdan əmin olun. Bunu etmək üçün sadəcə bir dəqiqə dayanacaq.

Bir akselerometr, düzgün sürətlənməni ölçən bir cihazdır; düzgün sürətləndirmə koordinat sürətlənməsi ilə eyni deyil (sürət dəyişmə sürəti). Bir və çox oxlu akselerometr modelləri, vektor miqdarı olaraq, uyğun sürətlənmənin böyüklüyünü və istiqamətini müəyyən etmək üçün əlçatandır və oriyentasiya, sürətləndirmə, titrəmə, şok və müqavimətli bir mühitdə düşməni hiss etmək üçün istifadə edilə bilər.

Kod sizdən əvvəl aydındır və təsəvvür edə biləcəyiniz ən sadə quruluşdadır və heç bir probleminiz olmamalıdır.

# Sərbəst iradə lisenziyası ilə paylanmışdır.# İstənilən şəkildə, mənfəət və ya pulsuz olaraq, əlaqəli işlərin lisenziyalarına uyğun olması şərtilə istifadə edin. # ADXL345 # Bu kod, dcubestore.com saytında mövcud olan ADXL345_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -modul/

smbus idxal edin

idxal vaxtı

# I2C avtobusu alın

avtobus = smbus. SMBus (1)

# ADXL345 ünvanı, 0x53 (83)

# Bant genişliyi dərəcəsi qeydini seçin, 0x2C (44) # 0x0A (10) Normal rejim, Çıxış məlumat sürəti = 100 Hz bus.write_byte_data (0x53, 0x2C, 0x0A) # ADXL345 ünvanı, 0x53 (83) # Güc idarəetmə qeydini seçin, 0x2D (45) # 0x08 (08) Avtomatik Yuxu bus.write_byte_data (0x53, 0x2D, 0x08) # ADXL345 ünvanı, 0x53 (83) # Məlumat formatı qeydini seçin, 0x31 (49) # 0x08 (08) Özünü yoxlama deaktivdir, 4 telli interfeys # Tam qətnamə, Aralıq = +/- 2g bus.write_byte_data (0x53, 0x31, 0x08)

vaxt.yuxu (0.5)

# ADXL345 ünvanı, 0x53 (83)

# 0x32 (50), 2 baytdan məlumatları oxuyun # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data (0x53, 0x32) data1 = bus.read_byte_data (0x53, 0x33)

# Məlumatı 10 bitə çevirin

xAccl = ((data1 & 0x03) * 256) + data0 əgər xAccl> 511: xAccl -= 1024

# ADXL345 ünvanı, 0x53 (83)

# 0x34 (52), 2 baytdan məlumatları geri oxuyun # Y-Axis LSB, Y-Axis MSB data0 = bus.read_byte_data (0x53, 0x34) data1 = bus.read_byte_data (0x53, 0x35)

# Məlumatı 10 bitə çevirin

yAccl = ((data1 & 0x03) * 256) + data0 yAccl> 511 olduqda: yAccl -= 1024

# ADXL345 ünvanı, 0x53 (83)

# 0x36 (54), 2 baytdan məlumatları geri oxuyun # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data (0x53, 0x36) data1 = bus.read_byte_data (0x53, 0x37)

# Məlumatı 10 bitə çevirin

zAccl = ((data1 & 0x03) * 256) + data0 zAccl> 511 olduqda: zAccl -= 1024

# Ekrana məlumat çıxarın

çap "X Eksenində Sürətləndirmə: %d" %xAccl çap "Y Eksenində Sürətləndirmə: %d" %yAccl çap "Z Eksenində Sürətləndirmə: %d" %zAccl

Addım 4: Məcəllənin Praktikliyi

Məcəllənin praktikliyi
Məcəllənin praktikliyi

Github -dan kodu yükləyin (və ya git pull) və Raspberry Pi -də açın.

Kodu tərtib etmək və terminala yükləmək üçün əmrləri işlədin və Monitorda çıxışı görün. Bir neçə dəqiqədən sonra parametrlərin hər birini göstərəcək. Hər şeyin asanlıqla işləməsini təmin etdikdən sonra, bu işi daha böyük bir işə götürə bilərsiniz.

Addım 5: Tətbiqlər və Xüsusiyyətlər

ADXL345, kiçik, nazik, ultralow gücü, ± 16 q-a qədər yüksək qətnamə (13-bit) ölçüsü olan 3 oxlu akselerometrdir. ADXL345 Cib Telefonu Tətbiqləri üçün uyğundur. Tilt Algılama Tətbiqlərində Cazibə Statik Sürətləndirməsini və əlavə olaraq Hərəkət və ya Şok səbəbiylə Dinamik Sürətləndirməni ölçür. Digər tətbiqlərə Əllər, Tibbi cihaz, Oyun və İşarə Cihazları, Sənaye Alətləri, Fərdi Naviqasiya Cihazları və Sərt Disk Sürücüsü (HDD) qorunması daxildir.

Addım 6: Nəticə

Ümid edirik ki, bu tapşırıq daha çox sınaqlara səbəb olacaq. Bu I2C sensoru qeyri -adi dərəcədə çevik, ucuz və əlçatandır. Çox böyük ölçüdə qalıcı olmayan bir sistem olduğundan, bu vəzifəni genişləndirmək və hətta yaxşılaşdırmaq üçün maraqlı yollar var.

Məsələn, ADXL345 və Raspberry Pi istifadə edərək bir İnklinometr fikri ilə başlaya bilərsiniz. Yuxarıdakı layihədə əsas hesablamalardan istifadə etdik. Bir cismin cazibə qüvvəsinə görə G dəyərləri, meyl açıları (və ya əyilmələri), yüksəlişi və ya çökəkliyi üçün kodu doğaçlama edə bilərsiniz. Sonra dönmə bucaqları (öndən arxaya ox, X), meydança (yan-yana ox, Y) və yaw (şaquli ox, Z) kimi qabaqcıl seçimləri yoxlaya bilərsiniz. Bu sürətölçən 3-D G-Qüvvələri göstərir. Beləliklə, bu sensordan düşünə biləcəyiniz müxtəlif yollarla istifadə edə bilərsiniz.

Rahatlığınız üçün YouTube -da araşdırmanıza kömək edə biləcək maraqlı bir video təlimat təlimimiz var. Güvən bu təşəbbüsü daha da araşdırmağa sövq edir. Düşünməyə davam edin! Ardıcıl olmağı unutmayın, çünki daha çox şey gələcək.

Tövsiyə: