info-mindstorms

nxc tutorial



inleiding
het eerste programma
commentaar
constanten
repeat
variabelen
while
if-else
random
sensoren
nxt display
nxt knoppen
sub taken
meedere taken

nxt knoppen


dit is weer het zelfde programma als de vorige keer alleen kunt u in dit programmatje de snelheid en draairichting instellen met de knopjes op de nxt.

#define afstand 25
int opstakels, ultrasoon_sensor, draairichting, snelheid, menu;
task main()
{
snelheid = 75;
SetSensorUltrasonic(IN_4);
while(true)
{
if(SensorUS(IN_4)< afstand)
{
opstakels += 1;
if(draairichting==0)
{
OnFwd(OUT_B,snelheid);
OnRev(OUT_C,snelheid);
}
else if(draairichting==1)
{
OnFwd(OUT_C,snelheid);
OnRev(OUT_B,snelheid);
}
else if(draairichting==2)
{
if(Random(3)==0)
{
OnFwd(OUT_B,snelheid);
OnRev(OUT_C,snelheid);
}
else
{
OnFwd(OUT_C,snelheid);
OnRev(OUT_B,snelheid);
}
}
until(SensorUS(IN_4));
Wait(1000);
}
if(SensorUS(IN_4)>afstand)
{
OnFwd(OUT_BC,snelheid);
}
ClearScreen();
TextOut(10, LCD_LINE1,"opstakels:");
NumOut(10, LCD_LINE2, opstakels);
TextOut(10, LCD_LINE3,"ultarasoon sensor:");
ultrasoon_sensor = SensorUS(IN_4);
NumOut(10, LCD_LINE4, ultrasoon_sensor);
TextOut(10, LCD_LINE5,"snelheid:");
NumOut(10, LCD_LINE6,snelheid);
TextOut(10, LCD_LINE7,"draairichting:");
NumOut(10, LCD_LINE8, draairichting);
NumOut(80,LCD_LINE1, menu);
if(ButtonPressed(BTNCENTER,1))
{
menu += 1;
}
if(menu==0)
{
LineOut(1,25,4,25);
if(ButtonPressed(BTNLEFT,1))
{
snelheid -= 5;
}
if(ButtonPressed(BTNRIGHT,1))
{
snelheid += 5;
}
}
if(menu==1)
{
LineOut(1,10,4,10);
if(ButtonPressed(BTNLEFT,1 ))
{
draairichting -= 1;
}
if(ButtonPressed(BTNRIGHT,1))
{
draairichting += 1;
}
if(draairichting==0)
{
TextOut(15, LCD_LINE8, "links");
}
if(draairichting==1)
{
TextOut(15, LCD_LINE8, "rechts");
}
if(draairichting==2)
{
TextOut(14, LCD_LINE8, "toeval");
}
}
if(menu>=2)
{
menu = 0;
}
Wait(250);
}
}

nu zien we een programma waarmee je gebruik kan maken van de 3 nxt knoppen, dit doen we met ButtonPressed hier achter zetten we tussen hakjes welke knop, BTNLEFT, BTNCENTERen BTNRIGHT, het getal achter de komma zegt of hij ingedrukt moet zijn of juist niet, 0 betekent dat hij niet ingedrukt moet zijn, 1 dat hij wel ingedrukt moet zijn, deze zullen we het meest gebruiken.