Dataopsamling fra LEGO energimåler

Ole Caprani,
Institut for Datalogi, Aarhus Universitet,
ocaprani@cs.au.dk

Sidst opdateret 20.1.13.

Når LEGO's solcellepanel forbindes til LEGO's energimåler, kan energien, som solcellepanelet producere, måles af energimåleren i volt, ampere, watt og joule. Målingerne kan aflæses på energimålerens display.

Målingerne kan også opsamles af en LEGO Mindstorms NXT enhed. Energimåleren skal så forbindes til en af NXT enhedens sensorporte, f.eks. port 1. Forbindes en computer til NXT, kan de opsamlede data vises på skærmen, mens opsamlingen foregår:

NXT-G 2.0 Datalogging er en kort introduktion til dataopsamling på NXT. En dataopsamling fra energimåleren startes ved at definere et eksperiment i dataopsamlingsprogrammet og at vælge imellem at opsamle data på port 1 fra Energimåler ind : V, Energimåler ind : A, osv, f.eks.:
Når eksperimentet er defineret overføres det til NXT og dataopsamlingen begynder. De opsamlede data vises løbende som en graf på skærmen. I eksperimentet opsamles energien målt i volt. Opsamlingen foregår over 10 sekunder og der opsamles 5 målinger per sekund. Dvs der opsamles 5*10 = 50 målinger og tidsintervallet imellem to på hinanden følgende målinger er 1000/5 millisekunder = 200 millisekunder.

De opsamlede data kan gemmes, så data efter opsamlingen kan gøres til genstand for en videre analyse. Det sker ved at gemme eksperimentet:

Data fra eksperimentet gemmes som en fil i mappen "Logs" under den "Profile" som bruges i dataopsamlingsprogrammet. F.eks. som filen "Eksperiment-1.log". Filen er en tekstfil, som indeholder information om data i den viste graf samt selve data, f.eks.:
Selve data kan så kopieres ind i et regneark og den videre analyse kan foregå der. Læs mere om dataopsamling i DATALOGGING BASICS.

Opsamling af flere typer målinger samtidig

Den simple brug af dataopsamling på NXT giver umiddelbart adgang til at opsamle en måling ad gangen fra energimåleren, f.eks. den opsamlede energi målt i volt.

Ønskes flere samhørende målinger opsamlet, f.eks. alle fire typer målinger, kan det ikke gøres så simpelt, som lige vist. I stedet skal dataopsamlingen programmeres eksplicit i NXT-G programmeringsværktøjet. Hvordan dataopsamling programmeres eksplicit er vist i Beginning Datalogging with the LEGO MINDSTORMS NXT.

Ideer derfra er brugt til at lave et program, som kan opsamle flere målingerne samtidigt fra energimåleren. Detaljerne i hvordan dataopsamlingen programmeres er skjult i en såkaldt brugerdefineret programmeringsblok kaldet DataOpsaml, og et program til dataopsamling kan så baseres på denne ene programmeringsblok:

Denne form for dataopsamling kan der eksperimenteres med ved at gøre følgende:
  1. Hent programmet opsam1.rbtx.
  2. Start programmeringsværktøjet.
  3. Gå ind i menuen Rediger:
    og vælg Håndter profiler:
    under Navn skrives et selvvalgt navn, f.eks. datalog. Tryk på Opret og en profil med navnet datalog er oprettet.

  4. Vælg den oprettede profil:
    og åben programmet opsaml1.rbtx i fil-menuen. Efter lidt tid åbnes programmet og det vises med navnet opsaml1.
Overfør programmet til NXT og kør det. Dataopsamlingen standses ved at trykke på knappen . Når programmet er standset, skal de opsamlede data overføres fra NXT til computeren. Det sker sådan her:
  1. Åben et NXT vindue ved at trykke på knappen NXT-vindue i programmeringsværktøjet:
  2. Nu åbnes et vindue:
    Tryk på Hukommelse og vælg Anden. Så vises en liste over navngivne filer i NXT's hukommelse. Vælg filen med navnet EMdata.txt og tryk på Upload. Nu bliver det muligt at vælge et sted på computeren, hvor filen EMdata.txt skal overføres til. Vælg et sted og overfør filen.

  3. Når filen er overført kan den åbnes:
    De opsamlede data er: tid målt i millisekunder, spænding målt i volt, strøm målt i ampere og energi målt i joule.

  4. De opsamlede data kan så klippes ud og kopieres ind i et regneark. Bemærk, der er decimal punktum i de opsamlede data i stedet for decimal komma, så det skal der tages hensyn til ved importen til et regneark:

Klik nu på blokken DataOpsaml og se konfigureringspanelet for DataOpsaml. Der er to parametre til dataopsamlingsblokken, nemlig navnet på den fil, som data skal opsamles i, her EMdata og tidsintervallet imellem målingerne, her 100 millisekunder:

Prøv med andre værdier for de to parametre og gentag et dataopsamlingseksperiment.

Ret i brugerdefinerede programmeringsblokke

Dobbeltklik på blokken DataOpsaml og se, hvad der skjuler sig inde i den brugerdefinerede programmeringsblok:
Programmeringsblokken SkrivData ser sådan her ud i detaljer:
Hvis der ønskes andre kombinationer af data end de nuværende valgte, er det her der skal ændres. Husk at gemme hvis der bliver ændret.