Záznam dat pomocí mozku VEX a senzorů pomocí Pythonu

Úvod

V tomto článku budeme diskutovat o tom, jak vytvořit projekt protokolování dat, který dá robotu VEX pokyn, aby sbíral data pomocí VEX Brain a ukládal je do souboru CSV na SD kartu pro analýzu dat.

Záznam dat je mocný nástroj, který můžeme použít k podpoře vědeckého výzkumu, provádění vlastních experimentů a řešení konkrétních problémů. Existují různé zábavné a vzrušující úkoly, které můžeme řídit robotem VEX pomocí protokolování dat. Následuje několik příkladů:

  • Sběr dat pomocí senzoru vzdálenosti pro výpočet rychlosti robota.
  • Řízení robota po třídě a shromažďování dat pomocí optického senzoru pro sledování změn světla na různých místech.
  • Vezměte robota na dobrodružství a zaznamenejte data souřadnic GPS pro vytvoření mapy.

Dovednosti kódování potřebné pro vývoj projektu protokolování dat

  • Pomocí různých příkazů shromažďujte data pomocí VEX Brain/Sensors a přidejte je do datové struktury.
  • Zapište data do souboru CSV (Comma-Separated Values) na SD kartě.

Hardware požadovaný pro protokolování dat:

  • Mozek VEX (IQ, V5, EXP)
  • SD karta
  • Senzor nebo více senzorů (volitelné, podle požadovaných údajů)

Získávání dat ze senzoru

Můžeme naprogramovat robota VEX (IQ, V5, EXP), aby zachytil data z následujících senzorů:

  • Inerciální senzor
  • Snímač vzdálenosti
  • Optický senzor
  • Vision Sensor
  • Rotační senzor (V5, EXP)
  • GPS senzor (V5)

Poznámka: VEX IQ (2. generace) Brain a VEX EXP Brain mají zabudovaný inerciální senzor. Můžeme sbírat data inerciálního senzoru pomocí těchto mozků VEX.

V tomto článku vyvineme projekt protokolování dat, který shromažďuje data o zrychlení pomocí VEX IQ Brain (2. gen) a ukládá je na SD kartu. 

Nejprve musíme napsat krátký program, abychom získali údaje z časovače a inerciálního senzoru zabudovaného ve VEX IQ Brain (2. gen).

  • Na začátku tohoto programu budeme muset importovat moduly Pythonu pro ovládání VEX IQ Brain (2. gen) a načíst z něj data. Začněte tedy přidáním těchto pokynů do projektu.

    Diagram znázorňující komponenty a funkce robota V5, který se používá ve výukových programech Pythonu pro vzdělávací účely v robotice.

  • Dále přidejte kód pro deklarování proměnné numOfDataEntries pro uložení počtu datových záznamů pro záznam, deklarujte proměnnou polling_delay_msec pro uložení hodnoty časového intervalu pro čtení dat a vytvořte prázdnou řetězcovou proměnnou data_buffer k uložení. data načtená ze senzoru.

    Diagram znázorňující, jak ukládat data načtená ze senzoru ve VEX V5 pomocí Pythonu, obsahující úryvky kódu a vizuální reprezentace datového toku a metod ukládání.

  • Protože k přidání časového razítka k datům použijeme aktuální hodnotu časovače, musíme před zahájením sběru dat resetovat hodnotu časovače zpět na 0 sekund.

    Snímek obrazovky ukazující proces resetování časovače VEX V5 v Pythonu ilustrující, jak nastavit hodnotu časovače zpět na 0 sekund před sběrem dat.

  • Před použitím instrukce, která načítá data z VEX IQ Brain (2.) a zaznamenává data do vyrovnávací paměti, jí musíme nejprve porozumět.
    Následující instrukce připojí aktuální hodnotu časovače k ​​proměnné data_buffer ve specifickém formátu.

    Diagram znázorňující formát proměnné v Pythonu, používaný v popisu kategorie V5 v Python Tutorials, ukazující strukturu a komponenty proměnné.

    Rozdělme formátovací řetězec “%1.3f“

    • „%“: Zavádí specifikátor převodu.
    • „1“: Označuje minimální počet číslic, které má řetězec obsahovat.
    • „.3“: Určuje počet desetinných míst, která mají být zahrnuta do formátovaného čísla.
    • „f“: Označuje, že hodnota, která má být formátována, je číslo s plovoucí desetinnou čárkou.

    Můžeme tedy použít formátovací řetězec „%1.3f“ pro formátování čísla s plovoucí desetinnou čárkou s minimální šířkou 1 číslice a přesností na 3 desetinná místa.

  • Nyní můžeme přečíst časovač a hodnotu zrychlení inerciálního senzoru vestavěného ve VEX IQ Brain (2. gen) a poté připojit data k proměnné data_buffer ve stanoveném formátu.

    Diagram znázorňující formát proměnných v Pythonu, součást popisu kategorie V5, v části Výukové programy Pythonu. Obrázek vizuálně znázorňuje strukturu a použití proměnných v programování v Pythonu.

    Poznámka: „\n“ je znak nového řádku. Označuje, že řádek končí zde a začátek nového řádku.

  • Poté, abychom zaznamenali určitý počet datových záznamů do proměnné data_buffer , můžeme použít pro smyčku k opakovanému provádění instrukcí, které načítají data a připojují data k proměnné data_buffer po řadu iterací. Naší strategií je použít hodnotu proměnné numOfDataEntries k určení počtu iterací.

    Graf znázorňující počet iterací ve výukovém programu VEX V5 Python, zobrazující datové body a trendy související s programováním iterací v robotice.

  • Náš program zatím zaznamenává data tak rychle, jak je to jen možné. Chceme však zaznamenávat data v určitých časových intervalech. Proto můžeme použít funkci wait() ve smyčce for k pozastavení programu a přidání specifického časového intervalu mezi dvěma čteními. Hodnotu proměnné polling_delay_msec použijeme k určení hodnoty časového intervalu.

    Graf znázorňující proces určování hodnot časového intervalu v Pythonu, zobrazující klíčové proměnné a jejich vztahy. Relevantní pro výukové programy V5 Python.

Gratulujeme! Dokončili jsme program, abychom získali údaje (údaje o zrychlení) z inerciálního senzoru zabudovaného ve VEX Brain. Dále prozkoumáme, jak zapsat data do souboru CSV na SD kartu.

Diagram znázorňující strukturu kategorií V5 pro výukové programy Pythonu s klíčovými komponentami a vztahy v rámci ekosystému VEX Robotics.




Připojení SD karty k VEX Brain

Před zápisem dat do souboru na SD kartu nejprve vložte SD kartu do slotu pro SD kartu ve VEX Brain.

Diagram znázorňující konfiguraci robota V5 pro výukové programy Pythonu, představující klíčové komponenty a jejich připojení pro vzdělávací účely.

Poznámka: Naformátujte SD kartu na FAT32 pro zápis dat. Doporučujeme používat karty SD o velikosti 32 GB nebo méně.

Aby bylo zajištěno, že zápis dat do souboru na SD kartě může být proveden za vhodných podmínek, budeme muset přidat kód pro kontrolu, zda je SD karta správně vložena do VEX IQ Brain (2. gen).

  • Pomocí funkce brain.sdcard.is_inserted() zkontrolujte, zda je vložena SD karta. Pokud není vložena SD karta, zobrazte odpovídající zprávu na obrazovce mozku VEX IQ a podržte program.

    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.


    Poznámka: funkce brain.sdcard.is_inserted() vrátí hodnotu True, pokud je do Brain vložena SD karta.

Zápis dat do souboru CSV na SD kartě

Náš program zatím dokáže sbírat data pomocí VEX IQ Brain (2. gen). K dokončení projektu protokolování dat musíme data zapsat do souboru CSV (Comma-Separated Values) na SD kartě pro budoucí zkoumání a analýzu.

  • Při zápisu různých typů dat do souboru CSV chceme vědět, jaký typ dat každý sloupec obsahuje. K tomu můžeme před záznamem dat připojit text hlavičky CSV k proměnné data_buffer .
    Přidejte tedy kód pro deklaraci proměnné csvHeaderText pro uložení textu hlavičky CSV pro specifikaci názvů sloupců pro soubor CSV a deklarování proměnné sd_file_name pro uložení názvu souboru CSV, do kterého se má zapisovat. SD karta.

    Diagram znázorňující popis kategorie V5 pro výukové programy Pythonu, představující klíčové komponenty a jejich vztahy ve vizuálním formátu.

Poznámka: Ujistěte se, že záhlaví jsou ve stejném pořadí jako data uložená v proměnné data_buffer.

  • Dále připojte text hlavičky CSV k řetězci data_buffer před smyčku for pro sběr dat.

    Diagram znázorňující programovací prostředí V5 Python, představující klíčové komponenty a jejich funkce, relevantní pro popis kategorie V5 a výukové programy Pythonu.

  • Před zápisem dat do souboru na SD kartě si nejprve porozumějte, jak použít funkci brain.sdcard.savefile().

    Diagram znázorňující popis kategorie V5 pro výukové programy Python, představující klíčové komponenty a funkce robotického systému VEX V5.


    Tato instrukce zapíše data uložená v proměnné data_buffer do pojmenovaného souboru CSV na SD kartě.
    Rozeberme si to:
    • brain.sdcard.savefile(): Funkce uloží bajtové pole do pojmenovaného souboru na SD kartě. Funkce vrací počet bajtů zapsaných do souboru.

    • sd_file_name: První parametr funkce. Označuje název souboru, který se má zapsat. V tomto projektu je název souboru uložen v proměnné sd_file_name.

    • bytearray(datat_buffer,'utf-8'): Druhý parametr funkce. Představuje bajtray, který se má zapsat do souboru.

        • bytearray(): Metoda vytvoří proměnlivý bytearray. V této instrukci jej používáme k převodu řetězce na byearray zadáním kódování.
        • data_buffer: První parametr metody. Označuje zdroj, který má být převeden na byearray. V tomto projektu jsou zdrojem data uložená v proměnné data_buffer. 
        • 'utf-8': Druhý parametr metody. Označuje zadané kódování použité ke kódování řetězce. Kódování je v této instrukci 'utf-8'. 
  • Po smyčce for pro sběr dat použijte funkci brain.sdcard.savefile() k zápisu dat uložených v proměnné data_buffer do souboru CSV na SD kartě. Kromě toho přidejte kód pro kontrolu návratové hodnoty z funkce brain.sdcard.savefile() , abyste ověřili, zda byla data zapsána do souboru úspěšně, a zobrazte odpovídající zprávu na obrazovce VEX IQ Brain, abyste získali skutečné časová zpětná vazba.

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


    Poznámka: Funkce brain.sdcard.savefile() vrací počet bajtů zapsaných do souboru. V tomto projektu jej používáme k zápisu shromážděných dat do souboru CSV, takže počet bajtů zapsaných do souboru musí být větší než nula. Jinými slovy, pokud funkce brain.sdcard.savefile() vrátí 0, můžeme dojít k závěru, že data nebyla úspěšně zapsána do souboru. Jinak byla data zapsána do souboru.

Gratulujeme! Vyvinuli jsme projekt protokolování dat, který shromažďuje data o zrychlení pomocí VEX IQ Brain (2. gen) a ukládá je do souboru CSV na SD kartě. Dále prozkoumáme, jak otevřít soubor CSV pro analýzu dat. 

Diagram znázorňující komponenty robota V5 a jejich funkce, používaný v Python tutoriálech pro programování robotiky VEX. Obrázek poskytuje studentům vizuální odkaz, aby pochopili nastavení hardwaru.

Otevření souboru CSV pro analýzu dat

Jakmile jsou data zapsána do souboru CSV na SD kartě, můžeme soubor otevřít pomocí tabulkového procesoru pro čtení a analýzu dat. 

Poznámka: Dvě z nejběžnějších tabulkových aplikací jsou Tabulky Google a Microsoft Excel. V tomto článku použijeme Tabulky Google (webové) k otevření souboru CSV na kartě SD. Proces používání jiných aplikací je podobný.

  • Vyjměte SD kartu ze slotu SD karty VEX IQ Brain. Pokud má počítač vestavěný slot pro Micro SD kartu, můžeme SD kartu vložit přímo do tohoto slotu. V opačném případě vložte kartu SD do adaptéru karty SD a poté adaptér připojte k počítači. 
  • Přihlaste se k našemu účtu Google a otevřete Tabulky Google. Vytvořte novou tabulku.
  • V tabulce otevřete nabídku „Soubor“ , vyberte „Importovat“ –> „Nahrát“ –> „Procházet“ a poté v počítači vyberte soubor CSV. Po nahrání souboru CSV klikněte na tlačítko „Importovat data“. Po importu dat klikněte na „Otevřít nyní“ pro zobrazení shromážděných dat v souboru CSV.

    Přehledný obrázek výukového programu VEX V5 Python ilustrující klíčové koncepty a zdroje pro programování pomocí robotiky VEX.

  • (Volitelné) Jeden snadný způsob, jak analyzovat data, je nakreslit graf a pak hledat trendy v datech. V tabulce otevřete nabídku „Insert“ a vyberte „Chart“ pro nakreslení grafu pomocí dat v souboru CSV. Následující graf je výsledkem údajů o zrychlení shromážděných pomocí VEX IQ Brain (2. gen).

    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.


    Poznámka: Můžeme použít editor grafů k výběru jiného typu grafu nebo k úpravě grafu podle našich potřeb.

Do této chvíle jsme dokončili projekt protokolování dat, který shromažďuje data pomocí VEX IQ Brain (2. gen) a ukládá je do souboru CSV na SD kartu. Také jsme se naučili číst soubor CSV na kartě SD pomocí Tabulek Google a dokonce vytvořit graf pro další analýzu. Co dál? Pokusme se naplánovat další vzrušující experimenty s použitím robota VEX pro záznam dat, abychom mohli sledovat, jak měnící se faktory prostředí ovlivňují různé typy dat, a hlouběji porozumět světu kolem nás.

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

Last Updated: