Ohjelmoinnin monimutkaisuus
Robotit voidaan suunnitella suorittamaan monenlaisia tehtäviä. Jotkut näistä tehtävistä ovat hyvin yksinkertaisia, kuten automaattioven avaaminen. Toiset voivat olla paljon monimutkaisempia, kuten kaupunkiympäristössä liikkuva autonominen auto. Riippumatta siitä, kuinka monimutkainen tehtävä on, se voidaan jakaa yksinkertaisempiin tehtäviin. Näitä tehtäviä kutsutaan käyttäytymismuodoiksi ja ne ovat robotiikan ohjelmoinnin rakennuspalikoita.
Käyttäytyminen on tapa, jolla robotti toimii, ja sen monimutkaisuus voi vaihdella riippuen siitä, miten robotti on rakennettu tai ohjelmoitu. Yksinkertaisessa mobiilirobotissa, kuten VEX V5 Speedbotissa, on vain kaksi moottoria, kun taas Clawbotissa on neljä moottoria, mukaan lukien kaksi lisämoottoria käsivarrelle ja kynsille. Molempien robottien käyttäytymiseen kuuluu näiden moottoreiden kääntäminen asetettujen tavoitteiden saavuttamiseksi. Lisäämällä suunnittelua ja ohjelmointia voit aloittaa tästä yksinkertaisesta käytöksestä ja tehdä monimutkaisempia toimintoja.
Alla on luettelo robottien toiminnoista, jotka kasvavat yksinkertaisesta monimutkaiseksi sekä Speedbotille että Clawbotille. Suluissa näet yksinkertaisemmat käytökset, jotka muodostavat jokaisen.
-
Pyöritä tiettyyn porttiin määritettyä moottoria
-
Aja eteenpäin (pyöritä sekä vasenta että oikeaa moottoria voimansiirron avulla)
-
Aja 5 metriä (aja eteenpäin, sitten pysähdy)
-
Tartu kaukaiseen esineeseen (matka 2 metriä, tartu siihen kiertämällä kynsimoottoria)
-
Hae esine ja aseta se korkealle hyllylle (tarra kaukaisesta esineestä, käänny ympäri, matkusta 2 metriä, käytä käsivarsi- ja kynsimoottoreita esineen nostamiseen ja vapauttamiseen)
Voit nähdä, kuinka voit purkaa minkä tahansa monimutkaisemman käyttäytymisen yksinkertaisemmiksi. Niistä tulee minkä tahansa monimutkaisen tehtävän rakennuspalikoita.
Opettajan vinkkejä
-
Ohjaa oppilaita jakamaan monimutkaiset robotin käytökset pienempiin, yksinkertaisiin vaiheisiin. Tämä prosessi tunnetaan hajoamisena.
-
Selitä opiskelijoille, että monimutkaisen käyttäytymisen hajottaminen yksinkertaisempiin tehtäviin on tärkeä osa suunnittelua ja ohjelmointia.
-
Anna oppilaiden toteuttaa itsenäisiä projektejaan, jos luokka-aikaa on tarpeeksi.
Laajenna oppimistasi
Jos haluat yhdistää tämän toiminnon laskennalliseen ajatteluun ja hajotukseen, pyydä oppilaita kartoittamaan tai luetteloimaan käyttäytymisvaiheet, jotka robotti suorittaisi suorittaakseen seuraavat toiminnot:
-
Tehtävä yksi: Aja 1 metri ja palaa lähtöpaikkaan.
-
Tehtävä kaksi: Käännä laatikko, joka sijaitsee 60 cm robotin edessä.
-
Tehtävä 3: Nosta esine, ravista sitä, matkusta 30 cm, aseta esine maahan ja palaa lähtöpisteeseen.
Motivoi keskustelua
Opiskelijoiden tulee jakaa käyttäytymisvaiheet, jotka he ovat luetelleet yllä olevan Extend Your Learning -kohdan aktiviteetteihin. Jokainen seuraavista kysymyksistä voidaan esittää minkä tahansa tai kaikkien toimintojen jälkeen.
K: Mitkä vaiheet tai käyttäytymistavat kukin ryhmä listasi suorittaakseen tämän toiminnon onnistuneesti?
A: Opiskelijoiden on otettava huomioon robotin matkan pituus ja käsivarren liike ja nopeus sen lisäksi, että he luettelevat yksinkertaiset robottikäyttäytymiset, jotka vaaditaan toiminnon tai tehtävän suorittamiseen (ajo eteenpäin, taaksepäin, kääntyminen vasemmalle tai oikea). Opiskelijoiden tulee luoda käyttäytymisluettelonsa siten, että jokainen vaihe on edustettuna.
K: Mitä yhtäläisyyksiä ja eroja tämän tehtävän ratkaisujen (vaiheluetteloiden) välillä oli?
A: Opiskelijat tekevät vertailuja ratkaisujensa perusteella. Venn-kaavio voi olla hyvä tapa järjestää oppilaiden jakamat vaiheet. Jos suurin osa oppilaista nimeää tietyn vaiheen, lisää se keskelle, jossa ympyrät menevät päällekkäin. Jos vain yksi tai muutama oppilas nimeää tietyn vaiheen, lisää se yhteen tai toiseen piiriin. Kun se on tehty, keskellä olevien vaiheiden tulee olla luotettavasti yksinkertaisia, eikä niitä voida hajottaa enempää, kun taas vain yhdessä ympyrässä luetellut vaiheet eivät todennäköisesti ole niin yksinkertaisia kuin ne voisivat olla. Tämä malli saattaa kuitenkin kääntyä päinvastaiseksi riippuen luokan kokemuksesta monimutkaisen käyttäytymisen jakamisesta yksinkertaisimpiin vaiheisiin.
K: Oliko onnistuneissa ratkaisuissa yhtäläisyyksiä? Jos on, mitä ne olivat?
A: Menestyneimmät ratkaisut olivat ne, jotka sisälsivät eniten yksityiskohtia ja tarkkuutta. Robotti on ohjelmoitu kielellä, jolla on hyvin erityisiä käyttäytymismalleja, jotka on jaettu pienimpiin osiin. Saattaa esimerkiksi olla yleistä sanoa, että robotti "matkaa 1 metrin ja palaa lähtöpisteeseen", mutta korkean tason kuvaus ei ole helppo kääntää ohjelmoitaessa. Sinun on jaettava se edelleen: ajaa eteenpäin 1 metrin, kääntyy 180 astetta ja ajaa eteenpäin 1 metrin. Mutta sekään ei ehkä ole riittävän tarkkaa ja tarvitset tämän tason tarkkuutta ollaksesi ohjelmointivalmis: aseta ajo- ja kääntönopeudet 40 %:iin, aja eteenpäin 1 metri, odota 3 sekuntia, käänny vasemmalle 180 astetta, odota 1 sekunti , ja aja eteenpäin 1 metri. Mitä pidemmälle hajotamme monimutkaisia käyttäytymismalleja tehdäksemme niistä ohjelmointivalmiita robotin käyttäytymismalleja, sitä paremmin olemme valmiita saamaan projektin päätökseen.