<< Testování programových bloků NXT-G | Teorie - cvičení | >>
Zadání
- otestujte jednoduché programy v prostředí Bricx Commander pro řízení robota z minulého cvičení
- otestujte změny parametrů a vlastní úpravy řídícího kódu
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);
}
}