<< Grafické programování v NXT-G | Kurzy - Teorie | Programování NC strojů >>

Jazyk NXC

Ovládání motorů

task main()
  {
       OnFwd(OUT_BC, 75);  // Motory BC vpřed, výkon 75%
       Wait (2000);        // Prodleva 4 sekundy
       Off(OUT_BC);        // Motory B,C vypnout
       OnRev(OUT_BC, 75);  // Motory BC vzad, výkon 75%
       Wait(2000);         // Prodleva 4 sekundy
       Off(OUT_BC);        // Motory B,C vypnout
   }

Použití ultrazvukového senzoru

task main(){
  SetSensorUltrasonic(IN_4);       //aktivuj UZ senzor na portu 4
  while(true){                     //pokud je UZ senzor připojen stále opakuj
    Wait(500);                     //čekej 0,5 sekundy na načtení vzdálenosti	
    ClearScreen();                 //smaž displej
    NumOut(0, 0, SensorUS(IN_4));  //zobraz na displeji aktuální vzdálenost
    if(SensorUS(IN_4) < 20){       //pokud je překážka blíž než 20 cm
       OnRev(OUT_BC, 100);         //couvej na plný plyn
    }
    else {                         //jinak
        OnFwd(OUT_BC, 50);         //jeď na půl plynu vpřed
    }
  }
}

Použití podprogramů

void jed_vpred(int speed) { //podprogram s parametrem pro jízdu vpřed
  OnFwd(OUT_BC, speed);     //jeď vpřed rychlostí předanou parametrem speed
}
void jed_vzad(int speed) { //podprogram s parametrem pro jízdu vzad
  OnRev(OUT_BC, speed);    //jeď vzad rychlostí předanou parametrem speed
}

task main() {              //hlavní program
  while(true) {            //opakuj trvale
    jed_vpred(50);         //vykonej podprogram pro jízdu vpřed
    Wait(1000);            //další příkaz vykonej za 1 sekundu
    jed_vzad(50);          //vykonej podprogram pro jízdu vzad
    Wait(1000);            //další příkaz vykonej za 1 sekundu
  } 
}

Použití barevného senzoru

#define COLORSENSOR SENSOR_3 
                             //definice proměnné pro hodnotu ze senzoru na vstupu 3
void jed_vpred() {           //podprogram pro jízdu vpřed
  OnFwd(OUT_BC, 75);
}

void jed_vzad() {            //podprogram pro jízdu vzad
  OnRev(OUT_BC, 75);
}

void zahni_vlevo() {         //podprogram pro jízdu vlevo
  OnFwd(OUT_C, 100);
}

bool bila() {                //podprogram vrací TRUE po zjištění bílé barvy
  return (COLORSENSOR > 3);
}

void zobraz_barvu_na_displeji() { //podprogram zobrazí číselnou hodnotu barvy
  NumOut(0, LCD_LINE2, COLORSENSOR);
}

void aktivuj_color_senzor(){ //aktivace barevného senzoru na vstupu 3
  SetSensorColorFull(IN_3);
}

task main() {                //hlavní program
  aktivuj_color_senzor();
  while(true) {
    zobraz_barvu_na_displeji();
    while(bila()) {
      jed_vpred();
    }
    jed_vzad();
    Wait(300);
    jed_vlevo();
    Wait(300);
  }
}

Odkazy