GBC Module con il City Hub Powered Up

Con il sistema Powered Up si aprono nuovi fronti per quanto riguarda la realizzazione di moduli GBC ‘evoluti’ che, finora, era possibile realizzare esclusivamente con l’EV3.

Persino con il ‘piccolo’ City Hub è possibile realizzare moduli ‘intelligenti’ che implementano meccaniche di funzionamento non ottenibili con l’uso di un solo motore costantemente in rotazione.

Un esempio banale, ma alquanto illuminante, è quello del modulo PUP-01 realizzato da Great Ball Pin (al secondo, Matt Norman, un prolifico AFOL appassionato di GBC – Great Ball Contraption)

Il modulo è “relativamente” semplice da replicare e la logica di azionamento è basata sull’utilizzo di un sensore di colore che determina il senso di rotazione del motore il base al colore di due brick di “fine corsa”.
Il motore, a sua volta, guida il nastro trasportatore (avanti e indietro) e il loader delle palline. Il loader, grazie ad un meccanismo di gear, ruota sempre nello stesso verso, a prescindere dal senso di rotazione del motore connesso al Powered Up.
Puoi notare con attenzione come funziona il blocco di gear, abbassando la velocità di riproduzione del video a 0,25 partendo dal minuto 2:40 del video stesso. Vedrai come, ad ogni cambio di rotazione del motore, la gear rossa centrale si posta a destra o sinistra, trasformando il senso di rotazione alternato in un unico senso di rotazione.
Il tutto viene controllato da questo programma, realizzato con l’App LEGO Powered Up:

Il programma è suddiviso in due task che vengono eseguiti parallelamente:
– Il primo task è un loop che, sulla base del colore (verde o giallo) rilevato dal sensore di colore imposta, rispettivamente sul valore 0 o 1, la variabile ‘a’.
Quando il colore rilevato è il giallo, viene anche eseguito il suono ‘2’ del tema ‘Trombetta’.
– Il secondo task (che, ricordo, è eseguito parallelamento al primo) inizialmente imposta la variabile ‘a’ sul valore 1 e poi esegue un loop nel quale si interviene, alternativamente, sul senso di rotazione del motore in funzione del valore della variabile ‘a’.

Il tutto funziona prevedendo che, al momento dell’attivazione del modulo, il nastro trasportatore sia posizionato in modo tale che il brick verde di fine corsa sia a metà percorso.

Lanciando l’applicazione, accade che (Prima fase):
1) La variabile ‘a’ viene impostata sul valore 1;
2) Il motore viene attivato a velocità 70%, con direzione verso il punto di carico;
3) Il sensore di colore è in attesa di identificare il colore verde;
4) Il task di gestione del motore attende finché la variabile ‘a’ non cambia stato (da 1 a 0);

Nel momento in cui il brick verde arriva in corrispondenza del sensore di colore succede che (Seconda fase):
1) La variabile ‘a’ passa dal valore 1 al valore 0, e il sensore si mette in attesa di rilevare il colore giallo;
2) Con la variabile ‘a’ che ha assunto il valore 0, la condizione del blocco [WaitForTrue ‘a=0’] viene soddisfatta, passando l’esecuzione al blocco di codice successivo;
3) Il motore viene fermato per 1 secondo (il tempo di caricare le palline);
4) Il motore viene attivato nel senso contrario a quello precedente (questa volta al 65% della velocità massima;
5) Il task resta in attesa che la variabile ‘a’ cambi nuovamente stato, questa volta da 0 a 1;
6) Appena il sensore rileva la presenza del mattoncino di colore giallo, cambia lo stato della variabile ‘a’, da 0 a 1;
7) Dopo una brevissima attesa di 1/4 di secondo (0.25) lo step successivo è il punto 2) della ‘Prima fase’.

…il tutto proseguirà all’infinito! (o meglio, finché le batterie saranno cariche 😉 )

Lascia una risposta

L'indirizzo email non verrà pubblicato.I campi obbligatori sono contrassegnati *