<< 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); } }