top of page

Gyro Steering

Juan Josè

Juan C

Ciao,

Sono Juan e in questa lezione ti insegnerò a controllare i movimenti del robot utilizzando il giroscopio.

Questa è la seconda di tre lezioni dedicate ai movimenti controllati.

Per poter capire il contenuto della lezione è fondamentale saper creare dei cicli con condizioni di uscita e saper realizzare i blocchi personalizzati.

A differenza della lezione precedente in questa lezione inseriremo direttamente il codice in un blocco personalizzato che potrai utilizzare per programmare le tue missioni sul campo di gara.

Introduzione

Quando mandiamo il robot a completare missioni distanti dalla nostra area di lancio è fondamentale poter controllare in modo preciso la direzione in lo stiamo mandando.

Se per esempio il robot esegue una curva e non si allinea perfettamente alla direzione in cui deve andare tenderà a deviare rispetto alla traiettoria desiderata compromettendo l'esito della missione.

Per evitare che questo accada si possono realizzare dei programmi che prendo il nome di Gyro turn, Grazie a questi programmi l'angolo della curva viene misurato tramite il giroscopio garantendo alle curve una maggiore precisone.

Anche durante i tratti rettilinei possono avvenire degli imprevisti che deviano il robot dalla traiettoria, immagina per esempio se questo interagisce lateralmente con un modello di missione. Per garantire il mantenimento della traiettoria rettilinea si utilizzano dei programmi chiamati Gyro Straight.

Il programma Gyro Steering combina le funzionalità dei due descritti in precedenza garantendo precisione sia nelle curve che nei tratti rettilinei.

Il Giroscopio

Nei robot della lego con Giroscopio facciamo riferimento ad un sensore che permette di misurare la posizione angolare del robot.

Nei modelli Spike il sensore e; integrato nella centralina quindi non è necessario installarlo separatamente come per i sensori di colore.

Si tratta di uno strumento molto sensibile che prende come valore zero la posizione angolare a cui si trova il robot all'avvio del programma.
Grazie al comando Imposta angolo i imbardata su zero possiamo resettare il valore: assicurati sempre di eseguire questa operazione quando il robot è immobile visto che il giroscopio sfrutta le accelerazioni per eseguire le sue misurazioni.

Logica del programma

Per creare un programma che regoli la traiettoria utilizzando il Giroscopio utilizzeremo il blocco avvia movimento che permette di inserire una traiettoria.

Anzi che inserire un valore fisso per la traiettoria andremo a scrivere un confronto tra la direzione a cui vogliamo muoverci e quella che sta effettivamente misurando il giroscopio.

Creazione del movimento

Cominciamo creando un blocco personalizzato che dovrà contenere come sempre Velocita' Rotazioni. Questa volta pero inseriremo come parametro l'angolo a cui ci vogliamo muovere. Questo angolo non è l'angolo di cui vogliamo curvare ma l'angolo tra la direzione in cui vogliamo muoverci e quella in cui è stato resettato il giroscopio.

gyro blocco

Una volta creato il Blocco definisci ineriamo un ciclo con una condizione di uscita a rotazioni nella quale andremo ad inserire il blocco Avvia Movimento. 

 

gyro blocco

Controllo della traiettoria

Ora dobbiamo scrivere la parte di codice che si occupa di gestire la traiettoria.

Quando inseriamo il valore zero nel blocco di movimento il robot si muove dritto, si muove a destra se inseriamo valori positivi e a sinistra quando inseriamo valori negativi.

Allo stesso modo vogliamo che il robot si muova dritto quando quando l'angolo misurato dal giroscopio è uguale a quello che abbiamo impostato, dovrà curvare verso destra quando l'angolo misurato è minore e verso destra quando è maggiore del angolo impostato.

Eseguendo la differenza tra l'angolo obbiettivo meno quello misurato dal giroscopio si ottiene zero quando sono uguali, si ottiene un numero negativo quando è maggiore l'angolo misurato e si ottiene un numero positivo quando è maggiore l'angolo obbiettivo.

gyro blocco

Inserendo questa operazione all'interno del blocco che regola la traiettoria otteniamo un movimento che tende ad allinearsi alla direzione stabilita.

In particolare tanto maggiore è la differenza tra l'angolo obbiettivo e quello misurato tanto maggiore è la sterzata che robot fa per riavvicinarsi all'angolo obbiettivo.

I programmi eseguono la correzione in modo proporzionale ad un errore rientrano nella categoria dei programmi proporzionali e sono i più efficaci in First Lego League.

gyro blocco
gyro blocco

Costante di Proporzionalità

La semplice differenza tra l'angolo obbiettivo e quello misurato dal giroscopio potrebbe causare correzioni troppo forti o troppo deboli in base alla larghezza dell'asse delle ruote del nostro robot.

Per poter regolare l'intensità della correzione possiamo aggiungere al programma una costante di proporzionalità che moltiplica il fattore di correzione. Con numeri maggiori di uno avremo correzioni più accentuate mentre con valori più piccoli si ottengono correzioni leggere.

Per aggiungere la costante adiamo a modificare la definizione del blocco personalizzato e inseriamo un nuovo parametro che chiamiamo Kg. Questo Parametro sarà la nostra costante di proporzionalità.

Inseriamo Kg e il fattore di correzione in un blocco Moltiplicazione e rinserriamo il tutti dentro al blocco Avvia Movimento.

gyro blocco
gyro blocco

Conclusioni

Il Blocco Gyro Steering garantisce dei movimenti precisi ed affidabili e può essere implementato in modo da eseguire i movimenti accelerati. Prova tu a combinare le cose che hai imparato nelle ultime lezioni per creare una funzione che ti garantisce la massima precisione sul campo di gara

bottom of page