NXC sensory: Różnice pomiędzy wersjami

Z Systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 54: Linia 54:
 
<code>SetSensorTouch(IN_1)</code> Do uruchomiania czujnika dotyku użyliśmy innego nić wcześniej polecenia.
 
<code>SetSensorTouch(IN_1)</code> Do uruchomiania czujnika dotyku użyliśmy innego nić wcześniej polecenia.
  
Robot będzie jechać do przodu. Jeśli przycisk zostanie wciśnięty robot cofnie się <code>OnRev(OUT_AC, 75)</code> następnie skręci <code>OnFwd(OUT_A, 75)</code> i ruszy naprzód <code>OnFwd(OUT_AC, 75)</code>. Jak widać zostało to wprowadzone w pętli, dlatego jeśli robot ruszy i będzie kolejna przeszkoda to będzie szukać wciąż wyjścia skręcając.
+
Robot będzie jechać do przodu. Jeśli przycisk zostanie wciśnięty, robot cofnie się <code>OnRev(OUT_AC, 75)</code>, następnie skręci <code>OnFwd(OUT_A, 75)</code> i ruszy naprzód <code>OnFwd(OUT_AC, 75)</code>. Jak widać zostało to wprowadzone w pętli, dlatego jeśli robot ruszy i będzie kolejna przeszkoda to będzie szukać wciąż wyjścia skręcając.

Wersja z 11:26, 27 sty 2014

Czujnik dotyku

Na początek prosty przykład wzięty wprost z dokumentacji.

task main()
{
SetSensor(IN_1,SENSOR_TOUCH);
OnFwd(OUT_AC, 75);
until (SENSOR_1 == 1);
Off(OUT_AC);
}

SetSensor(IN_1,SENSOR_TOUCH) Podajemy do którego portu podłączyliśmy sensor i jakiego jest typu. W naszym przypadku podpięliśmy czujnik dotyku do portu 1.

until (SENSOR_1 == 1)wcześniejsza instrukcja, czyli jazda robota, będzie się odbywała dopóki (until) nie zostanie wciśnięty przycisk na czujniku dotyku (1 oznacza wciśnięty przycisk, 0 nie wciśniety).

Robot będzie jechał do przodu tak długo, dopóki nie zostanie wciśnięty przycisk na czujniku.

task main()
{
SetSensor(IN_1,SENSOR_TOUCH);
while (true)
      {
      if (SENSOR_1 == 1)
      Off(OUT_AC);
        else
       OnFwd(OUT_AC, 75);
      }
}

Robot będzie jechał, jeśli przycisk nie jest wciśnięty, jeśli zostanie wciśnięty robot się zatrzyma. Jak widać jest to pętla, której warunek zawsze jest spełniony, więc jeśli przycisk zostanie zwolniony to robot będzie jechał dalej.

task main()
{
SetSensorTouch(IN_1);
OnFwd(OUT_AC, 75);
while (true)
{
if (SENSOR_1 == 1)
{
OnRev(OUT_AC, 75); Wait(300);
OnFwd(OUT_A, 75); Wait(300);
OnFwd(OUT_AC, 75);
}
}
}

SetSensorTouch(IN_1) Do uruchomiania czujnika dotyku użyliśmy innego nić wcześniej polecenia.

Robot będzie jechać do przodu. Jeśli przycisk zostanie wciśnięty, robot cofnie się OnRev(OUT_AC, 75), następnie skręci OnFwd(OUT_A, 75) i ruszy naprzód OnFwd(OUT_AC, 75). Jak widać zostało to wprowadzone w pętli, dlatego jeśli robot ruszy i będzie kolejna przeszkoda to będzie szukać wciąż wyjścia skręcając.