13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a...

8
www.robocupjr.it Sito web: www.robocupjr.it Apprendere la logica programmando Robot ROBOSCUOLA 2012 Autore: Domenico Ardito Docente di Elettronica presso IT “Archimede” Viale Regina Margherita, 22 – 95123 Catania (CT) E-mail personale: [email protected] Email scuola: [email protected] Con questo contributo intendo esporre una metodologia didattica adottata nelle classi prime per l’insegnamento di Tecnologie Informatiche nelle sezioni di Informatica e di Automazione.I concetti di logica applicata, basati inizialmente sull’uso di diagrammi a blocchi,vengono poi riversati su esempi di problem solving dei Robot Lego Mindstorm NXT.Si passa dal problema alla ricerca delle soluzioni, sintetizzando le proposte degli allievi con la tecnica del brain storming assistito. La programmazione avviene dapprima col programma a blocchi in dotazione, per poi passare al linguaggio NXC che si rivela più duttile e flessibile. Obiettivo finale è di evidenziare la portabilità dei diagrammi di flusso in tutte le possibili implementazioni software e costruire quindi negli allievi una mentalità informatica solida. 1. Introduzione La nuova riforma della scuola secondaria di secondo grado (legge 30 ottobre 2008 n. 169) ha introdotto alcune novità rilevanti: l’ora obbligatoria di 60 minuti, la riduzione delle ore di lezione (32 ore la settimana negli Istituti Tecnici contro le 36 precedenti) , la scomparsa dell‘Informatica nei Licei e la sua introduzione invece dal primo anno di corso nei Tecnici. Dettata soprattutto da esigenze di tagli piuttosto che da un effettivo progetto didattico innovativo (lo dimostra la mancanza di contenuti e di linee guida ministeriali per i nuovi insegnamenti, all’atto dell’entrata in vigore), ha costretto tutto il personale scolastico (soprattutto docente) , ad enormi sforzi di volontà per garantire il fondamentale diritto allo studio agli alunni, reinventando gli obiettivi didattici e formativi per garantire motivazioni e successo scolastico. In questo contesto cresce e si rafforza la voglia di impostare una Didattica realmente Innovativa, stimolante per gli allievi perché li motiva ad apprendere

Transcript of 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a...

Page 1: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

Apprendere la logica programmando Robot ROBOSCUOLA 2012

Autore: Domenico Ardito Docente di Elettronica presso IT “Archimede”

Viale Regina Margherita, 22 – 95123 Catania (CT) E-mail personale: [email protected] Email scuola: [email protected]

Con questo contributo intendo esporre una metodologia didattica adottata nelle classi prime per l’insegnamento di Tecnologie Informatiche nelle sezioni di Informatica e di Automazione.I concetti di logica applicata, basati inizialmente sull’uso di diagrammi a blocchi,vengono poi riversati su esempi di problem solving dei Robot Lego Mindstorm NXT.Si passa dal problema alla ricerca delle soluzioni, sintetizzando le proposte degli allievi con la tecnica del brain storming assistito. La programmazione avviene dapprima col programma a blocchi in dotazione, per poi passare al linguaggio NXC che si rivela più duttile e flessibile. Obiettivo finale è di evidenziare la portabilità dei diagrammi di flusso in tutte le possibili implementazioni software e costruire quindi negli allievi una mentalità informatica solida.

1. Introduzione

La nuova riforma della scuola secondaria di secondo grado (legge 30 ottobre 2008 n. 169) ha introdotto alcune novità rilevanti: l’ora obbligatoria di 60 minuti, la riduzione delle ore di lezione (32 ore la settimana negli Istituti Tecnici contro le 36 precedenti) , la scomparsa dell‘Informatica nei Licei e la sua introduzione invece dal primo anno di corso nei Tecnici. Dettata soprattutto da esigenze di tagli piuttosto che da un effettivo progetto didattico innovativo (lo dimostra la mancanza di contenuti e di linee guida ministeriali per i nuovi insegnamenti, all’atto dell’entrata in vigore), ha costretto tutto il personale scolastico (soprattutto docente) , ad enormi sforzi di volontà per garantire il fondamentale diritto allo studio agli alunni, reinventando gli obiettivi didattici e formativi per garantire motivazioni e successo scolastico. In questo contesto cresce e si rafforza la voglia di impostare una Didattica realmente Innovativa, stimolante per gli allievi perché li motiva ad apprendere

Page 2: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

con gratificazioni tangibili. Proprio l’introduzione di una materia specifica per le prime classi (Tecnologie Informatiche) consente di organizzare il previsto studio degli algoritmi, partendo dai diagrammi di flusso, mediante applicazioni di Robotica con i KIT Lego Mindstorm . Nei successivi paragrafi vengono esposte in dettaglio le finalità,le metodologie, i risultati ottenuti e le prospettive per i successivi anni di corso.

2. Finalità dei Corsi di Robotica

Nei programmi di Tecnologie Informatiche è prevista la conoscenza degli algoritmi e le progettazione dei diagrammi di flusso (flow chart). La produzione progettuale è tipicamente indirizzata alla risoluzione di semplici calcoli aritmetici, eventualmente inseriti in un ciclo di ripetizione (loop) e con qualche evento condizionante (test sui risultati numerici delle elaborazioni) . A tal fine, il linguaggio più diffuso ed utilizzato è il C con tutta una serie di varianti. Il concetto di problema pratico da affrontare e risolvere e la conoscenza e l’uso degli strumenti logici adeguati costituisce la finalità essenziale di questa parte di programma. Il passaggio realmente innovativo consiste nella consapevolezza di produrre un insieme di scelte logiche, opportunamente motivate, e di trasferirle nella memoria di un automa che acquisisce così, pur in maniera semplificata,la cosiddetta “Intelligenza Artificiale” (A.I.).

Occorre però impostare alcune lezioni propedeutiche, inerenti il funzionamento dei principali sensori ed il loro principio fisico. A tal fine, ho preparato apposite slide in formato Presentazione,che con semplici animazioni descrivono il concetto di ultrasuoni e frequenze, raggi infrarossi ed ultravioletti, propagazione , riflessione e rifrazione della luce, momento di una forza, elementi di trasmissione del moto. Si tratta di concetti ripresi dalle basi della scuola secondaria di primo grado,allo scopo di livellare il grado di conoscenze di partenza.

2.1 Modalità didattiche Si utilizzano i kit della LEGO denominati Mindstorm NXT (letteralmente:

New eXTreme) . Sono composti da una centralina , tre motori, 4 sensori nella versione base (2 di tocco , 1 di ultrasuoni, 1 di luce, 1 audio) , mentre sono disponibili a parte altri tipi di sensori (infrarosso, bussola magnetica, colore, temperatura, ecc.) .

La centralina ha le seguenti caratteristiche: . Doppio microcontrollore . ARM7 32 bit, 256 Kbyte Flash, 64 Kbyte RAM . AVR 8 bit, 4 Kbyte Flash, 512 Byte RAM . 4 ingressi, 3 uscite . porta USB 1.1 12 Mbit/ secondo

Page 3: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

. Collegamento Bluetooth 2.0 fino ad un master e 3 slave

. Display grafico 100 x 64 pixel LCD

. Audio 8 KHz

. Alimentazione 9 Volt (6 batterie 1,5 tipo “AA” stilo oppure batteria ricaricabile )

Fig. 1 Centralina NXT

2.2 Sensori NXT Il sensore ad ultrasuoni è composto da un trasmettitore ed un ricevitore.

Viene misurato il tempo trascorso fra l’invio e la ricezione del segnale sonoro ad ultrasuoni, ed un’apposita routine calcola automaticamente la distanza ( velocità del suono = 340 m/s). La massima distanza coperta è 2,5 m , la precisione di ±3 cm.

Il sensore audio è composto da un microfono che rileva livelli sonori fino a

90 dB . Si può anche agire sul livello sonoro percentuale, che varia da un minimo del 4-5% in una stanza silenziosa, 10% la conversazione di una sola persona, 30% in un’aula scolastica, mentre oltre il 30% si va da rumori forti come battito di mani o fischietto (50%) fino ad una sala con musica ad alto volume (oltre 50% fino al 100%) . Le fonti sonore sono considerate a distanza di un metro dal sensore.

Il sensore ottico rileva la percentuale di riflessione della luce su una

superficie , a distanza di un paio di cm. Un valore elevato indica superficie chiara ,un valore basso superficie scura. Tipica applicazione è la ricerca di una linea nera da percorrere oppure da considerare come confine di un perimetro.

Altri sensori disponibili sono quello di tocco (rilevamento urti) , di colore

Page 4: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

(ricerca oggetti) , infrarosso e bussola (per i tornei di Soccer robotico della competizione Robocup junior).

2.3 Servo motori NXT. I Servo motori del kit Lego Mindstorm NXT hanno una velocità di rotazione

massima di 150 giri al minuto e si possono regolare sia mediante la percentuale di potenza (da 0% al 100%) che mediante modulazione a variazione di durata degli impulsi (PWM). In figura l’esploso del meccanismo di moto riduzione.

Fig. 2 Servomotore NXT con motoriduttore

2.4 Software per NXT e suo utilizzo nella didattica. I software disponibili per la programmazione della centralina Lego NXT

sono svariati. In ambiente Windows e Mac è disponibile l’applicativo NTX-G , creato dalla National Instruments sulla stessa piattaforma del più noto Lab-View. Esiste una versione in dotazione al Kit Retail (solo in inglese) ed una versione Educational a pagamento , anche in italiano. Si basa su un semplice ed intuitivo metodo di collegamento a blocchi, con l’indicazione dei cicli (loop) di ripetizione, dei test o switch ( interruttori logici vero-falso), dei motori e relativa gestione di potenze, velocità verso di rotazione e metodo di arresto (frenatura o rilascio in folle).

Risulta pertanto il più indicato per il passaggio diretto dal progetto dell’algoritmo con diagrammi di flusso al programma eseguibile.

Le esperienze svolte nel corso del corrente anno scolastico 2011-2012 sono state basate su una serie di step con difficoltà crescente.

• Conoscenza del robot base e metodi di azionamento dei motori per le possibili direzioni: avanti, indietro, curva destra e sinistra sia avanti che indietro.

Page 5: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

• Test dei sensori di tocco e di ultrasuoni per la rilevazione di ostacoli , con modifica del percorso.

• Test del microfono per l’avvio della routine: il robot è predisposto, ma si avvia al rilevamento di un suono abbastanza forte. Ad esempio, questa caratteristica si può usare per gare di velocità fra robot,oppure per una gara di Dance robotica.

• Test del sensore di luce. Il robot si ferma appena rileva la linea nera. Oppure il robot cerca di seguire una linea nera. Tuttavia, questo problema si risolve meglio se si mettono due sensori di luce a distanza di un paio di cm fra loro.

• Test combinati con più sensori. Ad esempio ultrasuoni avanti e dietro, o combinati con sensori di tocco. Oppure microfono e sensori di luce per gare di velocità con inizio e fine , seguendo una linea.

• Test finalizzati al raggiungimento di obiettivi complessi. Ad esempio una gara di Robocup junior Rescue. Questi obiettivi, tuttavia, sono da considerarsi limitatamente agli allievi che denotino particolari abilità e che intendano conseguire profitti ottimi o eccellenti.

Fin dall’inizio delle esercitazioni si possono evidenziare fra gli allievi le

differenti abilità di apprendimento e di profitto. A questo punto si individuano gli elementi leader per la creazione di gruppi di lavoro con possibilità di tutoraggio diretto da parte degli allievi più esperti e produttivi.

La valutazione del profitto avviene verificando i singoli alunni sulla produzione di algoritmi e programmi , e successivamente sulla capacità più o meno autonoma di risolvere i problemi oggettivi che un Robot presenta nel suo funzionamento reale, anche in presenza di un software apparentemente corretto dal punto di vista logico. E’evidente che la variabilità dei parametri ambientali come il terreno su cui si muove, la luminosità e la rumorosità della stanza, ecc. richiedono tarature ed aggiustamenti da operare con intelligenza e visione complessiva del problema.

3. Risultati ottenuti

I risultati didattici ottenuti in due classi prime ad indirizzo Informatica ed Automazione possono ritenersi lusinghieri,per i seguenti motivi.

• Gli allievi sono stimolati ad affrontare lo studio degli algoritmi per risolvere problemi concreti e tangibili.

• L’associazione diretta fra diagrammi di flusso e programmazione a blocchi rende naturale l’uso di questo metodo logico nel problem

Page 6: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

solving.

• La tecnica del tutoraggio fra compagni risulta motivante per gli alunni più deboli nell’apprendimento, grazie ad una maggiore apertura caratteriale ed un rapporto più diretto fra coetanei. Tutto ciò va comunque dosato nella misura di evitare comportamenti meramente passivi ( il programma me lo fa il compagno più bravo…).

• Si crea una mentalità collaborativa di gruppo, con il rispetto per gli altri ed eventualmente la competizione leale fra gruppi (piccole gare di robot).

4. Prospettive per gli anni successivi di Corso.

Il metodo didattico descritto può essere proseguito a partire dal secondo anno di Corso, nella materia Scienza e Tecnologia. Ma il linguaggio da adottare a questo punto può essere di tipo testuale,come ad esempio NXC. Nella tabella seguente si riportano i principali linguaggi disponibili per la centralina NXC.

Fig. 3 Linguaggi per NXC

Page 7: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

Come si può notare, il linguaggio NXC (Not eXactly C, freeware) è

utilizzabile anche su piattaforma Linux. Un ulteriore vantaggio consiste nella migliore leggibilità di programmi lunghi e complessi, divisibili anche in sottoprogrammi e task paralleli. Un particolare comando (Precedes) consente la gestione parallela di più sensori contemporaneamente, anziché la loro verifica sequenziale. I motori possono avere ciascuno una potenza diversa, regolabile automaticamente mediante variabili . Ad esempio si misura la distanza da un ostacolo e la potenza si riduce gradualmente,in proporzione alla distanza. Oppure più sensori di distanza opportunamente piazzati indicano l’avvicinarsi ad uno spigolo; un segui linea con 4 sensori di luce allineati consente scelte logiche sofisticate in tempo reale e quindi maggiore velocità del robot , e così via.

A partire dal terzo anno di Corso, nelle discipline Elettronica e Sistemi risulta utile una fase progettuale con porte logiche, sensori, e con l’uso del microcontrollore su piattaforma Arduino, in grado di azionare direttamente servo motori digitali ed al limite anche piccoli motori a corrente continua. Piccoli Robot basati sulla programmazione in linguaggio C e sulla progettazione elettronica possono essere progettati direttamente ed assemblati dagli allievi, ormai formati dal punto di vista logico ed applicativo.

In aggiunta ed in affiancamento a questi obiettivi curriculari , nell’Istituto

Tecnico “Archimede” di Catania abbiamo impostato una piattaforma didattica di Robotica come arricchimento dell’Offerta formativa e con obiettivi trasversali.

In orario pomeridiano, le classi di primo biennio partecipano alla preparazione per una competizione denominata ”Minirobot” , che si svolge ogni anno fra fine maggio ed i primi di giugno presso la Facoltà d’Ingegneria di Catania a cura dell’Associazione no profit ”Arces” (www.minirobotics.org) . La gara è basata sull’uso di kit Lego Mindstorm e vede la partecipazione di scuole secondarie prevalentemente siciliane, e talvolta anche da altre Regioni. I robot hanno obiettivi abbastanza complessi ,che richiedono l’uso anche di più centraline collegate fra loro col Bluetooth. Anche in questo Corso (extrascolastico e gratuito per gli alunni) si ricorre alla partecipazione volontaria di alunni più grandi ed esperti (del 3° o 4° anno ) , che riversano proficuamente la loro esperienza per la formazione logica e progettuale delle “nuove leve” .

Infine, gli alunni dal 3° anno in poi, sia Elettronici che Informatici e Meccanici partecipano ad un Corso di Robotica di secondo livello, basato sulla progettualità completa dei Robot e finalizzato alla partecipazione alle competizioni nazionali della Robocup junior.

5. Conclusioni

La Robotica Educativa rappresenta un ottimo strumento didattico per la

Page 8: 13 Ardito Apprendere la logica programmando robot 2 · inizialmente sull’uso di diagrammi a blocchi,vengono poi ... degli strumenti logici adeguati costituisce la finalità essenziale

www.ro

bocu

pjr.i

t

Sito web: www.robocupjr.it

formazione dei tecnici, in quanto,sulla base delle esperienze svolte, ha comportato i seguenti vantaggi:

� Motivazioni allo studio sia dell’Informatica che di altre discipline connesse alle problematiche affrontate: fisica (statica e cinematica, ottica, acustica,ecc.), matematica (proporzioni, equazioni,ecc.), inglese (per la frequentazione dei forum tecnici).

� Sviluppo delle capacità associate alle conoscenze ed alle competenze, per l’esigenza di affrontare e risolvere problemi concreti avvalendosi delle proprie attitudini logiche con le adeguate basi cognitive.

� Abitudine al lavoro di gruppo, all’identità di ruolo dei singoli individui in un contesto operativo,al rispetto delle opinioni altrui.

� Crescita caratteriale nelle competizione sana e leale, creazione e rafforzamento dello spirito di gruppo per raggiungere obiettivi comuni e condivisi.

Pertanto è possibile concludere che la Robotica Educativa rappresenti

davvero una Didattica Innovativa nei metodi e negli obiettivi di formazione tecnica, scientifica e caratteriale delle nuove generazioni.

Bibliografia [RIF] Michele Ballarin –Controllo Remoto di un Robot Via Bluetooth. Tesi di Laurea

Università degli Studi di Padova –Aprile 2007.