inleiding |
het eerste programma |
commentaar |
constanten |
repeat |
variabelen |
while |
if-else |
random |
sensoren |
nxt display |
nxt knoppen |
sub taken |
meedere taken |
u zult het al gemist hebben, als u een programmatje gemaakt hebt kun je de variabelen en de waardes die de sensoren geven niet zien, gelukkig kunt u die wel laten zien op de display van de nxt.
dit programmatje voorkomt dat ons autotje tegen iets aan rijd, verder slaat hij op hoeveel dingen hij gezien heeft.
#define afstand 25
int opstakels, ultrasoon_sensor;
task main()
{
SetSensorUltrasonic(IN_4);
while(true)
{
if(SensorUS(IN_4)< afstand)
{
OnFwd(OUT_B,100);
OnRev(OUT_C,100);
until(SensorUS(IN_4)>afstand)
OnFwd(OUT_B,100);
OnRev(OUT_C,100);
Wait(1000);
opstakels += 1;
}
if(SensorUS(IN_4)>afstand)
{
OnFwd(OUT_BC,100);
}
ClearScreen();
TextOut(0, LCD_LINE1,"opstakels:");
NumOut(0, LCD_LINE2, opstakels);
TextOut(0, LCD_LINE4,"ultarasoon sensor:");
ultrasoon_sensor = SensorUS(IN_4);
NumOut(0, LCD_LINE5, ultrasoon_sensor);
}
}
we zien nu het commando textout. hiermee kunnen we tekst op het beeldscherm zetten. we gaan dit stukje eens beter bekijken, het eerste cijfer wat je ziet betekent het inspringen op de x as, op de tweede plaats zien we de lijn, de nxt display heeft 8 lijnen, je zet het neer als LCD_LINE en dan de nummer van de lijn, daarna krijgen we de tekst, die zet je tussen aanhalingstekens. het zelfde werkt het met NumOut, die gebruiken we voor een getal. let er op dat als je een variabele wil laten zien dat je dezen niet tussen aanhallingstekens moet zeten. hierna zien we ClearScreen(): dit betekent dat het hele scherm word leeg gemaakt. met het commando ClearLine("lijn"); woord er maar 1 lijn leeggemaakt. iets wat je op het beeldscherm neerzet blijft daar de hele tijd staan.
dit is een voorbeeld van een bekent probleem: eerst geeft een sensor de waarde 100 aan, later geeft hij 10 aan, Maar de 3e nul blijft staan en er blijft toch 100 te staan.
hier volgen nog meer comando's voor de nxt display.
vierkant:
RectOut("x as"," y as", "breedte", "hoogte");
circel:
CircleOut("x as", "y as", "radius(straal)");
lijn:
LineOut("1e x as", "1e y as", "2e x as", "2e y as");
punt:
PointOut("x as", "y as");
task main()
{
while(true)
{
RectOut(2, 2, 94, 59);
CircleOut(50, 30, 25);
CircleOut(60, 40, 5);
CircleOut(40, 40, 5);
CircleOut(50, 20, 7);
PointOut(50, 35);
Wait(1000);
ClearScreen();
RectOut(2, 2, 94, 59);
CircleOut(50, 30, 25);
LineOut(60,20, 40, 20);
LineOut(55, 35, 62, 42);
LineOut(55,42, 62, 35);
LineOut(35, 35, 42, 42);
LineOut(35, 42, 42, 35);
Wait(1000);
ClearScreen();
}
}