Satura rādītājs:
- 1. darbība: izveidojiet vairogu/maizes dēli
- 2. solis: ieprogrammējiet Arduino
- 3. darbība. Ielādējiet Android lietotni no Google Play vai GitHub filiāles
- 4. solis: izveidojiet savienojumu ar Arduino, lai iegūtu kaut ko interesantu (es izmantoju R/C automašīnu)
- 5. darbība: izmantojiet Android ierīci, lai izveidotu savienojumu ar Arduino
- 6. darbība: iegūstiet un uzzīmējiet datus
- 7. darbība. Importējiet Python (vai citā platformā) turpmākai lietošanai
Video: Reāllaika MPU-6050/A0 datu reģistrēšana, izmantojot Arduino un Android: 7 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Mani interesēja izmantot Arduino mašīnmācībai. Vispirms es vēlos izveidot reāllaika (vai diezgan tuvu tam) datu displeju un reģistrētāju ar Android ierīci. Es vēlos uzņemt akselerometra datus no MPU-6050, tāpēc es izveidoju konstrukciju, lai izmantotu HC-05 ar 115200 bodu. Ar šo konfigurāciju var pārraidīt 4 datu kanālus ar 250 paraugiem sekundē.
Būvēšanai ir daži soļi:
- Izveidojiet vairogu vai maizes dēli
- Programmējiet Arduino
- Ielādējiet Android lietotni no Google Play vai sazarojiet GitHub un apkopojiet to pats
- Pievienojiet MPU-6050 kaut kam interesantam, kas vibrē (es izmantoju R/C automašīnu)
- Lai izveidotu savienojumu ar Arduino, izmantojiet Android ierīci
- Uzzīmējiet datus, saglabājiet, ja interesē
- Importējiet Python (vai citā platformā) turpmākai lietošanai
Sāksim!
1. darbība: izveidojiet vairogu/maizes dēli
Šī ir Arduino, HC-05 un MPU-6050 elektroinstalācijas shēma. Papildus MPU-6050 man ir analogā ieeja A0, kas savienota ar gaismas sensoru, lai parādītu, ka ADC darbojas. A0 ADC var ievadīt jebkuru 0–5 voltu signālu. Šīs ir sastāvdaļas, kuras es izmantoju būvei:
- Arduino Uno
- HC-05 (arī HC-06 vajadzētu darboties, bet mana konstrukcija bija ar HC-05)
- MPU-6050
- Sparkfun fotorezistors
- 10 kOhm rezistors (brūni melni oranžs)
Lielākā daļa HC-05 Bluetooth moduļu noklusējuma ir 9600 baudas. Lai dati tiktu veiksmīgi pārsūtīti, jums tie jāpārprogrammē, lai iegūtu 115200 batu pārraides ātrumu. Ir labs HC-05/HC-06 AT Commander Instructable, kas izskaidro, kā to izdarīt.
2. solis: ieprogrammējiet Arduino
Arduino programmēšanai es izmantoju Arduino IDE versiju 1.6.7. Kodu var lejupielādēt no šajā darbībā esošajām saitēm vai no GitHub repo. Esmu iekļāvis trīs versijas: Firmware125.ino ir 125 hercu versija, Firmware250.ino ir 250 hercu versija, un Firmware500.ino ir 500 hercu versija. Lai Arduino darbotos ar 500 hercu ciklu, A0 ADC netiek apkopots.
Programmaparatūra ietver pulksteni 9, kas tika izmantots, lai pārbaudītu laiku. Izsekojums parāda, ka cikla laiks ir 4 ms (ekvivalents 1/250 herciem). Es atklāju, ka, ja rodas sērijveida saites problēmas, laiks nebūs vienāds.
Arduino kods izmanto bitu maskēšanu, lai katrai paketei pievienotu kanāla numuru, jo paraugi dažreiz nokrīt, izmantojot Bluetooth. Kanāla numura saglabāšanai es izmantoju trīs nozīmīgākos bitus. Parakstītiem veseliem skaitļiem nozīmīgākais bits (MSB) ir rezervēts zīmei. Tā kā vēlos savai adresei izmantot MSB, nevis veselu skaitli, tad visas parakstītās akselerometra vērtības ir jāpārvērš veselos skaitļos, kas nav parakstīti. Es to daru, katrai vērtībai pievienojot 32768 (MPU akselerometra ADC skaitļi ir no +32768 līdz -32768) un atveidoju kā neparakstītus veselus skaitļus:
(neparakstīts int) ((garš) iAccelData+32767);
Kanālu numuri katram akselerometram un A0 portam ir vienādi, lai varētu noteikt nokritušu paketi, ja kanālu numuri ir nepareizi. Attiecībā uz paketēm, kas nāk no Bluetooth Arduino, binārais modelis ir (zīmes mainās mazliet):
(xacc 3 adreses biti = 0x00, 13 bitu paraksts) (yacc 3 adreses biti = 0x01, 13 bitu paraksts) (zacc 3 adreses biti = 0x02, 13 bitu paraksts) (3 adreses biti = 0x03, iadc13bit neparakstīts)
(xacc 3 adreses biti = 0x00, 13 bitu paraksts) (yacc 3 adreses biti = 0x01, 13 bitu paraksts) (zacc 3 adrešu biti = 0x02, 13 bitu paraksts) (3 adreses biti = 0x03, iadc13bit neparakstīts) (xacc 3 adreses biti = 0x00, 13 bitu neparakstīts) (yacc 3 adreses biti = 0x01, 13 bitu paraksts) (zacc 3 adreses biti = 0x02, 13 bitu paraksts) (3 adreses biti = 0x03, iadc13bit neparakstīts)…
Ja Bluetooth datu lasīšanai izmantojat kaut ko citu, nevis Android lietotni Accel Plot, veiciet tālāk norādītās darbības, lai iegūtu adresi (es izmantoju mainīgo nosaukumus no Accel Plot Bluetooth.java faila no GitHub repo):
- Izlasiet 16 neparakstītos int
- Izvelciet augsto baitu un saglabājiet to btHigh.
- Izvelciet zemo baitu un saglabājiet to btLow.
- Izgūstiet adresi no btHigh, izmantojot: (btHigh >> 5) & 0x07. Šis paziņojums pārvieto btHigh 5 bitus pa labi, pārvietojot trīs adreses bitus uz zemākajiem trim reģistriem. & Zīme ir loģiska UN, kas liek bitiem 4 un augstāk būt nullei un pēdējiem trim bitiem atbilst adreses bitiem. Šī paziņojuma rezultāts ir jūsu adrese.
Ja izmantojat Accel Plot, jums nav jāuztraucas par adreses iegūšanu.
3. darbība. Ielādējiet Android lietotni no Google Play vai GitHub filiāles
Jums ir vairākas iespējas, kā ierīcē ielādēt Android lietotni. Ja vēlaties izvairīties no kodēšanas, varat meklēt “Accel Plot”, un lietotnei vajadzētu parādīties Google Play veikalā. Instalēšanai ievērojiet veikala norādījumus.
Mana vēlme ar šo Instructable patiešām ir mudināt citus veidot projektus, tāpēc esmu arī publicējis kodu GitHub repo. Jums vajadzētu būt iespējai to sazarot, veidot un modificēt pēc saviem ieskatiem. Es publicēju kodu saskaņā ar MIT licenci, tāpēc izklaidējieties!
4. solis: izveidojiet savienojumu ar Arduino, lai iegūtu kaut ko interesantu (es izmantoju R/C automašīnu)
Es vēlos galu galā izmantot ierīci ceļa virsmas noteikšanai, tāpēc es domāju, ka būtu piemērota neliela tālvadības automašīna (R/C). Es domāju, ka nākamajā solī palīdz, ja akcenti var būt uz kaut ko, kas kustas vai vibrē.
5. darbība: izmantojiet Android ierīci, lai izveidotu savienojumu ar Arduino
Ja vēl neesat to izdarījis, vispirms HC-05 ir jāsavieno pārī ar Android ierīci. Es uzskatu, ka lielākajā daļā ierīču to var izdarīt, dodoties uz iestatījumiem. Lielākajai daļai HC-05 ierīču noklusējuma tapa būs 1234 vai 1111.
Android ierīcē atveriet lietotni AccelPlot. Kad tiek atvērta lietotne un pirms savienojuma izveides ar HC-05, varat mainīt paraugu ņemšanas ātrumu (tas ir iestatīts Arduino kodā), akselerometra svarus (arī iestatīt Arduino kodā) un saglabājamo paraugu skaitu.
Kad šie iestatījumi ir veikti, noklikšķiniet uz pogas "Savienot". Tam vajadzētu parādīt Bluetooth ierīces, un jūsu ierīce ir jāuzskaita. Atlasiet to un, kad kods izveidos savienojumu, jūs redzēsit uznirstošo uzrakstu “Savienots”.
Izmantojiet atpakaļvērsto bultiņu pogu, lai atgrieztos Accel Plot. Pieskarieties pogai "Sākt straumi", lai parādītu datus no ierīces HC-05. Jums vajadzētu būt pieejamām pogām, lai saglabātu datus vai atskaņotu ar frekvenci modulētu saturu, izmantojot audio ligzdu.
6. darbība: iegūstiet un uzzīmējiet datus
Pogai "Sākt straumi" jābūt iespējotai. Pieskarieties tam, lai sāktu datu straumēšanu ekrānā.
Tiks iespējota arī poga "Saglabāt datus", pieskarieties tai, lai saglabātu datus.
Accel Plot ietver arī iespēju izvadīt modulētu signālu audio kanālos. 2 kanāli lietotnē Accel Plot attiecas uz audio ierīces ligzdas kreiso un labo kanālu Android ierīcē. Tas ir noderīgi, ja vēlaties MPU-6050 datus ieviest atsevišķā datu reģistrēšanas sistēmā, piemēram, National Instruments.
Video ir parādīts piemērs, kā sistēma vāc datus par R/C automašīnu.
7. darbība. Importējiet Python (vai citā platformā) turpmākai lietošanai
Faili tiek saglabāti Android ierīcē. Faili tiks saglabāti direktorijā "AccelPlot" operētājsistēmai Android API 18 un vecākām versijām. Kods ievieto.dat failus mapē "\ Tablet / Documents / AccelPlot" API 19 (KitKat 4.4) un jaunākām versijām. Man ir radušās problēmas ar dažām Android ierīcēm, kas parāda failus, kad tie ir pievienoti, izmantojot USB. Dažos gadījumos man bija jāpārstartē Android ierīce, lai tās tiktu parādītas. Neesat pārliecināts, kāpēc tas tā ir, bet vajadzētu būt četriem failiem, pa vienam katram kanālam. Tos var kopēt vietējā direktorijā papildu darbam.
Lai atvērtu failus un parādītu datus, es izmantoju Anaconda/Python 2.7. Failā "ExploratoryAnalysis.ipynb" ir IPython piezīmju grāmatiņas fails, kas atvērs visus datu failus un uzzīmēs parauga datus. Failu paraugi ir iekļauti GitHub repo. Dati tiek saglabāti kā lieli 4 baitu pludiņi ('> f'), tāpēc jebkurai analīzes programmai vajadzētu tos atvērt.
Esmu iekļāvis arī vienkāršāku failu ar nosaukumu "ReadDataFiles.ipynb", kas parāda, kā lasīt vienā failā pēc nosaukuma.
Ieteicams:
Eksperimenti uzlabotā datu reģistrēšanā (izmantojot Python): 11 soļi
Eksperimenti uzlabotā datu reģistrēšanā (izmantojot Python): Ir daudz norādījumu par datu reģistrēšanu, tāpēc, kad vēlējos izveidot savu mežizstrādes projektu, es paskatījos apkārt. Daži bija labi, daži ne tik daudz, tāpēc es nolēmu ņemt dažas labākas idejas un izveidot savu pieteikumu. Šis rezultāts
Vienkārša mobilo datu reģistrēšana, izmantojot PfodApp, Android un Arduino: 5 soļi
Vienkārša mobilo datu reģistrēšana, izmantojot PfodApp, Android un Arduino: Moblie datu reģistrēšana ir vienkārša, izmantojot pfodApp, jūsu Andriod mobilo tālruni un Arduino. NAV nepieciešama Android programmēšana. Lai attēlotu datus savā Android ierīcē, skatiet šo vēlāk ievadāmo vienkāršo attālo datu attēlošanu, izmantojot Android / Arduino / pfodApp Zīmēšanai
Augstas precizitātes attālā datu reģistrēšana, izmantojot multimetru/Arduino/pfodApp: 10 soļi (ar attēliem)
Augstas precizitātes attālā datu reģistrēšana, izmantojot multimetru/Arduino/pfod Lietotne: Atjaunināts 2017. gada 26. aprīlī Pārskatīta shēma un tāfele lietošanai kopā ar 4000ZC USB skaitītājiem. Nav nepieciešama Android kodēšana Šī instrukcija parāda, kā piekļūt plašam augstas precizitātes mērījumu klāstam no sava Arduino un arī nosūtīt tos attālināti mežizstrādei un
UCL -IIOT - datu reģistrēšana Raspberry Pi: 6 soļi
UCL -IIOT - datu reģistrēšana Raspberry Pi: šo pamācību skolas projektam izveidoja Obayda Haj Hamoud un Sidse Henriksen. Galvenā ideja ir vākt datus no gaismu sensora, reģistrēt datus datu bāzē bezvadu režīmā aveņu pi un uzraudzīt šos datus, izmantojot informācijas paneli
IoT datu zinātnes PiNet reāllaika viedā ekrāna datu vizualizācijai: 4 soļi
IoT datu zinātnes PiNet reāllaika viedā ekrāna datu vizam: Jūs varat viegli izveidot viedo displeju IoT tīklu datu vizualizācijai, lai papildinātu savus pētījumus datu zinātnē vai jebkurā kvantitatīvā jomā. Varat izsaukt " push " no jūsu zemes gabaliem klientiem tieši no jūsu