Periodico delle Tecnologie dell'Informazione e della
Comunicazione per l'Istruzione e la Formazione
A+ A A-

Robotica educativa

Tutorial Arduino - Parte 3: tecnica PWM e fading

Tutorial Arduino - Parte 3: tecnica PWM e fading

di Franco Babbo

 

Abstract

“La tecnica PWM (Pulse Width Modulation) è utilizzata in elettronica in diverse applicazioni. Nella scheda Arduino è il modo in cui viene simulata una tensione di uscita analogica sui pin A0-A5. Come vedremo, il valore della tensione che è possibile ottenere dipende da una grandezza detta “duty cycle” e può essere utilizzato, ad esempio, per variare la velocità di un motore in corrente continua o la luminosità di un diodo led. In fondo all’articolo troverete il link ad una simulazione effettuata sul portale gratuito online TinkerCAD della quale è anche possibile copiare il sorgente utilizzato. ”


Come promesso in un precedente articolo, in questa puntata del tutorial spiegherò in cosa consiste la tecnica PWM e come utilizzarla per la variazione continua di luminosità di un diodo LED (effetto fading). La sua importanza risiede nel fatto che i sei pin “analogici” A0-A5 non forniscono, come ci si potrebbe aspettare, una vera e propria tensione continua selezionabile  tra 0V e 5V, ma qualcosa di un po’ diverso che tuttavia può essere utilizzato, come fosse una tensione costante, in alcuni casi di utilità pratica.

L’uscita di tali pin, in effetti, è un’onda quadra la cui ampiezza varia tra 0V e 5V. Grazie al comando

analogWrite(pin_number, n)

nel quale n è un numero intero che varia tra 0 e 255, è possibile cambiare a piacimento la durata della parte “alta” del segnale (quella in cui esso vale 5V per intenderci) applicata al dispositivo connesso al pin il cui numero va inserito nel primo argomento della funzione. Spesso, per rappresentare questa situazione, ci si riferisce ad una grandezza chiamata “Duty Cycle”, di solito espressa in percentuale, che è proprio il rapporto tra la durata td  dello stato “alto” dell’onda quadra ed il periodo T dell’onda stessa (l’intervallo di tempo tra due impulsi consecutivi, nella figura sottostante rappresentato dalle linee verticali verdi):

 

     d%=td/T*100

 




In effetti è facile convincersi che applicando questo tipo di segnale ad un componente normalmente alimentato in continua, tipo un diodo led o un motore c,c., l’effetto è simile a quello che si avrebbe usando una tensione continua con un valore tra 0V e 5V a patto di andare “sufficientemente veloci”. 

Consideriamo, infatti, il caso del diodo led. Arduino genera sui pin PWM un’onda quadra avente frequenza f=500Hz (cui corrisponde un periodo T=1/f=20ms). Su tale frequenza non possiamo agire, cioè il periodo è costante. Tale frequenza è abbastanza elevata da far apparire stabile all’occhio la luminosità emessa dal diodo. Si può quindi intuire come la luce sia tanto più intensa quanto più, nel loro susseguirsi, abbiano durata maggiore gli intervalli di tempo in cui l’onda quadra è allo stato alto. Questo è proprio ciò che accade quando aumentiamo il valore di una “vera” tensione continua applicata ad un led, sebbene il modo di alimentare il nostro dispositivo sia del tutto differente.

Il valore di tensione continua che equivale a quella prodotta tramite variazione del duty cycle è dato da

V=5⋅d

 

Com’è noto anche la velocità di un motore a corrente continua dipende dalla tensione applicata. Quest’ultimo dispositivo è usatissimo nelle applicazioni in cui si vuole far muovere su ruote un dispositivo in maniera estremamente semplice ed economica, sebbene con precisione non proprio elevata (i modelli radiocomandati fanno quasi tutti uso di motori c.c.).

Diamo ora un’occhiata al codice della nostra simulazione. 

Al solito la parte iniziale, secondo quanto appreso nelle precedenti puntate del tutorial, comprende la definizione di alcune costanti e la dichiarazione della modalità di funzionamento dei pin utilizzati. Ma osserviamo la nostra funzione per variare il duty cycle in azione nelle righe di codice

 

  for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {

    // sets the value (range from 0 to 255):

    analogWrite(ledPin1, fadeValue);

    // wait for 10 milliseconds to see the dimming effect

    delay(10);

  }

 

Il primo argomento di analogWrite è “ledPin1”, cioè il numero che identifica il primo led, quello di colore rosso. Sarà questo, quindi, il dispositivo sottoposto ad un’onda quadra di duty cycle variabile. Il secondo argomento indica quale deve essere la durata dello stato “alto” dell’onda, ovvero in definitiva il valore del duty cycle. Tale valore è inserito all’interno di un ciclo “for” in modo che aumenti automaticamente da 0 a 255 (con passi di 5) che, come abbiamo visto, sono i valori minimo e massimo ammessi nella funzione analogWrite. Dato che ad ogni ripetizione del ciclo tale valore aumenta, l’effetto sarà quello di una variazione graduale di luminosità da un minimo ad un massimo. La funzione delay(5) serve a rendere più o meno evidente l’effetto fading (provate a cambiare tale valore nella simulazione che trovate in fondo).

La parte di codice seguente è del tutto simile, solo che la variabile fadeValue viene fatta variare tra 255 e 0 (al contrario rispetto al caso precedente). In tal modo si vedrà la luce emessa dal led diminuire fino a spegnersi.

Seguono blocchi di codice identici per gli altri due diodi.

Tanto per dare un tocco “natalizio” al nostro primo esperimento sul duty cycle ho inserito un lampeggio contemporaneo dei tre led ottenuto con le seguenti righe di codice

 

//flashing

  for(int i=0;i<=2;i++){

    //switching LED on

    digitalWrite(ledPin1, HIGH);

    digitalWrite(ledPin2, HIGH);

    digitalWrite(ledPin3, HIGH);

    

    //wait between flashing

    delay(200);

    

    //switching LED on

    digitalWrite(ledPin1, LOW);

    digitalWrite(ledPin2, LOW);

    digitalWrite(ledPin3, LOW);

    

    //wait between flashing

    delay(200);

 

il cui significato dovrebbe essere chiaro se avete letto il primo numero del tutorial.

Per vedere l’effetto totale fading + lampeggio andate all’indirizzo in fondo all’articolo ed avviate la simulazione. Per visualizzare e/o copiare il codice per Arduino cliccate sul pulsate “code”.

Buon divertimento ed arrivederci al prossimo numero....




Franco Babbo

Ingegnere Elettronico

Docente di Elettronica 

e Telecomunicazioni

 

Riferimenti

link alla simulazione

https://www.tinkercad.com/things/honZg5cBsYR-xmas-fading-and-flashing

 

Credits 

Le immagini sono tratte dal tutorial

https://www.arduino.cc/en/Tutorial/PWM

(Termini di licenza https://www.arduino.cc/en/Main/CopyrightNotice)

0
0
0
s2sdefault

Robotica divertente: primi passi nella programmazione ideando giochi

Negli Istituti Tecnici, al secondo anno, è previsto lo studio di una disciplina denominata Scienze e Tecnologie Applicate (S.T.A.). Lo scopo di questa materia, essenzialmente, è quello di fornire i rudimenti delle discipline di carattere tecnico, aiutando così i ragazzi ad orientarsi nelle scelta definitiva dell’indirizzo di studio nel successivo triennio. Nell’Istituto in cui insegno, ad esempio, esistono, tra gli altri, due indirizzi affini: Informatica ed Elettronica. Nelle seconde classi, quindi, mi trovo a formare alunni su argomenti riguardanti le basi di elettrotecnica ed elettronica ed i fondamenti di logica e programmazione.

Da un anno a questa parte ho deciso di introdurre la robotica anche nel programma di S.T.A. in quanto, a mio avviso, ideale per l’apprendimento di tali nozioni basilari, in maniera divertente e creativa. Trattandosi di seconde classi ho deciso di utilizzare il kit Lego Mindstorms EV3 il cui ambiente di sviluppo software visuale, ovvero una versione ridotta del LabView (National Instruments), è particolarmente intuitivo e versatile.

Supponiamo, ad esempio, di voler fare in modo che il robot avanzi fino al raggiungimento di una distanza prestabilita da un ostacolo ipotizzando che l’ostacolo venga rilevato grazie ad un sensore ad ultrasuoni. Una struttura delle istruzioni possibile potrebbe essere quella mostrata nella figura in alto. Come si nota, lo schema che ne risulta non appare particolarmente complesso.

Il rettangolo arancione centrale (con la freccia che torna indietro) rappresenta una istruzione iterativa: il contenuto del rettangolo si ripete finché non diventa vera la condizione di fine ciclo. Nel nostro caso, come mostrato, il ciclo termina quando il sensore ad ultrasuoni rileva una distanza minore di 5cm.

Il blocco verde posto internamente al costrutto iterativo rappresenta l’istruzione da ripetere: azionamento dei motori contrassegnati con B,C nel prototipo, con corrispondente spostamento in avanti.

L’ultimo blocco a destra istruisce il robot in modo che, al termine dell’iterazione, i motori si arrestino. Una volta ultimato il programma, questo viene inviato al prototipo (tramite Bluetooth o cavo USB) cliccando sul pulsante a forma di triangolo sulla sinistra e verrà immediatamente eseguito.

Per introdurre i primi rudimenti di informatica ed elettronica mi sono servito del prototipo visibile in foto, realizzato e perfezionato assieme ad allievi di classi superiori durante gli anni precedenti. Per prima cosa ho illustrato i vari componenti che lo costituiscono elencando le possibili interazioni che, grazie ad essi, il robot è in grado di avere con il mondo esterno. In tal modo ho avuto l’occasione di passare in rassegna alcune importanti tecnologie utilizzate nella realizzazione di sistemi automatici programmabili.

Come si può notare si tratta di un piccolo rover dotato di: un sensore anteriore ad ultrasuoni per rilevare ostacoli, due sensori di luminosità a riflessione orientati verso il basso per discriminare colori e livelli di luminosità, un giroscopio per rilevare spostamenti angolari in modo da compiere rotazioni perfette, due servomotori per lo spostamento, un servomotore per afferrare oggetti. Questo dispositivo, compatto e dall’aspetto simpatico, consente, in effetti, di affrontare agevolmente moltissime questioni basilari inerenti l’informatica e l’elettronica.

Pensiamo, ad esempio, al concetto di “iterazione” illustrato precedentemente e proviamo ad immaginare diverse modalità di spiegazione, tutte, vi assicuro, perfettamente realistiche.

Modalità A o del logico puro: spiego cosa è un diagramma di flusso, illustro a gesti come funziona un iterazione, faccio l’avvicente esempio del conto alla rovescia: parto da dieci e sottraggo uno fino a che non si ottiene zero. Risultato: il docente ha scritto alcuni numeri sulla lavagna, gli alunni li avranno copiati sul quaderno. Tempo necessario: una lezione.

Modalità B o dello smanettone. Spiego cosa è un diagramma di flusso, spiego cosa è un compilatore e come si usa, fornisco le nozioni base di un linguaggio di programmazione, illustro una delle possibili istruzioni iterative, faccio l’esempio del conto alla rovescia al computer. Risultato: i ragazzi avranno testato il programma al computer osservando una riga di numeri da 10 a 0. Molto importante: gli alunni avranno avuto modo di imbattersi nel tipico errore di terminazione del ciclo (incubo anche del programmatore più navigato) a causa del quale l’iterazione si ripete all’infinito. Ciò che avranno osservato sarà un incessante susseguirsi di cifre sul monitor, molto stile “The Matrix” e non privo di fascino.

Tempo necessario: almeno quattro lezioni.

 

Modalità C o del malato di laboratorio. Spiego come funziona il prototipo, spiego come si usa l’ambiente visuale di sviluppo, spiego cosa è un diagramma di flusso, mostro come si realizza una iterazione, faccio vedere come il robot avanza verso un muro e si ferma ad una certa distanza da esso. Risultato: i ragazzi avranno visto muovere un sistema automatico nel mondo reale grazie ad una istruzione iterativa (avanza finché la distanza dall’ostacolo non diventa quella impostata), avranno fatto essi stessi delle prove cambiando dei parametri quali velocità, distanza. Molto importante: anche in questo caso gli alunni avranno eventualmente verificato come un errore nel test di uscita del ciclo possa provocare il moto indefinito del robot il quale, nella migliore delle ipotesi, si schianta contro il muro (nella peggiore cerca di autodistruggersi precipitando da qualche banco). Entrambe le eventualità, di grande effetto visivo e quindi ottime per l’apprendimento.

Tempo necessario: almeno quattro lezioni.

 

In sintesi, una volta che i ragazzi avranno appreso (dal fare) un determinato concetto, sarà molto più semplice comprendere il necessario formalismo teorico ed in effetti è esattamente questo il motivo per il quale ho pensato di usare dei piccoli prototipi robotici anche nei corsi base di informatica ed elettronica.

In particolare, lo scorso anno, alcuni alunni della 2aB INF dell’I.T.T. Malafarina di Soverato, hanno ideato e sviluppato un piccolo gioco utilizzando il prototipo che ho illustrato in precedenza. E’ anche stato realizzato un video presentato in occasione della giornata dedicata al trentennale dell’Istituto.

Nel gioco si faceva uso del minirover, di alcune tessere colorate realizzate dai ragazzi e di un oggetto che fungeva da ostacolo. Il prototipo si muoveva su una superficie piana ruotando in una direzione piuttosto che un’altra in base al colore delle tessere che venivano poste sul percorso. Bisognava raggiungere l’ostacolo con la maggior precisione possibile (se il rover non fosse stato perfettamente parallelo all’ostacolo il sensore non lo avrebbe rilevato correttamente e non si sarebbe fermato) e con il minor numero possibile si rotazioni.

Nel programma troviamo l’implementazione di molti importanti concetti di programmazione base: l’iterazione, necessaria sia per l’avanzamento ed il corretto arresto del robot che per l’ottenimento di una rotazione precisa di 90°, l’istruzione condizionale grazie alla quale il prototipo era in grado di decidere la direzione in base al colore, l’uso dei sensori e dei servomotori (sia dal punto hardware che software).

In definitiva gli alunni hanno ideato un gioco e programmato un piccolo prototipo di robot autonomo, già al secondo anno, apprendendo divertendosi le preziose nozioni basilari per lo studio delle discipline di indirizzo.

  

Ing. Franco Babbo

Docente di Elettronica e Telecomunicazioni

 

nota: tutti i marchi registrati appartengono alle rispettive società proprietarie

0
0
0
s2sdefault

La robotica educativa e PNSD

Era l’ottobre del 2015 quando, con l’entrata in vigore del PNSDil documento di indirizzo del Ministero dell’Istruzione, dell’Università e della Ricerca per il lancio di una strategia complessiva di innovazione della scuola italiana e per un nuovo posizionamento del suo sistema educativo nell’era digitale”(Pnsd) gli scenari della scuola hanno, in parte, subito un evidente cambiamento. Ad ogni #Azione del Piano corrisponde oggi un’attività, un impegno, una proposta. Le azioni #4-6-15-17 parlano di “Ambienti di apprendimento laboratoriali”, di Byod, di “scenari innovativi per lo sviluppo di competenze digitali applicate”(Pnsd), in cui si chiede il potenziamento di una didattica attiva, dove l’alunno diventa protagonista e creatore del suo percorso, dove si impara ad imparare.

A maggior ragione ora, con gli ambienti di apprendimento virtuali (pensiamo a Classroom, presente nelle app di GSuite, che ha fatto capolino in tante scuole grazie all’attivazione del Dominio scolastico Google app for education, oggi GSuite for education, con grandi possibilità offerte da questa piattaforma così versatile e dinamica,  Edmodo e le classi attivabili dai portali delle diverse case editrici dei libri di testo, anche e direi soprattutto nella scuola primaria, dove i bambini accolgono queste nuove modalità con genuinità e  grande semplicità), i kit mobili, le aule aumentate, l’introduzione di notebook, chromebook, Lim, tablet e  robotica educativa per fasce d’età, nella didattica, l’idea del ragazzo al centro del processo insegnamento/apprendimento è maggiormente sentito.

Isole d’apprendimento, nuove strategie, metodologie rinnovate, aule modulari, kit e strumenti informatici, robotica educativa:  cambiano scenari  che  danno una visione di scuola nuova e rinnovata che si adatta al passare del tempo, che sta al passo con l’uomo e la sua grande capacità di innovarsi continuamente.

 

La robotica educativa nella scuola

Sul mercato sono presenti diversi articoli, di vario genere e per più ordini e gradi di scuola. Dalla scuola dell’infanzia alla scuola secondaria di primo grado l’offerta è ampia e va adattata ai percorsi ritenuti opportuni dai docenti, che ben si inseriscano in progetti e attività in modo trasversale e interdisciplinare. Si trovano strumenti che hanno necessità di pc, tablet, notebook o la rete wireless e kit che necessitano solo di pile e collegamento bluetooth. Ciò che più importa è la programmazione di questi piccoli robot. Non si accende un pulsante e il robot cammina o si muove. Tutti i robot della robotica educativa hanno bisogno di essere programmati. E’questo il motivo per cui si parla di Coding, pensiero computazionale e problem solving. L’immagine ne mostra alcuni, dalla Bee-Bot (l’apina gialla) al Makey Makey (che fa suonare frutta, cibo e materiale che conduca energia), da Ozobot (piccolo e grande disegnatore)  ai kit di costruzione della Lego: Lego WeDo, WeDo 2.0 e tutta la linea Mindstorm; dagli ultimi anni della scuola primaria alla secondaria di secondo grado. C’è poi Little Bits (magneti che collegati producono un suono o un movimento) e Mbot (un vero arduino). Nella foto sono presenti solo alcuni dei robot in commercio, a cui si aggiungono altri prodotti per tutte le fasce d’età. Ognuno di questi set, kit di costruzione, robottino, offre opportunità. L'idea è quella di cambiare la metodologia e gli strumenti per creare motivazione, curiosità, interesse. I contenuti e gli obiettivi rimangono invariati, seguono i programmi e le indicazioni ministeriali. Sono i robot ad inserirsi nella didattica, in maniera trasversale, multidisciplinare, con una o più classi; in percorsi di continuità, progetti ponte, peer to peer, curricolo verticale, in modo ludico e creativo dove il bimbo, come il ragazzo, può esprimere sé stesso e valorizzare le sue capacità. Non più solo l’ora di informatica, ma la tecnologia al servizio della didattica. La robotica aiuta a sviluppare il pensiero computazionale e il problem solving perché “costringe” a ragionare, a risolvere un problema, ad aiutarsi reciprocamente. La correzione dell’errore (debug) è automatica, la visualizzazione del risultato del proprio lavoro in maniera concreta, pure.

 

Perché inserire la robotica educativa nella didattica quotidiana?

Perchè la robotica pone l’alunno al centro del processo di apprendimento.

Promuove l’individualizzazione dell’insegnamento in un processo di inclusione dove qualsiasi strumento digitale o di robotica viene offerto indistintamente a tutta la classe e l’inclusione diventa automatica, come la possibilità, da parte di tutti, di utilizzare strumenti compensativi. Sviluppa il pensiero computazionale, promuove un nuovo ruolo del docente quale mediatore didattico che coordina, guida, sollecita e incoraggia il ragazzo; promuove la meta-cognizione. Sviluppa dinamiche di lavoro in gruppo e di peer-learning.

 

Come acquistarli

Chiedendo alla scuola l’acquisto del kit/set/robot, attraverso la presentazione di un progetto che ne preveda l’utilizzo su una o più classi. Strumento che, ovviamente, rimane a disposizione della dotazione della scuola e di cui beneficia tutto il personale docente e gli alunni. I PON proposti dal Ministero offrono la possibilità di acquistare materiale informatico o per le nuove tecnologie. Un’altra opportunità potrebbe essere quella di utilizzare le possibilità offerte dai FabLab locali che mettono a disposizione i propri materiali in un percorso didattico extra-scolastico o anche in orario scolastico, attraverso una visita d’istruzione. Si può creare un progetto ponte con un plesso di grado e ordine diverso dove è presente la strumentazione necessaria alla nostra attività, in un percorso di continuità verticale e di peer to peer: il ragazzo più grande, esperto, che aiuta il compagno più piccolo o viceversa. Quando questi strumenti vengono utilizzati da piccoli, in terza o quarta primaria si è pronti per fare da tutor anche a ragazzi più grandi. Si può chiedere l’intervento di esperti esterni che possiedono i robot da inserire nel progetto e li mettono a disposizione per l’attività concordata. Si può ipotizzare un parternariato con plessi dello stesso distretto o di altri distretti per usufruire degli stessi atelier creativi e allargare e rinforzare l’offerta formativa dei due Istituti.È ovvio che tutto va inserito in un contesto. La sola costruzione, la sola programmazione del movimento, il semplice utilizzo, non bastano. Sta ai docenti inserirli in contesti e progetti appropriati che valorizzino lo strumento e lo rendano efficace a fine didattico. Sono dell'idea che la tecnologia sia a nostro servizio e non viceversa. Sarebbe bello insegnare ai ragazzi a diventare utenti e utilizzatori attivi dei loro strumenti, invece che semplici consumatori passivi. Ogni piccolo robot avrebbe bisogno di essere illustrato e spiegato nel dettaglio, come anche la condivisione di esperienze e buone pratiche vissute e sperimentate. Quanto sopra indicato intende essere una mera indicazione delle grandi possibilità che questa prospettiva didattica offre ai docenti ed ai loro studenti. Nei prossimi numeri vi saranno ulteriori approfondimenti. Spero che ognuno di voi abbia la possibilità di esplorare per scoperta, come i nostri alunni.

 

Antonietta D’Oria

Docente Scuola Primaria

Formatore Tecnologie – Animatore digitale

0
0
0
s2sdefault

Robotica: la teoria dei sistemi spiegata ai bambini

Ai miei tempi, quando ero un alunno, l'ausilio didattico dell'insegnante era principalmente il libro di testo. Un mio professore, tuttavia, un giorno portò in classe quello che poteva essere un antesignano del PC (era la fine degli anni 70): un semplice computer programmabile in BASIC con un gioco che lui stesso aveva sviluppato. Si vedeva un puntino muoversi come fosse una pallina che rimbalzava verso una schematica porta di calcio  ed un omino, che doveva essere un portiere di calcio, agitarsi per effettuare la sua parata. In quel momento ho compreso che con la matematica si può rappresentare e simulare qualunque elemento del mondo reale. Questo ebbe come logica conseguenza la mia passione per la Teoria dei sistemi ma, sopratutto, non ho mai spesso di "inventare" esperimenti ed oggetti che potessero chiarire i concetti teorici.

La Teoria dei sistemi è una disciplina che, come ben sanno molti miei colleghi, è materia di insegnamento negli istituti tecnici industriali oltre che, naturalmente, in molti corsi universitari. Riguarda principalmente lo studio dei sistemi automatici ovvero apparati in grado di eseguire operazioni in maniera autonoma.

Il sistema in questione può essere relativamente semplice o anche molto complesso.  Il forno che tutti abbiamo in cucina è un esempio di sistema semplice: è in grado di raggiungere e mantenere autonomamente una temperatura prefissata. Il pilota automatico di un aereo è un esempio di sistema complesso: è progettato in modo da mantenere la rotta prestabilita esaminando un numero considerevole di variabili contemporaneamente (altitudine, velocità del vento, posizione GPS, ecc.) ed agendo sul motore e sui diversi dispositivi di movimentazione posti sulle ali.

Normalmente si rappresenta un sistema automatico come un congegno al quale viene fornita in ingresso una certa grandezza e dal quale ci si aspetta il raggiungimento di un certo obiettivo in uscita in base a tale grandezza. Tornando all’esempio del forno: imposto la temperatura desiderata (ingresso), il sistema confronta l’ingresso con la temperatura effettiva (uscita), raggiunge tale temperatura in tempi più o meno brevi (velocità di risposta) e la mantiene finché non verrà spento (regolazione); tutto questo nonostante si vada ogni tanto a controllare lo stato di cottura aprendo lo sportello (immunità dai disturbi).

Gli strumenti matematici per lo sviluppo di un sistema automatico si acquisiscono nella scuola secondaria superiore ed eventualmente consolidano durante gli studi universitari. Alcuni concetti fondamentali tuttavia possono, a mio avviso, essere introdotti e compresi, in maniera relativamente semplice, forse fin dalla scuola primaria.

La cosa interessante, infatti, è che, in definitiva, possiamo rappresentare e studiare il mondo fisico che ci circonda e perfino noi stessi attraverso i concetti tipici della teoria dei sistemi. Si pensi ad esempio ai fenomeni naturali che regolano e mantengono il clima nei diversi ecosistemi, i meccanismi attraverso cui le diverse specie animali e vegetali si adattano all’ambiente ottimizzando le risorse (acqua, luce), le cellule che si autoregolano negli organismi viventi.

Del resto, il compito stesso dell’insegnante non consiste forse nell’effettuare un continuo “processo di regolazione” confrontando periodicamente l’uscita del “sistema alunno” (livello di apprendimento) con l’ingresso desiderato (livello atteso)?

In effetti, la questione più affascinante, a mio avviso, risiede proprio nella possibilità di rappresentare  il comportamento umano, con particolare riferimento all’apprendimento, attraverso una schematizzazione stile Teoria dei sistemi. Sotto questo aspetto i nostri ragazzi, dalla primaria alla secondaria superiore, sono, ovviamente molto più “esperti” di noi visto che la fase di apprendimento è in pieno svolgimento.

Si pensi all’azione del bere un bicchiere d’acqua … semplice? Quante volte avremo ripetuto questo gesto prima di riuscire da piccoli a compierlo? Chi ce lo ha insegnato? Evidentemente i nostri occhi hanno osservarto qualcuno mentre eseguiva il gesto del bere e la nostra mente, elaborando i dati dei vari inevitabili insuccessi, alla fine avrà permesso la riuscita dell’impresa.

In effetti il bere un bicchiere d’acqua è un ottimo esempio di sistema automatico. Per prima cosa dobbiamo afferrare il bicchiere: l’ingresso del nostro sistema è la posizione del bicchiere, l’uscita la posizione della mano. Noi agiremo in modo da rendere la nulla la differenza tra queste due variabili muovendo il braccio nella giusta direzione. Per fare questo dovremo confrontare la posizione mano-bicchiere e regolare l’intensità dei nostri muscoli in un processo continuo. Naturalmente anche l’azione dell’afferrare il bicchiere e del portarlo alla bocca possono essere scomposti secondo procedimenti simili, individuando le opportune variabili.

Naturalmente questi concetti sono ampiamente utilizzati in robotica. In effetti l’uso dei robot consente di mettere in luce i diversi aspetti della regolazione automatica a vari livelli di astrazione. La semplice osservazione diretta del comportamento di robot programmati dall’insegnante e con l’opportuna mediazione da parte di quest'ultimo, può effettivamente permettere l’introduzione di questi concetti fondamentali fin dai primi anni di scuola, aprendo così la strada verso nuove tecniche di ragionamento. Salendo di livello saranno gli stessi studenti a programmare i robot in modo che implementino un determinato comportamento, passando così da una fase di semplice osservazione ad una più evoluta di progetto e sviluppo.

Nel video raggiungibile attraverso il link in fondo all’articolo osserviamo un’applicazione di questi concetti che io stesso ho utilizzato più volte, in particolare durante i ministage di orientamento, cioè per i ragazzi della scuola secondaria di primo grado.

Vediamo due robot. Il piccolo rover su ruote è realizzato con il kit Lego Mindstorms e programmato con LabView per Lego; le gambe robotiche invece le ho sviluppate usando una tecnologia mista: componenti Lego per le parti meccaniche e scheda Arduino per l'elettronica di controllo (in questo caso ho usato il C++ come linguaggio di programmazione). Un minirobot è programmato per muoversi in avanti, l’altro, che insegue, dovrà mantenersi ad una certa distanza prestabilita. 

Il secondo robot, evidentemente, sta implementando un sistema a retroazione: l’ingresso è la distanza desiderata e viene inserita da programma; l’uscita è la distanza effettiva tra i due robot, l’azione della regolazione è il confronto continuo della posizione reciproca dei robot ed il comando dei motori per mantenerla costante.


Spero, a questo punto, di aver fornito qualche spunto utile per le vostre lezioni di sistemi automatici o semplicemente per introdurre, in maniera divertente, alcuni dei concetti fondamentali su cui si fonda tutta la moderna Teoria dei Sistemi cioè, di fatto, la disciplina volta a progettare praticamente ogni attuale dispositivo elettronico, elettrico, meccanico e perfino utile allo studio del comportamento umano e dei più diversi fenomeni sociologici.


Se siete interessati ai programmi che ho sviluppato nei diversi robot seguitemi nei futuri articoli e non esitate a contattarmi.

https://youtu.be/cyMof6pEu-8


Alla prossima,

ing. Franco Babbo

 

 

0
0
0
s2sdefault

Argomento