Pyöri ympäri ja jatka haluttuun suuntaan (Lego Dance)

From cod3v

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

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 gyron driftaus.

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.

Gyroskooppi saattaa lähteä driftaamaan, eli sen kulmalukema muuttuu kesken ajon. Yleensä, jos se aluksi toimii, se toimii koko ajan, mutta tiimalasi-koodilla gyron toiminta oli melko epävarmaa driftaamisen suhteen. Vika voi olla myös kytkennöissä, ja yleensä se korjaantuu kun irroitat gyron ja liität johdon takaisin.

Lisäksi on ongelmia gyron mukana pysymisessä kääntymisen aikana. Kulma ei aivan pysy perässä, joten pitkässä tanssissa kannattaa hyödyntää myös muita tapoja kohdistaa robotti, esimerkiksi seinään (sopivaan esineeseen) törmääminen tai viiva lattialla.


Neliöajo ja kierrokset kulmissa

Gyrolla liikkuminen

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.