Pyöri ympäri ja jatka haluttuun suuntaan (Lego Dance): Difference between revisions
m (→Teoriaa) |
m (→Teoriaa) |
||
Line 7: | Line 7: | ||
<gallery> | <gallery> | ||
GyroRotateWait.png| Tiimalasilla toteutettu kääntö on ehkä helpoin. | GyroRotateWait.png| Tiimalasilla toteutettu kääntö on ehkä helpoin. | ||
Gyro_rotations.png|Pyörivä robotti koodilla, joka välillä ajelee omiansa | Gyro_rotations.png| Pyörivä robotti koodilla, joka välillä ajelee omiansa eli perustuu suoraan ajo -koodiin. | ||
</gallery> | </gallery> | ||
Tiimalasi-funktio on kätevä, koska se on melkein kuin moniajoa. Nättiä koodia. | Tiimalasi-funktio on kätevä, koska se on melkein kuin moniajoa. Nättiä koodia. Ensimmäinen koodi kääntyy oikeaan suuntaan, kunnes tiimalasi käskee sen pysäyttämään. Jälkimmäinen koodi hidastaa hieman ennen pysähtymistä, joten sen ei pitäisi kääntyä niin paljon yli (overshoot), mutta oikeastaan ylikääntymisellä ei tässä ole juurikaan väliä, koska suoraan ajo -koodi korjaa. | ||
Alkuun tarvitaan pieni tauko eli tiimalasi, jotta robotti ehtii resetoida koodinsa ennen uuden alkua. Se voidaan poistaa jossain vaiheessa. Aliohjelma ottaa sisäänmenona kierrosten lukumäärän ja | Muista tarkistaa | ||
Alkuun tarvitaan pieni tauko eli tiimalasi tai gyron resetointi, jotta robotti ehtii resetoida koodinsa ennen uuden alkua. Se voidaan poistaa jossain vaiheessa. Aliohjelma ottaa sisäänmenona kierrosten lukumäärän desimaalilukuna. | |||
Ole tarkkana, tulosta väliaikatietoja. Miinusmerkit, summaukset ja moottorien suunnat ja ratastukset, kaikki vaikuttavat ja toimivat mielenkiintoisella tavalla. Tiimalasilla toteutettu versio on yksinkertaisempi vaihtoehto. | |||
=== Neliöajo ja kierrokset kulmissa === | === Neliöajo ja kierrokset kulmissa === |
Revision as of 20:49, 3 October 2021
Johdanto
Tanssissa usein pyöritään ja tehdään piruetteja. Edellä oleva suoraan ajo ei kuitenkaan toimi, koska siinä oli säädetty kulma yhden ympyrän sisälle.
Teoriaa
-
Tiimalasilla toteutettu kääntö on ehkä helpoin.
-
Pyörivä robotti koodilla, joka välillä ajelee omiansa eli perustuu suoraan ajo -koodiin.
Tiimalasi-funktio on kätevä, koska se on melkein kuin moniajoa. Nättiä koodia. Ensimmäinen koodi kääntyy oikeaan suuntaan, kunnes tiimalasi käskee sen pysäyttämään. Jälkimmäinen koodi hidastaa hieman ennen pysähtymistä, joten sen ei pitäisi kääntyä niin paljon yli (overshoot), mutta oikeastaan ylikääntymisellä ei tässä ole juurikaan väliä, koska suoraan ajo -koodi korjaa.
Muista tarkistaa
Alkuun tarvitaan pieni tauko eli tiimalasi tai gyron resetointi, jotta robotti ehtii resetoida koodinsa ennen uuden alkua. Se voidaan poistaa jossain vaiheessa. Aliohjelma ottaa sisäänmenona kierrosten lukumäärän desimaalilukuna.
Ole tarkkana, tulosta väliaikatietoja. Miinusmerkit, summaukset ja moottorien suunnat ja ratastukset, kaikki vaikuttavat ja toimivat mielenkiintoisella tavalla. Tiimalasilla toteutettu versio on yksinkertaisempi vaihtoehto.
Neliöajo ja kierrokset kulmissa

Edellinen neliöajo-ohjelma ei toimi, koska kulma on yhden ympyrän kulman sisällä (tai kahden, -360 kulma 360). Se voitaisiin korjata resetoimalla gyroskooppi aina välillä, mutta gyron resetointi aiheuttaa virhettä loppumatkassa. Huomaa, että erilaisia ongelmia:
- Alun käynnistämisessä gyro ei ehdi resetoitua ennen koodin ajoa. Laitoin siihen ofotus-lohkon, mutta voit kokeilla myös resetointilohkoa.
- Pyörimisessä gyro ei aina tuntunut pysyvän vauhdissa, joten kulmat eivät olekaan täysin oikeita -- niitä, minkä takia gyroskoopin halusin käyttöön.
- Silloin tällöin gyron johdot ovat huonosti, ja tällöin robotti kiihdyttää oudossa paikassa.