Voimansiirto#
Johdanto#
Voimansiirtoon kuuluvat pyörät ja moottorit, jotka ohjaavat robotin ajamista ja kääntymistä. Voimansiirtoja löytyy esimerkiksi Code Base 2.0:sta, Super Carista tai mukautetuista roboteista.
Voimansiirrot käyttävät aivojen inertia-anturia törmäysten havaitsemiseen ja robotin tarkan liikkumisen ja kääntymisen auttamiseen. Jokaisen projektin alussa voimansiirto kalibroi inertia-anturin automaattisesti. Pidä robottia paikallaan noin 2 sekuntia kalibroinnin aikana, jotta robotti voi liikkua ja kääntyä oikein.
Voimansiirron koodaamiseen on monia tapoja. Alla on luettelo kaikista voimansiirron lohkoista:
Toiminnot — Liikuta ja käännä robottia.
drive — Liikuttaa robottia eteen- tai taaksepäin ikuisesti.
drive for — Liikuttaa robottia eteen- tai taaksepäin tietyn matkan.
aja kunnes — Liikuttaa robottia eteen- tai taaksepäin, kunnes silmätunnistin havaitsee esineen tai robotti havaitsee törmäyksen.
käännös — Kääntää robottia vasemmalle tai oikealle pysyvästi.
käännä astetta — Kääntää robottia vasemmalle tai oikealle tietyn astemäärän.
käänny suuntaa — Kääntää robotin tiettyyn suuntaan -359 - 359 astetta. Robotti kääntyy lyhyimpään suuntaan saavuttaakseen kohdesuunnan.
käännä rotaatioon — Kääntää robotin tiettyyn rotaatioon.
lopeta ajaminen — Pysäyttää robotin liikkeen.
Asetukset — Säädä voimansiirron asetuksia.
set drive velocity — Kertoo robotille, kuinka nopeasti sen tulisi ajaa.
aseta kääntymisnopeus — Kertoo robotille, kuinka nopeasti sen tulee kääntyä.
set drive stopping — Kertoo, miten robotti pysäyttää liikkumisen: jarruttamalla, rullaamalla tai pitämällä paikallaan.
set drive timeout — Asettaa, kuinka monta sekuntia robotti yrittää suorittaa liikkeen loppuun.
aseta ajosuunta — Muuttaa robotin nykyisen suunnan uuteen suuntaan.
aseta aseman pyörimissuunta — Muuttaa robotin nykyisen pyörimissuunnan uudeksi pyörimissuunnaksi.
Arvot — Tarkista liikkeen tila.
ajo valmis — Ilmoittaa, onko robotti lopettanut liikkumisen.
drive heading — Ilmoittaa robotin nykyisen suunnan 0–359 astetta.
drive rotation — Ilmoittaa robotin nykyisen pyörimisnopeuden.
ajonopeus — Ilmoittaa robotin ajonopeuden prosentteina välillä -100 % - 100 %.
Toiminnot#
ajaa#
Ajo-pinolohko liikuttaa robottia eteen- tai taaksepäin loputtomasti. Robotti jatkaa liikkumista, kunnes sille annetaan jokin muu toiminto, kuten kääntyminen tai pysähtyminen.
aja [eteenpäin v]
Parametrit |
Kuvaus |
|---|---|
suunta |
Robotin liikesuunta: eteenpäin tai taaksepäin. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
aja [eteenpäin v]
odota (2) sekuntia
pysäytä ajaminen
ajaa kohti#
Aja pinoa -lohko liikuttaa robottia eteen- tai taaksepäin tietyn matkan. Projekti odottaa, kunnes robotti on liikkunut, ennen kuin pinon seuraava lohko suoritetaan.
aja [eteenpäin v] [100] [mm v] ▶
Parametrit |
Kuvaus |
|---|---|
suunta |
Robotin liikesuunta: eteenpäin tai taaksepäin. |
etäisyys |
Robotin ajama matka. Tämä voi olla kokonaisluku tai desimaaliluku. |
yksikkö |
Etäisyyden yksikkö: mm (millimetrit) tai tuumat. |
ja älä odota |
Valitse nuoli (▶) laajentaaksesi lohkon tekstiin äläkä odota, jolloin pinon seuraava lohko suoritetaan heti. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Drive back and forth.]
aja [eteenpäin v] [100] [mm v] ▶
aja [taaksepäin v] [4] [tuumaa v] ▶
ajaa kunnes#
Aja kunnes -pino-lohko liikuttaa robottia eteen- tai taaksepäin, kunnes silmäanturi havaitsee esineen tai robotti havaitsee törmäyksen.
aja [eteenpäin v] kunnes [objekti v] ▶
Parametrit |
Kuvaus |
|---|---|
suunta |
Robotin liikesuunta: eteenpäin tai taaksepäin. |
kunto |
Robotin pysäyttävä ehto: esine tai kaatuminen. |
ja älä odota |
Valitse nuoli (▶) laajentaaksesi lohkon tekstiin äläkä odota, jolloin pinon seuraava lohko suoritetaan heti. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Turn right after a crash.]
aja [eteenpäin v] kunnes [törmäys v] ▶
käänny [oikealle v] (90) astetta ▶
käännös#
Käännös-pinolohko kääntää robottia vasemmalle tai oikealle loputtomiin. Robotti jatkaa kääntymistä, kunnes sille annetaan jokin muu toiminto, kuten ajaminen pysähtymiseen.
käänny [oikealle v]
Parametrit |
Kuvaus |
|---|---|
suunta |
Robotin kääntymissuunta: vasemmalle tai oikealle. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Turn right and left, then stop.]
käänny [oikealle v]
odota [2] sekuntia
käänny [vasemmalle v]
odota [2] sekuntia
pysäytä ajaminen
käänny#
Pinon käännöksen lohko kääntää robottia vasemmalle tai oikealle tietyn astemäärän. Käännös on suhteessa robotin nykyiseen sijaintiin. Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin pinon seuraava lohko suoritetaan.
käänny [oikealle v] (90) astetta ▶
Parametrit |
Kuvaus |
|---|---|
suunta |
Robotin kääntymissuunta: vasemmalle tai oikealle. |
kulma |
Robotin kääntymisasteiden määrä. Tämä voi olla kokonaisluku tai desimaaliluku. |
ja älä odota |
Valitse nuoli (▶) laajentaaksesi lohkon tekstiin äläkä odota, jolloin pinon seuraava lohko suoritetaan heti. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Turn right then left.]
käänny [oikealle v] (90) astetta ▶
käänny [vasemmalle v] (90) astetta ▶
käänny otsikkoon#
Suunta on suunta, johon robotin aivot osoittavat, mitattuna asteina. Käänny suuntaan -pino-lohko kääntää robotin tiettyyn suuntaan -359 ja 359 asteen välillä. Robotti kääntyy lyhyimpään suuntaan saavuttaakseen kohdesuunnan.
Lähtösuunta on 0 astetta.

Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin pinon seuraava lohko suoritetaan.
käänny suuntakulmaan [90] astetta ▶
Parametrit |
Kuvaus |
|---|---|
otsikko |
Robotin suunta kokonaislukuna väliltä -359 - 359 astetta. |
ja älä odota |
Valitse nuoli (▶) laajentaaksesi lohkon tekstiin äläkä odota, jolloin pinon seuraava lohko suoritetaan heti. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Turn to face the cardinal directions.]
käänny suuntakulmaan [90] astetta ▶
odota [1] sekuntia
käänny suuntakulmaan [180] astetta ▶
odota [1] sekuntia
käänny suuntakulmaan [270] astetta ▶
odota [1] sekuntia
käänny suuntakulmaan [0] astetta ▶
kääntyä pyörimään#
Käänny rotaatioon -pino-lohko kääntää robotin tiettyyn rotaatioon.
Rotaatio ilmaisee robotin kääntymisnopeuden asteina. Projektin alussa rotaatioarvoksi asetetaan 0 astetta. Rotaatio voidaan asettaa myös set drive rotation -lohkolla.
Rotaatioarvot ovat absoluuttisia. Tämä tarkoittaa, että käännöksen suunta riippuu robotin nykyisestä pyörimisestä. Oikealle kääntäminen lisää pyörimistä ja vasemmalle kääntäminen vähentää niitä.
Jos esimerkiksi robotti aloittaa 0 asteen kulmasta ja käännyt 720 asteen kierrokseen, se kääntyy kahdesti oikealle. Jos sitten käännyt 360 astetta, se kääntyy kerran vasemmalle, koska 360 on pienempi kuin 720.

Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin pinon seuraava lohko suoritetaan.
käänny kierrokseen (90) astetta ▶
Parametrit |
Kuvaus |
|---|---|
kierto |
Robotin kääntymiskulma asteina. Tämä voi olla kokonaisluku. |
ja älä odota |
Valitse nuoli (▶) laajentaaksesi lohkon tekstiin äläkä odota, jolloin pinon seuraava lohko suoritetaan heti. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Make one full turn to the right.]
käänny kierrokseen [360] astetta ▶
[Make another full turn to the right.]
käänny kierrokseen [720] astetta ▶
[Make one full turn to the left, returning to 360 degrees.]
käänny kierrokseen [360] astetta ▶
lopeta ajaminen#
Ajon pysäytys -pino-lohko pysäyttää robotin liikkeen.
pysäytä ajaminen
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
aja [eteenpäin v]
odota (2) sekuntia
pysäytä ajaminen
Asetukset#
asetettu ajonopeus#
Aseta ajonopeus -pino-lohko kertoo robotille, kuinka nopeasti sen tulisi ajaa. Korkeampi prosenttiosuus saa robotin ajamaan nopeammin ja matalampi prosenttiosuus hidastaa sitä.
Jokainen projekti alkaa robotin ajamalla oletusarvoisesti 50 % nopeudella.
Huomautus: Suurempi nopeus saa robotin ajamaan nopeammin, mutta se voi olla epätarkempi. Pienempi nopeus tekee robotista hitaamman, mutta tarkemman.
aseta ajonopeus (50) %
Parametrit |
Kuvaus |
|---|---|
nopeus |
Ajonopeus 0–100 %. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Drive at different velocities.]
aja [eteenpäin v] [100] [mm v] ▶
odota [1] sekuntia
[Drive slow.]
aseta ajonopeus (20) %
aja [eteenpäin v] [100] [mm v] ▶
odota [1] sekuntia
[Drive fast.]
aseta ajonopeus (100) %
aja [eteenpäin v] [100] [mm v] ▶
asetettu kääntymisnopeus#
Asetettu kääntymisnopeus -pino-lohko kertoo robotille, kuinka nopeasti sen tulee kääntyä. Korkeampi prosenttiosuus saa robotin kääntymään nopeammin ja matalampi prosenttiosuus hitaammin.
Jokainen projekti alkaa robotin pyöriessä oletusarvoisesti 50 %:n nopeudella.
Huomautus: Suurempi nopeus saa robotin kääntymään nopeammin, mutta se voi olla epätarkempi. Pienempi nopeus saa robotin kääntymään hitaammin, mutta se on tarkempi.
aseta kääntymisnopeus [50]%
Parametrit |
Kuvaus |
|---|---|
nopeus |
Kääntymisnopeus 0–100 %. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Turn at different velocities.]
käänny [oikealle v] [180] astetta ▶
odota [1] sekuntia
[Turn fast.]
aseta kääntymisnopeus [100]%
käänny [oikealle v] [180] astetta ▶
aseta taajuusmuuttajan pysäytys#
Aseta ajaminen pysähtyen -pino-lohko määrittää, miten robotti pysähtyy: jarruttamalla, rullaamalla vai pitämällä.
aseta ajon pysäytys [jarru v]
Parametrit |
Kuvaus |
|---|---|
pysäyttävä käyttäytyminen |
Näin robotti pysähtyy:
|
Jos tätä lohkoa ei käytetä, robotti käyttää jarrua pysähtyessään.
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Drive, then coast to a stop.]
aseta ajonopeus (100) %
aseta ajon pysäytys [liuku v]
aja [eteenpäin v]
odota [2] sekuntia
pysäytä ajaminen
aseta aseman aikakatkaisu#
Ajoaikakatkaisun asetus -pinolohko asettaa, kuinka monta sekuntia robotti yrittää suorittaa liikkeen loppuun. Jos robotti ei pysty suorittamaan sitä tässä ajassa, se lopettaa yrittämisen ja siirtyy pinon seuraavaan lohkoon. Tämä estää robottia jumiutumasta liikkeeseen.
aseta ajoaikakatkaisu [1] sekuntia
Parametrit |
Kuvaus |
|---|---|
aika |
Sekuntimäärä, jonka robotti voi yrittää suorittaa liikkeen loppuun. Tämä voi olla kokonaisluku tai desimaaliluku. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Drive as far as possible for 1 second before turning right.]
aseta ajoaikakatkaisu [1] sekuntia
aja [eteenpäin v] [25] [tuumaa v] ▶
käänny [oikealle v] [90] astetta ▶
aseta ajosuunta#
Suunta on robotin aivojen osoittama suunta asteina mitattuna. Aseta ajosuunta -pino-lohko muuttaa robotin nykyisen suunnan uudeksi suunta-arvoksi.
Jos esimerkiksi robotti on kääntynyt oikealle ja suunnan asettaminen 0 asteeseen tekee oikealle osoittavasta asennosta uuden 0 asteen. Tämän jälkeen robotti voi kääntyä muihin asentoihin tämän uuden suunnan perusteella.
aseta ajosuuntakulma [0] asteeseen
Parametrit |
Kuvaus |
|---|---|
otsikko |
Robotille asetettava suunta-arvo asteina. Tämä voi olla kokonaisluku väliltä 0–359. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Face the new 0 degree heading.]
aseta ajosuuntakulma [90] asteeseen
käänny suuntakulmaan [0] astetta ▶
asetettu aseman pyörimissuunta#
Rotaatio ilmaisee robotin kääntymismäärän asteina. Projektin alussa rotaatioarvoksi asetetaan 0 astetta. Aseta käyttökierto -pino-lohko muuttaa robotin nykyisen rotaation uuteen arvoon.
Jos robotti on esimerkiksi tehnyt kaksi täyttä käännöstä oikealle, sen kiertoarvo on 720 astetta. Kierron asettaminen 0 asteeseen palauttaa kiertoarvon 720 asteesta 0 asteeseen. Tämän jälkeen robotti voi tehdä kiertoja tämän uuden arvon perusteella.
aseta ajon kierros (0) asteeseen
Parametrit |
Kuvaus |
|---|---|
kierto |
Robotille asetettava kiertoarvo asteina. Tämä voi olla kokonaisluku. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Spin counterclockwise two times.]
aseta ajon kierros [720] asteeseen
käänny kierrokseen [0] astetta ▶
Arvot#
ajo on valmis#
Boolen lohko drive is done raportoi, onko robotti lopettanut liikkumisen. Tätä voidaan käyttää muiden robotin liikkeeseen perustuvien toimintojen ajoituksen ohjaamiseen.
Tosi — Robotti on lopettanut liikkumisen.
Väärin — Robotti liikkuu edelleen.
Tämä lohko toimii yhdessä seuraavien voimansiirtolohkojen kanssa, joilla on ja älä odota -parametri: drive for, drive until, turn for, turn to heading ja turn to rotation.
<ajaminen valmis?>
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Turn when the drivetrain is done moving forward.]
aja [eteenpäin v] [100] [mm v] ◀ eikä odota
odota [0.25] sekuntia
ikuisesti
jos <ajaminen valmis?> niin
käänny [oikealle v] [180] astetta ▶
keskeytä
muuten
tulosta [Still moving...] ▶
odota [0.1] sekuntia
tyhjennä kaikki rivit
ajosuunta#
Suunta on robotin aivojen osoittama suunta asteina mitattuna. Ajosuunta-raportointilohko raportoi suunnan 0–359 astetta.
Robotin lähtösuunta on 0 astetta.

(ajosuuntakulma asteina)
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Display the heading while turning.]
käänny [oikealle v] [450] astetta ◀ eikä odota
ikuisesti
tyhjennä kaikki rivit
tulosta (ajosuuntakulma asteina) ▶
odota [0.1] sekuntia
aseman pyöriminen#
Rotaatio ilmaisee robotin kääntymisnopeuden asteina. Projektin alussa rotaatioarvoksi asetetaan 0 astetta. Drive rotation -raportointilohko raportoi robotin nykyisen rotaation.
Oikealle kääntyminen lisää kiertoa ja vasemmalle kääntyminen vähentää sitä. Esimerkiksi kaksi täyttä käännöstä oikealle raportoi 720 asteen kiertoa.

(ajokierros asteina)
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Display the rotation while turning.]
käänny [oikealle v] [450] astetta ◀ eikä odota
ikuisesti
tyhjennä kaikki rivit
tulosta (ajokierros asteina) ▶
odota [0.1] sekuntia
ajonopeus#
Ajonopeuden raportointilohko raportoi robotin ajonopeuden prosentteina välillä -100 % - 100 %.
Positiivinen arvo tarkoittaa, että robotti ajaa eteenpäin. Negatiivinen arvo tarkoittaa, että robotti ajaa taaksepäin.
(ajonopeus %)
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Build Used: Code Base 2.0]
[Display the velocity of the robot before and while moving.]
tulosta [Start: ] ▶
tulosta (ajonopeus %) ▶
siirrä kursori seuraavalle riville
aja [eteenpäin v]
odota [0.5] sekuntia
tulosta [Moving: ] ▶
tulosta (ajonopeus %) ▶
pysäytä ajaminen