Datu reģistrēšana ar VEX smadzenēm un sensoriem, izmantojot Python

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 šīm VEX smadzenēm.

Šajā rakstā mēs izstrādāsim datu reģistrēšanas projektu, kas apkopo paātrinājuma datus ar VEX IQ Brain (2. paaudzes) 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. paaudzes).

  • Šīs programmas sākumā mums būs jāimportē Python moduļi, lai kontrolētu VEX IQ Brain (2. paaudzes) un no tā iegūtu datus. Tāpēc sāciet ar šo instrukciju pievienošanu projektam.

    Diagramma, kas ilustrē V5 robota komponentus un funkcijas, ko izmanto Python apmācībās izglītojošiem nolūkiem robotikā.

  • Pēc tam pievienojiet kodu, lai deklarētu mainīgo numOfDataEntries , lai saglabātu datu ierakstu skaitu ierakstīšanai, deklarējiet mainīgo polling_delay_msec , lai saglabātu datu nolasīšanas laika intervāla vērtību, un izveidojiet tukšu virknes mainīgo data_buffer , lai saglabātu. no sensora nolasītie dati.

    Diagramma, kas ilustrē, kā saglabāt datus, kas nolasīti no sensora VEX V5, izmantojot Python, ietverot koda fragmentus un vizuālus datu plūsmas un uzglabāšanas metožu attēlojumus.

  • 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.

    Ekrānuzņēmums, kurā parādīts VEX V5 taimera atiestatīšanas process Python, ilustrējot, kā pirms datu vākšanas iestatīt taimera vērtību atpakaļ 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īgajam data_buffer noteiktā formātā.

    Diagramma, kas ilustrē Python mainīgā formātu, kas izmantots V5 kategorijas aprakstā sadaļā Python apmācības un parāda mainīgā lieluma struktūru un komponentus.

    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 VEX IQ Brain (2. paaudzes) iebūvētā inerciālā sensora taimeri un paātrinājuma vērtību un pēc tam pievienot datus mainīgajam data_buffer norādītajā formātā.

    Diagramma, kas ilustrē mainīgo formātu Python, kas ir daļa no V5 kategorijas apraksta, sadaļā Python apmācības. Attēls vizuāli attēlo Python programmēšanas mainīgo struktūru un lietojumu.

    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 izmantot for loop , lai atkārtoti izpildītu instrukcijas, kas izgūst datus, un pievienotu datus mainīgajam data_buffer vairākām iterācijām. Mūsu stratēģija ir izmantot mainīgā numOfDataEntries vērtību, lai noteiktu iterāciju skaitu.

    Diagramma, kas ilustrē iterāciju skaitu VEX V5 Python apmācībā, parāda datu punktus un tendences, kas saistītas ar programmēšanas iterācijām robotikā.

  • 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.

    Grafiks, kas ilustrē laika intervāla vērtību noteikšanas procesu Python, parādot galvenos mainīgos un to attiecības. Attiecas uz V5 Python apmācībām.

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ē.

Diagramma, kas ilustrē Python apmācību V5 kategoriju struktūru, ietverot galvenos komponentus un attiecības VEX Robotics ekosistēmā.




SD kartes pievienošana VEX Brain

Pirms datu ierakstīšanas failā SD kartē, vispirms ievietojiet SD karti VEX Brain SD kartes slotā.

Diagramma, kas ilustrē V5 robota konfigurāciju Python apmācībai, demonstrējot galvenos komponentus un to savienojumus izglītības nolūkos.

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. paaudzes).

  • 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.

    Screenshot of VEX IQ Brain screen displaying a message indicating that the SD card is not inserted, with instructions for holding the program. Relevant to Python tutorials in the V5 category.


    Piezīme: funkcija brain.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. paaudzes). 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īgo csvHeaderText , lai saglabātu CSV galvenes tekstu, lai norādītu CSV faila kolonnu nosaukumus, un deklarējiet mainīgo sd_file_name , lai saglabātu CSV faila nosaukumu, ko rakstīt. SD karte.

    Diagramma, kas ilustrē Python apmācību V5 kategorijas aprakstu, vizuālā formātā demonstrējot galvenos komponentus un to attiecības.

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 pirms  cilpas datu apkopošanai.

    Diagramma, kas ilustrē V5 Python programmēšanas vidi, parāda galvenos komponentus un to funkcijas, kas attiecas uz V5 kategorijas aprakstu un Python apmācībām.

  • Pirms datu ierakstīšanas failā SD kartē, ļaujiet mums saprast, kā vispirms izmantot funkciju brain.sdcard.savefile().

    Diagramma, kas ilustrē Python apmācības V5 kategorijas aprakstu, demonstrē VEX V5 robotikas sistēmas galvenos komponentus un funkcijas.


    Šī 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 cilpas datu apkopošanai izmantojiet funkciju brain.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 funkcijas brain.sdcard.savefile() , lai pārbaudītu, vai dati ir veiksmīgi ierakstīti failā, un parādiet atbilstošo ziņojumu VEX IQ Brain Screen, lai iegūtu reālu laika atgriezeniskā saite.

    Diagram illustrating the V5 robot's components and their functions, used in Python tutorials for educational purposes.


    Piezīme. Funkcija brain.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 funkcija brain.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. paaudzes) un saglabā tos CSV failā SD kartē. Tālāk mēs izpētīsim, kā atvērt CSV failu datu analīzei. 

Diagramma, kas ilustrē V5 robota komponentus un to funkcijas, ko izmanto Python apmācībās VEX robotikas programmēšanai. Attēls sniedz vizuālu atsauci, lai izglītojamie saprastu aparatūras iestatījumus.

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ā.

    VEX V5 Python apmācības pārskata attēls, kas ilustrē galvenās koncepcijas un resursus programmēšanai ar VEX robotiku.

  • (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. paaudze).

    Diagram illustrating the V5 Python tutorial structure, showcasing various components and their relationships in a clear and organized manner, designed to aid users in understanding the programming framework for VEX robotics.


    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. paaudzes) 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.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: