Ievads
Šajā rakstā mēs apspriedīsim, kā izveidot datu reģistrēšanas projektu, kas uzdod VEX Robot apkopot datus ar VEX Brain un saglabāt tos CSV failā SD kartē datu analīzei.
Datu reģistrēšana ir spēcīgs rīks, ko varam izmantot, lai palīdzētu zinātniskiem pētījumiem, veiktu savus eksperimentus un risinātu konkrētas problēmas. Ir dažādi jautri un aizraujoši uzdevumi, kurus mēs varam vadīt ar VEX robotu, lai veiktu ar datu reģistrēšanu. Tālāk ir sniegti daži piemēri.
- Datu vākšana ar attāluma sensoru, lai aprēķinātu robota ātrumu
- Robota vadīšana pa klasi un datu vākšana ar optisko sensoru, lai novērotu gaismas izmaiņas dažādās vietās.
- Dodiet robotu piedzīvojumā un ierakstiet GPS koordinātu datus, lai izveidotu karti.
Kodēšanas prasmes, kas nepieciešamas datu reģistrēšanas projekta izstrādei
- Izmantojiet dažādas komandas, lai savāktu datus ar VEX Brain/Sensors un pievienotu tos datu struktūrai.
- Ierakstiet datus komatatdalīto vērtību (CSV) failā SD kartē.
Datu reģistrēšanai nepieciešamā aparatūra:
- A VEX Brain (IQ, V5, EXP)
- SD karte
- Sensors vai vairāki sensori (pēc izvēles, atkarībā no nepieciešamajiem datiem)
Datu iegūšana no sensora
Mēs varam ieprogrammēt VEX Robot (IQ, V5, EXP), lai uztvertu datus no šādiem sensoriem:
- Inerciālais sensors
- Attāluma sensors
- Optiskais sensors
- Redzes sensors
- Rotācijas sensors (V5, EXP)
- GPS sensors (V5)
Piezīme: VEX IQ (2. paaudzes) smadzenēm un VEX EXP smadzenēm ir iebūvēts inerciālais sensors. Mēs varam savākt inerciālo sensoru datus ar šiem VEX Brians.
Šajā rakstā mēs izstrādāsim datu reģistrēšanas projektu, kas apkopo paātrinājuma datus ar VEX IQ Brain (2.) un saglabā tos SD kartē.
Pirmkārt, mums ir jāuzraksta īsa programma, lai iegūtu rādījumus no taimera un inerciālā sensora, kas iebūvēts VEX IQ Brain (2.).
- Šīs programmas sākumā mums būs jāimportē Python moduļi, lai vadītu VEX IQ Brain (2.) un no tā iegūtu datus. Tāpēc sāciet ar šo instrukciju pievienošanu projektam.
- Pēc tam pievienojiet kodu, lai deklarētu mainīgo
numOfDataEntries
, lai saglabātu datu ierakstu skaitu ierakstīšanai, deklarējiet mainīgopolling_delay_msec
, lai saglabātu datu nolasīšanas laika intervāla vērtību, un izveidojiet tukšu virknes mainīgodata_buffer
, lai saglabātu. no sensora nolasītie dati. - Tā kā mēs izmantosim pašreizējo taimera vērtību, lai datiem pievienotu laikspiedolu, pirms datu vākšanas mums ir jāatiestata taimera vērtība uz 0 sekundēm.
- Pirms izmantot instrukciju, kas ienes datus no VEX IQ Brain (2.) un ieraksta datus buferī, mums vispirms tas ir jāsaprot.
Šī instrukcija pievieno pašreizējo taimera vērtību mainīgajamdata_buffer
noteiktā formātā.Sadalīsim formāta virkni
“%1.3f”
:- “%”: ievieš reklāmguvumu norādītāju.
- “1”: norāda minimālo ciparu skaitu, kas jāiekļauj virknē
- “.3”: norāda formatētajā ciparā iekļaujamo zīmju skaitu aiz komata.
- “f”: norāda, ka formatējamā vērtība ir peldošā komata skaitlis.
Tādējādi mēs varam izmantot formāta virkni “%1.3f”, lai formatētu peldošā komata skaitli ar minimālo platumu 1 cipara un ar precizitāti līdz 3 zīmēm aiz komata.
- Tagad mēs varam nolasīt taimeri un VEX IQ Brain iebūvētā inerciālā sensora paātrinājuma vērtību (2.) un pēc tam pievienot datus mainīgajam
data_buffer
norādītajā formātā.Piezīme: “\n” ir New Line rakstzīme. Tas norāda, ka rinda beidzas šeit un jaunas rindas sākums.
- Pēc tam, lai ierakstītu noteiktu skaitu datu ierakstu mainīgajā
data_buffer
, mēs varam izmantotfor loop
, lai atkārtoti izpildītu instrukcijas, kas izgūst datus, un pievienotu datus mainīgajamdata_buffer
vairākām iterācijām. Mūsu stratēģija ir izmantot mainīgānumOfDataEntries
vērtību, lai noteiktu iterāciju skaitu.
- Līdz šim mūsu programma ieraksta datus tik ātri, cik vien iespējams. Tomēr mēs vēlamies ierakstīt datus noteiktos laika intervālos. Tāpēc mēs varam izmantot funkciju
wait()
cilpāfor
, lai apturētu programmu un pievienotu noteiktu laika intervālu starp diviem nolasījumiem. Lai noteiktu laika intervāla vērtību, mēs izmantojam mainīgāpolling_delay_msec
vērtību.
Apsveicam! Mēs esam pabeiguši programmu, lai iegūtu rādījumus (paātrinājuma datus) no inerciālā sensora, kas iebūvēts VEX Brain. Tālāk mēs izpētīsim, kā ierakstīt datus CSV failā SD kartē.
SD kartes pievienošana VEX Brain
Pirms datu ierakstīšanas failā SD kartē, vispirms ievietojiet SD karti VEX Brain SD kartes slotā.
Piezīme: Formatējiet SD karti uz FAT32 datu rakstīšanai. Mēs iesakām izmantot SD kartes, kuru izmērs ir 32 GB vai mazāks.
Lai nodrošinātu, ka datu ierakstīšanu failā SD kartē var veikt atbilstošos apstākļos, mums būs jāpievieno kods, lai pārbaudītu, vai SD karte ir pareizi ievietota VEX IQ Brain (2.).
- Izmantojiet funkciju
brain.sdcard.is_inserted()
, lai pārbaudītu, vai SD karte ir ievietota. Ja SD karte nav ievietota, parādiet atbilstošo ziņojumu VEX IQ Brain ekrānā un turiet programmu.
Piezīme: funkcijabrain.sdcard.is_inserted()
atgriež True, ja smadzenēs ir ievietota SD karte.
Datu ierakstīšana CSV failā SD kartē
Līdz šim mūsu programma var vākt datus, izmantojot VEX IQ Brain (2.). Lai pabeigtu datu reģistrēšanas projektu, mums ir jāieraksta dati SD kartes komatatdalīto vērtību (CSV) failā turpmākai pārbaudei un analīzei.
- Rakstot dažāda veida datus CSV failā, mēs vēlamies zināt, kāda veida datus satur katra kolonna. Lai to izdarītu, pirms datu ierakstīšanas mainīgajam
data_buffer
varam pievienot CSV galvenes tekstu.
Tādējādi pievienojiet kodu, lai deklarētu mainīgocsvHeaderText
, lai saglabātu CSV galvenes tekstu, lai norādītu CSV faila kolonnu nosaukumus, un deklarējiet mainīgosd_file_name
, lai saglabātu CSV faila nosaukumu, ko rakstīt. SD karte.
Piezīme. Pārliecinieties, vai galvenes ir tādā pašā secībā kā dati, kas saglabāti mainīgajā data_buffer
.
- Pēc tam pievienojiet CSV galvenes tekstu virknei
data_buffer
pirmscilpas
datu apkopošanai.
- Pirms datu ierakstīšanas failā SD kartē, vispirms sapratīsim, kā izmantot funkciju
brain.sdcard.savefile()
.
Šī instrukcija ieraksta datus, kas saglabāti mainīgajādata_buffer
, nosauktā CSV failā SD kartē.
Sadalīsim to:-
brain.sdcard.savefile(): funkcija saglabā baitu masīvu nosauktā failā SD kartē. Funkcija atgriež failā ierakstīto baitu skaitu.
-
sd_file_name: pirmais funkcijas parametrs. Norāda rakstāmā faila nosaukumu. Šajā projektā faila nosaukums tiek saglabāts mainīgajā
sd_file_name.
-
bytearray(datat_buffer,'utf-8'): otrais funkcijas parametrs. Apzīmē failā ierakstāmo baitu masīvu.
-
- bytearray(): metode izveido mainīgu baitu masīvu. Šajā instrukcijā mēs to izmantojam, lai pārvērstu virkni baitu masīvā, norādot kodējumu.
- data_buffer: pirmais metodes parametrs. Norāda avotu, kas jāpārvērš baitu masīvā. Šajā projektā avots ir dati, kas glabājas mainīgajā
data_buffer.
- "utf-8": metodes otrais parametrs. Norāda norādīto kodējumu, kas izmantots virknes kodēšanai. Šajā instrukcijā kodējums ir "utf-8".
-
-
- Pēc
cilpai
datu apkopošanai izmantojiet funkcijubrain.sdcard.savefile()
, lai ierakstītu datus, kas saglabāti mainīgajādata_buffer
, CSV failā SD kartē. Turklāt pievienojiet kodu, lai pārbaudītu atgriešanās vērtību no funkcijasbrain.sdcard.savefile()
, lai pārbaudītu, vai dati ir veiksmīgi ierakstīti failā, un parādiet atbilstošo ziņojumu VEX IQ smadzeņu ekrānā, lai iegūtu reālu laika atgriezeniskā saite.
Piezīme. Funkcijabrain.sdcard.savefile()
atgriež failā ierakstīto baitu skaitu. Šajā projektā mēs to izmantojam, lai savāktos datus ierakstītu CSV failā, tāpēc failā ierakstīto baitu skaitam ir jābūt lielākam par nulli. Citiem vārdiem sakot, ja funkcijabrain.sdcard.savefile()
atgriež 0, mēs varam secināt, ka dati failā nav veiksmīgi ierakstīti. Pretējā gadījumā dati ir ierakstīti failā.
Apsveicam! Mēs esam izstrādājuši datu reģistrēšanas projektu, kas apkopo paātrinājuma datus ar VEX IQ Brain (2.) un saglabā tos CSV failā SD kartē. Tālāk mēs izpētīsim, kā atvērt CSV failu datu analīzei.
CSV faila atvēršana datu analīzei
Kad dati ir ierakstīti CSV failā SD kartē, mēs varam izmantot izklājlapu lietojumprogrammu, lai atvērtu failu datu lasīšanai un analīzei.
Piezīme. Divas no visizplatītākajām izklājlapu lietojumprogrammām ir Google izklājlapas un Microsoft Excel. Šajā rakstā mēs izmantosim Google izklājlapas (tīmeklī), lai atvērtu CSV failu SD kartē. Citu lietojumprogrammu izmantošanas process ir līdzīgs.
- Izņemiet SD karti no VEX IQ Brain SD kartes slota. Ja datoram ir iebūvēts Micro SD kartes slots, mēs varam ievietot SD karti tieši šajā slotā. Pretējā gadījumā ievietojiet SD karti SD kartes adapterī un pēc tam pievienojiet adapteri datoram.
- Piesakieties mūsu Google kontā un atveriet Google izklājlapas. Izveidojiet jaunu izklājlapu.
- Izklājlapā atveriet izvēlni “Fails” , atlasiet “Importēt” -> “Augšupielādēt” -> “Pārlūkot” un pēc tam izvēlieties CSV failu datorā. Pēc CSV faila augšupielādes noklikšķiniet uz pogas “Import Data”. Pēc datu importēšanas noklikšķiniet uz “Atvērt tūlīt” lai skatītu apkopotos datus CSV failā.
- (Neobligāti) Viens vienkāršs veids, kā analizēt datus, ir uzzīmēt diagrammu un pēc tam meklēt datos tendences. Izklājlapā atveriet izvēlni “ Ievietot” un atlasiet “Diagramma” , lai uzzīmētu diagrammu, izmantojot CSV failā esošos datus. Nākamajā diagrammā ir iegūti paātrinājuma dati, kas savākti ar VEX IQ Brain (2.).
Piezīme: Mēs varam izmantot diagrammas redaktoru , lai izvēlētos citu diagrammas veidu vai rediģētu diagrammu atbilstoši mūsu vajadzībām.
Līdz šim mēs esam pabeiguši datu reģistrēšanas projektu, kas apkopo datus ar VEX IQ Brain (2.) un saglabā tos CSV failā SD kartē. Mēs arī esam iemācījušies nolasīt CSV failu SD kartē, izmantojot Google izklājlapas, un pat izveidot grafiku turpmākai analīzei. Kas tālāk? Mēģināsim plānot aizraujošākus eksperimentus, izmantojot VEX Robot datu reģistrēšanai, lai novērotu, kā mainīgie vides faktori ietekmē dažāda veida datus un iegūtu dziļāku izpratni par apkārtējo pasauli.