Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Ohjeita

Jos luette antureita heti ohjelman alussa, niin alkuun kannattaa laittaa noin sekunnin odotus, jotta anturien arvot ehtivät asettua.

...

Tehtävä 1.
Tee ohjelma, joka saa robotin ajamaan eteenpäin 75% teholla sekunnin ajan, jonka jälkeen moottorit pysäytetään.

...

Tehtävä 4.
a) Tehkää ohjelma, jossa robotti ajaa yhteen suuntaan, jonka jälkeen se kääntyy 180 astetta ja , palaa lähtöpaikkaansa, kääntyy 180 astetta ja jatkaa samaa uudestaan.
b) Lisätkää ohjelmaan ominaisuus, jossa se ilmoittaa kuinka monta kertaa se on kääntynyt (joko näytölle tai debugPrint:in avulla).

Tehtävä 5.
a) Tehkää ohjelma, jossa robotti käynnistyy kun taputatte käsiänne (painatte kosketusanturia) ja myös pysähtyy kun taputatte käsiänne (painatte kosketusanturia).   flipflop muistaa tilan eli oliko robotti liikkeessä vai pysähdyksissä.
b) Lisätkää ohjelmaan ominaisuus, että robotti ensin hidastaa ja lopulta pysähtyy, jos jokin esine tulee liian lähelle. Käyttäkää etäisyysanturia tähän.

Tehtävä 6.
Tehkää ohjelma, jossa robotti lähtee liikkeelle kun taputatte käsiänne (painat kosketusanturia) ja hidastaa kun pallo tulee vastaan. Robotti pysähtyy kun kosketusanturi osuu palloon. Nappaa pallon kyytiin ja palaa lähtöpaikkaan (tunnistetaan valoanturilla), pysähtyy ja vapauttaa pallon.

Tehtävä 7.
a) Tehkää ohjelma, jossa robotti seuraa lattialle asetettua teippiä. Arvostelu 1.10 pistettä saavutetusta kiertoajasta riipuen.ajatte robottia sekunnin eteenpäin. Tehkää robotin ohjaus omaan funktioon. Eli task main():iin ei muuta koodia kuin funktion kutsu.
b) Lisätkää ohjelmaan funktio, joka ottaa moottorin nopeuden ja ajettavan ajan parametrina sisään funktioon. Käyttäkää niitä.

Tehtävä 8.
Tehkää tehtävästä 6 uusi versio, missä on omissa funktioissaan seuraavat toiminnot:

  • eteenpäin ajaminen, kunnes pallo tulee vastaan
  • pallon nappaaminen kyytiin
  • kääntyminen 180 astetta
  • loppupaikkaan palaaminen

Muuten ohjelma toimii samalla tavalla kuin tehtävässä 6.

Tehtävä 9.
Tehkää ohjelma, jossa robotti ajaa 40000 pulssia (muista pulssilaskurin maksimiarvo on 32767, eli tapahtuu moottorin laskurin ylivuoto).
Vihje: tutustu nMotorEncoder-muuttujaan. (Help>Open Help>NXT Functions>Motors)

Tehtävä 10.
a) Tehkää ohjelma, joka tulostaa moottorien nopeuden debugPrint:in avulla. Kopioikaa tulostukset Tehtävä 8.
a) Tulostakaa moottorien nopeus debugPrint()-funktiolla ja kopioikaa data Exceliin ja piirtäkää kuvaaja siitä. Nopeuden saatte laskettua nMotorEncoder:in arvosta.
Vihje: tutustu nMotorEncoder-muuttujaan. (Help>Open Help>NXT Functions>Motors)
Huom. Joudutte ottamaan Super User -tilan päälle (Window>Menu Level>Super User), jotta pääsette debug-ikkunaan (Robot>Debug Windows>Debug Stream) käsiksi.
b) Testatkaa moottoreiden synkronointikäsky nSyncedMotors, sekä moottorien PID-säätö. Sen voi laittaa päälle koodissa tai sitten Motors and Sensors setup -ikkunasta. Tehkää sama exceliin siirto a)-kohdassa. Mitä havaitsette?

Tehtävä 911.
Tee Tehkää ohjelma, jossa robotti tekee kolmea eri tehtäväätoimintoa, riippuen siitä mikä heräte robotille annetaan. Herätteenä toimii sormen napsutus (tai kosketussensori). Tehkää toiminnot omiin funktioihinsa.

  • Yhdellä napsautuksella robotti pyörähtää puoli kierrosta vasemmalle.
  • kahdella Kahdella napsautuksella robotti pyörähtää puoli kierrosta oikealle.
  • kolmella Kolmella napsautuksella robotti ajaa kymmenen senttiä suoraan.

Wiki Markup
Tehtävä 10.
-Tee ohjelma, joka lukee etäisyyssensorin arvoja ns. raakadatana SensorRaw\[\]:n avulla. Tehkää funktio joka tallentaa arvoja int-taulukkoon ja toinen funktio, jolla voidaan hakea keskiarvo halutulta ajalta (tyyliin keskiarvo viimeisistä viidestä arvosta).-

Ohjeita

  • sekunnin suoraan.

Tehtävä 12.
Tehkää ohjelma, joka seuraa lattialle asetettua suoraa teippiä (pituus n.60cm) ja kääntyy teipin päässä. Robotin tulee seurata "rataa" neljä kertaa päästä päähän alle 20 sekunnissa. 

Tehtävä 13.
Tehkää ohjelma, jossa toteutatte omassa funktiossaan parametrina annetun pituisen odotuksen ajastimen avulla. Siis toteutatte oman wait1Msec() -tyylisen funktion. Sama toiminnallisuus, mutta oma toteutus.

Tehtävä 14.

Testaa ohjelman Neljästä askeleesta koostuva sekvenssiohjelma toiminta. Viritä ohjelma siten, että se ajaa 60 cm:n teipin päästä päähän 17 sekunnissa.

...

.Tehtävä .
Tee ohjelma, joka lukee etäisyyssensorin arvoja ns. raakadatana SensorRaw[]:n avulla. Tehkää funktio joka tallentaa arvoja int-taulukkoon ja toinen funktio, jolla voidaan hakea keskiarvo halutulta ajalta (tyyliin keskiarvo viimeisistä viidestä arvosta).

Tehtävä ?.
Tehkää ohjelma, jossa robotti seuraa lattialle asetettua teippiä. Arvostelu ? pistettä saavutetusta kiertoajasta riipuenJos luette antureita heti ohjelman alussa, niin alkuun kannattaa laittaa noin sekunnin odotus, jotta anturien arvot ehtivät asettua.