Difference between revisions of "Krúžok Robotiky na GJH"
| Line 88: | Line 88: | ||
} | } | ||
} | } | ||
| + | |||
| + | Typy senzorov: | ||
| + | |||
| + | SENSOR_TYPE_TOUCH tlakový snímač (tlačidlo) | ||
| + | SENSOR_TYPE_TEMPERATURE tepelný snímač (doplnkový senzor) | ||
| + | SENSOR_TYPE_LIGHT svetelný snímač zo stavebnice RCX | ||
| + | SENSOR_TYPE_ROTATION otáčkový snímač zo stavebnice RCX | ||
| + | SENSOR_TYPE_LIGHT_ACTIVE svetelný NXT snímač v aktívnom režime | ||
| + | SENSOR_TYPE_LIGHT_INACTIVE svetelný NXT snímač v pasívnom režime (dióda nesvieti) | ||
| + | SENSOR_TYPE_SOUND_DB zvukový snímač | ||
| + | SENSOR_TYPE_SOUND_DBA zvukový snímač (iné jednotky) | ||
| + | SENSOR_TYPE_LOWSPEED ultrazvukový snímač | ||
| + | |||
| + | Snímače sa v programe čítajú pomocou "premenných" S1 - S4, ale ultrazvukový snímač | ||
| + | sa číta pomocou SensorUS(S1) - SensorUS(S4). | ||
| + | |||
| + | Na začiatku programu treba snímače nastaviť pomocou príkazu: | ||
| + | |||
| + | SetSensorType(S1,jeden_z_tychto_typov); | ||
| + | |||
| + | Senzory HiTechnic na snímanie IR lotpy, farby a naklonenia, smeru (kompasový) sa nastavujú | ||
| + | ako keby boli ultrazvukový senzor. | ||
Revision as of 13:29, 25 April 2008
Krúžok robotiky sa zaoberá stavbou a programovaním robotov zo stavebníc LEGO NXT. Učíme sa programovací jazyk NXC. V máji sa chceme zúčastniť na turnaji RoboCup Junior Slovensko v Banskej Bystrici a na jeseň na súťaži First LEGO League.
Pozri stránku RoboCup Junior Slovensko, kde sú aj pravidlá súťažných kategórií Záchranár, Futbal a Tanec robotov.
Stretnutie 22.4.2008
- Nainštalovali sme si programovací jazyk NXC s prostredím BricX
(treba stiahnuť súbor test_release.zip, rozbaliť ho a spustiť).
- Napísali sme prvý program pre robota, pomocou ktorého prejde o kúsok vpred:
task main()
{
OnFwd(OUT_AC, 75);
Wait(1000);
Float(OUT_AC);
}
Prvý riadok zapne motory na portoch A a C na rýchlosť 75 (najväčšia rýchlosť je 100). Druhý riadok počká 1 sekundu (ale motory sú už zapnuté, takže robot ide 1s vpred). Tretí riadok vypne motory na portoch A a C.
- Potom si krúžkari sami zmenili program tak, aby robot prešiel do štvorca, použili sme
pritom príkaz:
OnRev(OUT_AC, 75);
ktorý zapne motor v spätnom chode (rýchlosťou 75 - tú môžeme samozrejme meniť).
Videli sme, že bolo zložité vyladiť dĺžku čakania pri zatáčaní a preto sme využili príkaz
RotateMotor(OUT_A, 75, 45);
ktorý spôsobí, že motor na porte A sa otočí len o 45 stupňov a potom zastane - využíva pritom otáčkové snímače, ktoré sú zabudované do motorov.
- Napokon sme na papieri fixkou nakreslili čiaru a naprogramovali sme robota tak, aby
chodil do kola po čiare (keď sme konečne našli správne príkazy :). Tu je výsledný program:
int s;
task main()
{
SetSensorType(S1, SENSOR_TYPE_LIGHT_ACTIVE);
while (1)
{
if (S1 < 48)
{
OnFwd(OUT_A, 75);
Float(OUT_C);
}
else
{
OnFwd(OUT_C, 75);
Float(OUT_C);
}
}
}
Program najskôr nastaví typ senzora na porte 1 (čiže S1) na aktívny svetelný senzor. Potom opakuje donekonečna (lebo podmienka 1 je vždy splnená) jeden jednoduchý test: ak je intenzita odrazeného svetla menšia ako 45, robot je na čiernej čiare a má zatáčať vpravo. V opačnom prípade je robot na bielom papieri a má zatáčať vľavo. Takto robot sleduje hranu čiary medzi bielou a čiernou... Tento program treba prispôsobiť podľa toho, aká tmavá je čiara (hodnota 48 v podmienke) a podľa toho, na ktorých portoch má robot pripojené motory a ktorým smerom sú otočené (t.j. vymeniť časti podmienok).
Spoločné stretnutia pre všetkých zaújemcov budú pokračovať každý týždeň v utorok o 14.
Stretnutie 24.4.2008
int s;
task main()
{
SetSensorType(S1, SENSOR_TYPE_LOWSPEED);
ClearScreen();
while(1)
{
ClearScreen();
NumOut(10,10,SensorUS(S1));
Wait(500);
}
}
Typy senzorov:
SENSOR_TYPE_TOUCH tlakový snímač (tlačidlo) SENSOR_TYPE_TEMPERATURE tepelný snímač (doplnkový senzor) SENSOR_TYPE_LIGHT svetelný snímač zo stavebnice RCX SENSOR_TYPE_ROTATION otáčkový snímač zo stavebnice RCX SENSOR_TYPE_LIGHT_ACTIVE svetelný NXT snímač v aktívnom režime SENSOR_TYPE_LIGHT_INACTIVE svetelný NXT snímač v pasívnom režime (dióda nesvieti) SENSOR_TYPE_SOUND_DB zvukový snímač SENSOR_TYPE_SOUND_DBA zvukový snímač (iné jednotky) SENSOR_TYPE_LOWSPEED ultrazvukový snímač
Snímače sa v programe čítajú pomocou "premenných" S1 - S4, ale ultrazvukový snímač sa číta pomocou SensorUS(S1) - SensorUS(S4).
Na začiatku programu treba snímače nastaviť pomocou príkazu:
SetSensorType(S1,jeden_z_tychto_typov);
Senzory HiTechnic na snímanie IR lotpy, farby a naklonenia, smeru (kompasový) sa nastavujú ako keby boli ultrazvukový senzor.
