Mündəricat:
- Addım 1: Shield/çörək taxtası qurun
- Addım 2: Arduino proqramlaşdırın
- Addım 3: Android Tətbiqini Google Play -dən yükləyin və ya GitHub -ı filial edin
- Addım 4: Arduino -ya Maraqlı bir şeyə qoşulun (R/C avtomobili istifadə etdim)
- Addım 5: Arduinoya qoşulmaq üçün Android Cihazından istifadə edin
- Addım 6: Məlumat Alın və Planlaşdırın
- Addım 7: Əlavə İstifadə üçün Python (və ya Digər Platforma) daxil edin
Video: Arduino və Android ilə Real vaxt MPU-6050/A0 Məlumat Girişi: 7 Addım (Şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Arduino -nu maşın öyrənmək üçün istifadə etməklə maraqlandım. İlk addım olaraq, bir Android cihazı ilə real vaxt (və ya ona çox yaxın) məlumat ekranı və qeyd cihazı qurmaq istəyirəm. MPU-6050-dən akselerometr məlumatlarını çəkmək istəyirəm, buna görə də HC-05-ni 115200 baudda istifadə etmək üçün dizayn etdim. Bu konfiqurasiya ilə saniyədə 250 nümunədə 4 məlumat kanalı ötürülə bilər.
Quruluşun bir neçə mərhələsi var:
- Qalxan və ya çörək taxtası düzəldin
- Arduino proqramlaşdırın
- Android tətbiqini Google Play -dən yükləyin və ya GitHub -ı filial edin və özünüz tərtib edin
- MPU-6050-ni titrəyən maraqlı bir şeyə bağlayın (R/C avtomobili istifadə etdim)
- Arduino -ya qoşulmaq üçün Android cihazından istifadə edin
- Verilənləri qeyd edin, maraqlanırsınızsa qeyd edin
- Əlavə istifadə üçün Python'a (və ya digər platformaya) idxal edin
Gəlin başlayaq!
Addım 1: Shield/çörək taxtası qurun
Bu, Arduino, HC-05 və MPU-6050 üçün əlaqə sxemidir. MPU-6050-yə əlavə olaraq, ADC-nin işlədiyini göstərmək üçün işıq sensoru ilə əlaqəli A0 analog girişi var. İstənilən 0-5 voltluq siqnal A0 ADC-ə daxil edilə bilər. Qurmaq üçün istifadə etdiyim komponentlər bunlardır:
- Arduino Uno
- HC-05 (HC-06 da işləməlidir, amma mənim quruluşum HC-05 idi)
- MPU-6050
- Sparkfun fotorezistoru
- 10kOhm müqavimət (qəhvəyi-qara-narıncı)
Əksər HC-05 Bluetooth modulları 9600 baud olaraq təyin olunur. Məlumatların uğurla ötürülməsi üçün onu 115200 baud dərəcəsi ilə yenidən proqramlaşdırmalısınız. Bunu necə edəcəyinizi izah edən yaxşı bir HC-05/HC-06 AT Command Instructable var.
Addım 2: Arduino proqramlaşdırın
Arduino proqramlaşdırmaq üçün Arduino IDE 1.6.7 buraxılışından istifadə etdim. Kodu bu addımdakı bağlantılardan və ya GitHub depodan yükləyə bilərsiniz. Üç versiyanı daxil etdim: Firmware125.ino 125 hertz, Firmware250.ino 250 hertz və Firmware500.ino 500 hertz versiyasıdır. Arduino -nun 500 hertz -də dövr etməsini təmin etmək üçün A0 ADC toplanmır.
Firmware, vaxtını yoxlamaq üçün istifadə etdiyim Pin 9 -da bir saatdan ibarətdir. İz, dövrənin 4 ms olduğunu göstərir (1/250 hertzə bərabərdir). Araşdırdım ki, serial bağlantısı ilə bağlı problemlər yaranarsa, vaxt birmənalı olmayacaq.
Arduino kodu, hər paketə bir kanal nömrəsi əlavə etmək üçün bit maskalamadan istifadə edir, çünki nümunələr bəzən Bluetooth üzərindən düşür. Kanal nömrəsini saxlamaq üçün ən əhəmiyyətli üç bitdən istifadə edirəm. İmzalı tam ədədlər üçün ən əhəmiyyətli bit (MSB) işarə üçün ayrılmışdır. MSB -ni tam ədədin işarəsi deyil, ünvanım üçün istifadə etmək istədiyim üçün, imzalanmış sürətləndirici dəyərlərin hamısını işarəsiz tam ədədlərə çevirmək məcburiyyətindəyəm. Bunu hər bir dəyərə 32768 əlavə edərək (MPU akselerometrinin ADC sayıları +32768 -dən -32768 -ə qədərdir) və imzasız tam ədədlər olaraq tökürəm:
(imzasız int) ((uzun) iAccelData+32767);
Kanal nömrələri hər bir akselerometr və A0 portu üçün eynidir, belə ki, kanal nömrələri sıradan çıxdıqda düşmüş bir paket aşkar edilə bilər. Arduino üzərindəki Bluetooth-dan gələn paketlər üçün ikili nümunə belədir (işarələr bir qədər dəyişkəndir):
(xacc 3 ünvan biti = 0x00, 13 bit imzasız) (yacc 3 ünvan biti = 0x01, 13 bit işarəsiz) (zacc 3 ünvan biti = 0x02, 13 bit imzasız) (3 ünvan biti = 0x03, iadc13bit işarəsiz)
(xacc 3 ünvan biti = 0x00, 13 bit işarəsiz) (yacc 3 ünvan biti = 0x01, 13 bit işarəsiz) (zacc 3 ünvan biti = 0x02, 13 bit işarəsiz) (3 ünvan biti = 0x03, iadc13bit işarəsiz) (xacc 3 ünvan biti = 0x00, 13 bit imzasız) (yacc 3 ünvan biti = 0x01, 13 bit imzasız) (zacc 3 ünvan biti = 0x02, 13 bit imzasız) (3 ünvan biti = 0x03, iadc13bit işarəsiz) …
Bluetooth məlumatlarını oxumaq üçün Accel Plot Android tətbiqindən başqa bir şey istifadə edirsinizsə, ünvanı çıxarmaq üçün addımlar bunlardır (GitHub repodan Accel Plot Bluetooth.java faylından dəyişən adlardan istifadə edirəm):
- 16 imzasız intdə oxuyun
- Yüksək baytı çıxarın və btHigh -a qeyd edin.
- Aşağı baytı çıxarın və btLow -a qeyd edin.
- (btHigh >> 5) & 0x07 istifadə edərək ünvanı btHigh -dan əldə edin. Bu ifadə btHigh 5 biti üç ünvanın bitini ən aşağı üç reyestrə keçirərək sağa keçir. & İşarəsi məntiqi VƏ 4 və daha yüksək bitləri sıfıra, son üç biti də ünvan bitlərinə uyğunlaşdırmağa məcbur edir. Bu ifadənin nəticəsi ünvanınızdır.
Accel Plot istifadə edirsinizsə, ünvan çıxarılması barədə narahat olmağınıza ehtiyac yoxdur.
Addım 3: Android Tətbiqini Google Play -dən yükləyin və ya GitHub -ı filial edin
Android tətbiqini cihazınıza yükləmək üçün bir neçə seçiminiz var. Kodlaşdırmadan qaçmaq istəyirsinizsə, "Accel Plot" üçün axtarış edə bilərsiniz və tətbiq Google Play mağazasında görünməlidir. Mağaza quraşdırma təlimatlarına əməl edin.
Bu Təlimatla istəyim həqiqətən başqalarını layihələr qurmağa həvəsləndirməkdir, buna görə də kodu GitHub depolarında nəşr etdim. Bunu filial edə, qura və uyğun gördüyünüz kimi dəyişdirə bilməlisiniz. Kodu MIT Lisenziyası altında yayımladım, buna görə əylənin!
Addım 4: Arduino -ya Maraqlı bir şeyə qoşulun (R/C avtomobili istifadə etdim)
Nəhayət cihazı yol səthinin aşkarlanması üçün istifadə etmək istəyirəm, buna görə də uzaqdan idarə olunan (R/C) kiçik bir avtomobilin uyğun olacağını düşündüm. Düşünürəm ki, aksellərin hərəkət edən və ya titrəyən bir şey üzərində ola biləcəyi növbəti addımda kömək edir.
Addım 5: Arduinoya qoşulmaq üçün Android Cihazından istifadə edin
Hələ bunu etməmisinizsə, əvvəlcə HC-05-i Android cihazınıza qoşmalısınız. İnanıram ki, əksər cihazlarda bunu ayarlara gedərək edə bilərsiniz. Əksər HC-05 cihazları üçün standart pin 1234 və ya 1111 olacaq.
Android cihazında AccelPlot tətbiqini açın. Tətbiq açıldıqda və HC-05-ə qoşulmadan əvvəl nümunə götürmə nisbətini (bu Arduino kodunda təyin olunur), akselerometr tərəzilərini (Arduino kodunda da təyin olunur) və saxlanılacaq nümunələrin sayını dəyişə bilərsiniz.
Bu parametrlər edildikdən sonra "Bağlan" düyməsini basın. Bluetooth cihazlarını açmalı və cihazınız siyahıya alınmalıdır. Seçin və kod əlaqəni qurduqdan sonra "Bağlı" bir tost açılır.
Accel Plot -a qayıtmaq üçün geri ox düyməsini istifadə edin. HC-05 cihazından məlumatları göstərmək üçün "Yayımı Başlat" düyməsinə vurun. Məlumatı saxlamaq və ya səs jakı vasitəsilə tezlik modulyasiya edilmiş məzmunu oynamaq üçün mövcud düymələr də olmalıdır.
Addım 6: Məlumat Alın və Planlaşdırın
"Yayımı Başlat" düyməsi aktiv olmalıdır. Ekrana məlumat axınına başlamaq üçün vurun.
"Məlumatları Saxla" düyməsi də aktiv olacaq, məlumatları saxlamaq üçün vurun.
Accel Plot, səs kanallarında modulyasiya edilmiş bir siqnal çıxarmaq üçün bir seçim də ehtiva edir. Accel Plot tətbiqetməsindəki 2 kanal, Android cihazındakı səs çıxışı yuvasının sol və sağ kanallarına aiddir. MPU-6050 məlumatlarını Milli Alətlər kimi ayrı bir məlumat qeyd sisteminə gətirmək istəyirsinizsə bu faydalıdır.
Videoda R/C avtomobili haqqında məlumat toplayan sistemin nümunəsi göstərilir.
Addım 7: Əlavə İstifadə üçün Python (və ya Digər Platforma) daxil edin
Fayllar Android cihazında saxlanılır. Fayllar Android API 18 və daha yuxarı üçün "AccelPlot" qovluğunda saxlanılacaq. Kod,.dat fayllarını API 19 (KitKat 4.4) və daha yüksək "\ Tablet / Documents / AccelPlot" qovluğuna yerləşdirir. USB vasitəsilə qoşulduqda bəzi Android cihazlarında faylları göstərməkdə çətinlik çəkdim. Bəzi hallarda, onları göstərmək üçün Android cihazını yenidən başlatmalı oldum. Bunun nədən qaynaqlandığından əmin deyiləm, amma hər kanal üçün bir fayl olmaqla dörd fayl olmalıdır. Əlavə iş üçün yerli bir kataloqa kopyalana bilər.
Faylları açmaq və məlumatları göstərmək üçün Anaconda/Python 2.7 istifadə etdim. "ExploratoryAnalysis.ipynb" faylında bütün məlumat fayllarını açacaq və nümunə məlumatları quracaq IPython Notebook faylı var. Nümunə faylları GitHub depolarına daxildir. Məlumatlar böyük 4 bitlik üzgüçü olaraq saxlanılır ('> f'), buna görə hər hansı bir analiz proqramı onları aça bilməlidir.
Tək bir faylda adla necə oxunacağını göstərən "ReadDataFiles.ipynb" adlı daha sadə bir fayl da əlavə etdim.
Tövsiyə:
Arduino UNO və SD-Card ilə Nəmlik və Temperaturu Real Zaman Məlumat Kaydedicisi necə etmək olar - DHT11 Proteusda Data Logger Simulyasiyası: 5 Addım
Arduino UNO və SD-Card ilə Nəmlik və Temperaturu Real Zaman Məlumat Kaydedicisi necə etmək olar | DHT11 Proteusda Data Logger Simulyasiyası: Giriş: salam, bu Liono Maker, burada YouTube bağlantısı var. Arduino ilə yaradıcı bir layihə hazırlayırıq və quraşdırılmış sistemlərdə işləyirik. Data Logger: Məlumat qeyd edən (eyni zamanda məlumat qeyd edən və ya məlumat yazan), məlumatları zamanla yazan elektron cihazdır
PfodApp, Android və Arduino istifadə edərək sadə mobil məlumat girişi: 5 addım
PfodApp, Android və Arduino istifadə edərək sadə mobil məlumatların qeydiyyatı: Moblie Məlumat Qeydiyyatı, Andriod mobil cihazınız və Arduino ilə birlikdə pfodApp istifadə edərək sadə hala gətirildi. Android proqramlaşdırma tələb olunmur. Android -də Məlumat Planlaşdırmaq üçün bunu daha sonra Android / Arduino / pfodApp -dan istifadə edərək Sadə Uzaqdan Məlumat Planlamasına baxın
MotoStudent Elektrikli Yarış Velosipedinin Məlumat Alınması və Məlumat Vizualizasiya Sistemi: 23 addım
Bir MotoStudent Elektrik Yarış Velosipedi üçün Məlumat Toplama və Məlumat Görüntüləmə Sistemi: Məlumat əldə etmə sistemi, xarici sensorlardan məlumat toplamaq, sonra saxlamaq və emal etmək üçün birlikdə işləyən aparat və proqram təminatı toplusudur və qrafik olaraq görüntülənə və təhlil edilə bilər. mühəndislərə imkan verir
Multimetre/Arduino/pfodApp istifadə edərək yüksək dəqiqlikdə uzaqdan məlumat girişi: 10 addım (şəkillərlə)
Multimetre/Arduino/pfodApp istifadə edərək yüksək dəqiqlikdə uzaqdan məlumat girişi: 26 aprel 2017 -ci il tarixində yeniləndi və 4000ZC USB sayğacları ilə istifadə üçün yenidən işlənmiş sxem və lövhə tələb olunmur. giriş üçün və
NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisəsi bildirişləri: 4 addım (şəkillərlə)
NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisələri bildirişləri: Veb saytınızda bir hərəkət edildiyində, ancaq e -poçt uyğun olmadıqda xəbərdar olmaq istəmisinizmi? Hər satış etdiyiniz zaman bir səs və ya zəng eşitmək istəyirsinizmi? Ya da ortaya çıxan səbəbdən dərhal diqqətinizə ehtiyac var