Lightsticks en datalogging m.b.v. Labview, NXT-G en de Lego Mindstorms NXT

Datum: April 2009 - Februari 2010

Inleiding:

Datalogging met de Lego Mindstorms RCX heb ik al vaker gedaan. Het werd tijd om uit te zoeken hoe dat met de NXT uitgevoerd moest worden. Tevens is dit een mooi experiment om LabView uit te proberen op de NXT. 

Principe:

Datalogging met de Lego Mindstorm NXT

Materiaal:

  • LEGO Mindstorms NXT:
    Intelligente NXT steen 9841
  • LEGO Mindstorms NXT:
    Lichtsensor 9844
  • Lightsticks van verschillende kleuren.
  • Lego stenen
  • Isolatietape of ander donker en dun materiaal dat je om de lichtsensor kunt wikkelen.
  • Labview software met Labview NXT toolkit.

  

Uitvoering:

  • Bouw een behuizing om de licht sensor met daarin een gat waarin de light stick past zoals aangegegeven in nevenstaande foto.
  • Omwikkel de lichtsensor met tape of ander materiaal dat er voor zorgt dat er geen strooilicht naar binnen kan vallen.
  • Ontwikkel programma's in NXT-G en Labview waarbij we gedurende langere tijd het signaal van een lichtsensor lezen en opslaan.
  • Importeer de zo gecreëerde file naar excel.
  • Vergeet niet de file op de NXT te deleten anders blijft men data sequentieel naar die file schrijven.

 

 

 


Resultaten:

Lego Mindstorms NXT-G programma

Bovenstaand programma is niet door mezelf ontwikkeld maar kan men vinden in het boek "Extreme NXT": lightdatalog.rbt
Het programma maakt gebruik van de mogelijkheid om de NXT data te laten opslaan in een tekst file. Deze file kan men vervolgens importeren in excel en verder bewerken. Belangrijke elementen in het programma zijn:

1. Een "Keep Alive" blok om te verhinderen dat de NXT in slaap valt tijdens het experiment.

2. Men plaatst data in een file waarvan de naam gegeven wordt in een File Acess blok (dat binnenin de loop geplaatst is).

3. Het is belangrijk om de data file te sluiten las het programma uit de loop komt hetgeen men doet met het laatste File access blok.

4. Het Wait blok op het einde van de loop zet de tijd tussen de samples, in dit geval 15 s.


5. Het aantal samples wordt bepaald door het "Until" in het "Loop Count" menu. Hier gezet op 240 hetgeen betekent dat het programma 15*240 = 3600 s oftewel 1 h draait.


6. Men wil ook iets op het display van de NXT laten zien. In dit geval de waarde van de teller die loopt van 0 to 240.


7. Daarnaast wil men de waarde die de lichtsensor meet op het display laten zien.


Meetresultaten - Mindstorms NXT-G programma

In onderstaande grafieken is het resultaat van een experiment met een gele en met een paarse lightstick weergegeven.
De gele gaf al licht voordat het programma gestart werd.
De teller waardes zijn omgerekend naar tijd (s) door ze met 15 te vermenigvuldigen.
 

Labview programma

Voor het ontwikkelen van bovenstaand programma heb ik zwaar geleund op Michael Gaspari's boek "Labview for Lego Mindstorms NXT".
Het grijze vierkant geeft een "while do" loop weer.

Wait
De tijdsduur dat het programma loopt wordt bepaald door nevenstaande en onderstaande elementen die aangeven dat er 3600 samples genomen moeten worden en dat de tijdsduur tussen samples 1 s is.

Keep Alive
Zorg ervoor dat de NXT zich niet zelf uitschakelt.

Delete File zorgt ervoor dat indien er al een file data.txt bestaat, verwijder dan de oude file.

Easy Close File sluit de data file af.

Light Sensor roept de lichtsensor aan.

Number To Decimal String Function
Converteer de gemeten Intensiteit naar een String.

Easy Write File zorgt ervoor dat data toegevoegd wordt aan een data file indien deze al bestaat.

Display Text
Geef de gemeten waarde weer op het scherm van de NXT.

Toon de gemeten waarde ook in een chart op het labview interface scherm.

Timer
Resetten van de timer bij de start van een experiment.

Floodlight schakelt het LED lampje in de licht sensor aan. Op deze manier kan men controleren of het programma werkt.

Indien met het programma wil opstarten dient men eerst in het Front panel via Tools, NXT Module, NXT Terminal de verbinding met de NXT te maken.
Vervolgens moet men het programma via debug op de NXT installeren en laten draaien. Op deze manier kan de NXT data naar de chart in het frontpanel sturen en kan men het programmaverloop volgen.

Meetresultaten - Labview

Na de resultaten in Excel geimporteerd te hebben

Discussie en conclusie:

De experimenten en programma's die hierboven beschreven zijn laten zien dat men dezelfde resultaten kan verkrijgen met Labview als met de bij Mindstorms NXT zelf bijgeleverde software NXT-G. Dat is op zich niet verwonderlijk aangezien alle Lego Mindstorms software op Labview gebaseerd is. Na deze exercitie heb ik echter ook het gevoel dat de NXT-G en Standaard Labview software beide even complex zijn in het gebruik. Desalniettemin gaat mijn voorkeur uit naar de Labview software aangezien deze breder inzetbaar is en flexibeler lijkt te zijn.

Een andere conclusie die ik kan trekken is dat deze lichtsensoren eigenlijk niet geschikt zijn voor dit soort experimenten. Ze zijn niet gevoelig genoeg.

Opmerkingen:

  • Mijn light sticks heb ik bij Action gekocht.
  • Labview V 7.1 was gratis te downloaden voor Mindstorm NXT gebruikers. Helaas heb ik meer recentelijk deze download niet meer kunnen vinden.
    Ik ben met de gratis Labview V 7.1 begonnen maar heb meer recentelijk voor een zacht prijsje (€ 30) de Studenten versie V 8.6 bij National Instruments in Nederland kunnen kopen m.b.v. een voucher dat in het boek "Grafisch programmeren met Labview" zat.
  • Daarnaast moet men de Labview NXT toolkit downloaden en installeren om de NXT aan te kunnen spreken vanuit Labview.

Literatuur:

  • Micheal Gasperi; 'LabView for Lego Mindstorms NXT'; NTS Press; 2008; ISBN 9781934891032

  • Michael Gasperi and Phillipe "Philo" Hurbain; 'Extreme NXT'; Apress; 2007; ISBN 9781590598184; p. 217-222.

  • James Floyd Kelly; 'Lego Mindstorms NXT-G Programming Guide'; Apress; 2007; ISBN 9781590598719.

  • Jan Geurts van Kessel; 'Grafisch programmeren met LabView'; Elektuur; 2007; ISBN 97853810316.

Relevante websites:

Opmerkingen:

 

De NXT steen is de hersens van een MINDSTORMS® robot. Het is een intelligente, computer gestuurde LEGO® brick die ervoor zorgt dat een MINDSTORMS robot tot leven komt en verschillende taken kan uitvoeren.

Motor poorten
De NXT heeft drie output poorten om motoren aan te bevestigen - Ports A, B and C

Sensor poorten
De NXT heeft vier input poorten om sensoren aan te bevestigen - Ports 1, 2, 3 and 4.

USB poort
Door een USB kabel aan de USB poort te bevestigen kan men programma's downloaden van de computer naar de NXT )of data uploaden van de NXT naar de PC). Het is ook mogelijk om een wdraadloze Bluetooth verbinding te gebruiken voor uploading en downloading.

Luidspreker
Maak een programma met echte geluiden en luister er naar als je het programma laat draaien.

NXT Knoppen
Oranje knop : On/Enter /Run
Licht grijze pijlen: Om links en recht door NXT menu te bewegen.
Donker grijzer knop: Clear/Go back

NXT Display
De NXT bevat vele display features - de MINDSTORMS NXT Users Guide geeft specifiek informatie voor display iconen en opties.

Technische specificaties

  • 32-bit ARM7 microcontroller
  • 256 Kbytes FLASH, 64 Kbytes RAM
  • 8-bit AVR microcontroller
  • 4 Kbytes FLASH, 512 Byte RAM
  • Bluetooth wireless communication (Bluetooth Class II V2.0 compliant)
  • USB full speed poort (12 Mbit/s)
  • 4 input poorten, 6-wire cable digital platform (Een poort bevat een IEC 61158 Type 4/EN 50 170 compliant expansie poort voor toekomstig gebruik)
  • 3 output poorten, 6-wire cable digital platform
  • 100 x 64 pixel LCD graphischl display
  • Luidspreker - 8 kHz geluids kwaliteit. Geluids kanaal met 8-bit resolutie en 2-16 KHz sample rate.
  • Voedingsbron: 6 AA batterijen

De Licht Sensor is een van de twee sensors die robots zicht geven [De Ultrasoon Sensor is de andere]. De licht sensor maakt het mogelijk om onderscheid te maken tussen licht en donker. De licht sensor kan de licht intensiteit in een kamer meten alsmede de lichtintensiteit van gekleurde oppervlaktes.

 
 
Kinetiek

Voor een 1ste orde reactie geldt dat de snelheid recht evenredig is met de concentratie van een van de reactanten.
Veel vervalreacties (denk bv. aan radioactief verval) voldoen aan een 1ste orde reactie en het concentratieverloop in de tijd kan op de volgend manier afgeleid worden.

Reactie : A --> B

De reactiesnelheid kunnen we dan omschrijven als:

-dCa/dt geeft aan dat C afneemt terwijl t toeneemt.

k is de snelheidsconstante

Op t=0 geldt dat C=C0

Bij verval wordt vaak het begrip halfwaarde-tijd (t½) gehanteerd. Dit is de tijd waarbij de helft van de oorspronkelijke concentratie is omgezet.

Dus bij t½ geldt dat: C½.C0


16-01-2017