Programmazione dei robot, abilità logiche e dinamiche nei processi di apprendimento - pag 2/5


    Linguaggi di programmazione disponibili

    Prima di prendere in considerazione i recenti mattoncini NXT è opportuno data la grande diffusione di due linguaggi di programmazione che sono forniti da lego® e si caratterizzano per essere entrambi grafici:

    • RCX Code, incluso nella versione commerciale, in vendita nei negozi di giocattoli;
    • ROBOLAB, basato su LabVIEW

    Il software ROBOLAB nasce dalla collaborazione di tre gruppi: TUFTS: Tufts University College of Engineering, University College of Engineering Center for Educational Outreach National Instruments LEGO® Dacta.

    RCXCode

    RCXCode è un ambiente di programmazione cosiddetto iconico funzionante su computer ed è in dotazione nel kit "Robotics invention System" e permette lo sviluppo di programmi di controllo del robot LEGO MindStorms®.

    Il programma è molto accattivante e per la sua struttura e si realizza assemblando blocchi grafici (elementi di controllo o istruzioni per il robot) in "impilamenti" di strutture grafiche bidimensionali, e attraverso una torretta a raggi infrarossi scaricato sull'RCX e quindi eseguito (immagine 1).

    Come in molti ambienti, l'interfaccia grafica agevola il lavoro di programmazione e di fatto impedisce al programmatore di commettere errori. Importante in questo ambiente di programmazione è la gestione dell'evento definito come proprietà che assumono i sensori.

    Immagine - 1 - Interfaccia grafica del programma RCX

    Immagine - 1 - Interfaccia grafica del programma RCX © Lego®

    In pratica quando la lettura di un sensore supera un certo valore di soglia, viene generato un evento che produce l'esecuzione di una particolare sequenza di istruzioni Il kit Mindstorms® mette a disposizione una prima fase introduttiva alla programmazione definita "Modalità guidata di programmazione RIS", una serie di esercitazioni ben guidate che permettono agli alunni comprendere i principi e le procedure fondamentali.

    L'RCX include già cinque programmi che permettono al robot di:

    • spostarsi in avanti ed emettere suoni
    • controllare il robot mediante due sensori di contatto eseguendo azioni di spostarsi in avanti e ruotare su i lati
    • spostarsi in avanti fino a quando il sensore ottico registra una diversa intensità  di luce
    • eseguire un movimento avanti/indietro cinque volte e per un intervallo di tempo casuale
    • spostarsi in avanti e modificare successivamente il senso di marcia quando incontra un ostacolo sul proprio percorso.

    Successivamente gli alunni, dopo aver imparato a costruire autonomamente robot, dovranno programmarli rendendoli veri robot ai quali sarà insegnato a muoversi ed agire liberamente. Programmando l'RCX in modo che reagisca ai sensori, è possibile determinare il reale comportamento delle "creature cibernetiche" e, in ultima analisi, rendere intelligenti i robot.

    Per far ciò occorre programmare nel Codice RCX attraverso una tecnica visuale molto efficace che procede attraverso un "impilamento di blocchi grafici".

    Il codice RCX è uno specifico linguaggio di programmazione di Robotic Invention System.

    Ciascun blocco visualizzato rappresenta un comando o istruzione.

    I Blocchi del Codice RCX sono:

    • blocco program (program untitled): rappresenta sempre il blocco iniziale di ogni programma e permette di aprire,salvare,eliminare il programma.
    • blocchi del menu commands: sono istruzioni che consentono all'RCX di eseguire i comandi ricevuti.Possono infatti accendere i motori,rimanere in attesa,emettere un suono
    • blocchi del menu sensor watcher: servono per controllare i valori dei sensori e determinano l'esecuzione di uno specifico stack collegato,quando vengono ad essere soddisfatte determinate condizioni.

    In pratica verificano le modifiche dell'ambiente di un robot e determinano una reazione conseguente.

    • blocchi del menu controllers: molto utili nella pratica permettono di controllare le modalità  di esecuzione di talune parti di programma.
    • blocchi del menu my commands: costituiscono dei collegamenti di programmazione e consentono anche di sostituire un lungo stack di comandi con un unico blocco.

    Il codice RCX permette di costruire stack a discesa e ciò significa che l'esecuzione del programma inizia al primo blocco e continua con quelli successivi.

    Nell'RCX possono essere memorizzati fino a cinque programmi: ogni programma può essere avviato o arrestato e ciascuno di questi può effettuare un numero massimo di nove stack diversi che vengono comunque eseguiti tutti contemporaneamente (Multitasking).

    Da un punto di vista metodologico sarebbe opportuno, attraverso una lezione/dialogo introduttiva della programmazione, presentare ai ragazzi alcuni robot invitandoli ad osservare le componenti meccaniche,il comportamento esibito ed il programma che lo controlla.

    Sul desktop si osserveranno i diversi comandi e istruzioni posti in relazione all'attività del robot e si porterà l'attenzione degli alunni soprattutto alle relazione intercorrenti tra evento e sensori ed eventi che possono attivare task.

    Un concetto fondamentale nella esecuzione del programma è quello di "concorrenza" o "multitasking". Anche in questo caso sarebbe opportuno far osservare ai ragazzi il comportamento del robot quando davanti al sensore ottico si accende una luce(pila) e lo stesso si arresta.

    Si invitano i ragazzi ad osservare attentamente il programma che ha controllato il comportamento del robot aiutandoli ad individuare nel medesimo un secondo task per il controllo del sensore e spegnimento dei motori.

    E' possibile così approfondire l'uso dei sensor watcher utilizzati per creare task paralleli attivabili grazie ad eventi particolari.

    Accanto al softaware RIS troviamo la Constructopedia che permette di costruire robot e fornisce suggerimenti e consigli pratici per affrontare le "sfide" proposte dal software.

    ROBOLAB

    Distribuito da LEGO Dacta® offre rispetto a RXC Code un software molto interessante a livello delle attività didattiche di programmazione in quanto versatile e di sicuro interesse a livello di apprendimento.

    Si caratterizza per l'interfaccia grafica che è installabile sia su Windows, che Macintosh.

    L'ambiente grafico di ROBOLAB trova origine e si basa su LabVIEW della National Instruments ed è concettualmente diverso da RCX Code.

    Utilizzato in ambito educativo, ROBOLAB è caratterizzato da livelli di programmazione: ciascuno dei quali è ulteriormente suddiviso in livelli di variabile complessità /difficoltà che sottendono nei percorsi di apprendimento procedimenti e attività didattiche legate al Problem-solving.

    RoboLab è un ambiente più completo di RCX Code, software fornito con le scatole Lego® della serie Mindstorms®, ed è il prodotto nato dalla collaborazione tra Tufts University, Lego Education® e National Instruments.

    Robolab si rivolge ad utenti più esperti rispetto a quelli che usano RCX Code.

    RoboLab si caratterizza per la sua gradualità  di complessità  di programmazione offrendo diversi sottoambienti:

    • Pilot, destinato alle prime fasi introduttive all'attività ;
    • Inventor, per realizzare programmazioni più complesse;
    • Investigator, per interpretare i dati che arrivano dall'ambiente: acquisire, elaborare e visualizzare dati letti dai sensori.

    Ogni ambiente a sua volta è strutturato su livelli di progressiva difficoltà, e compete all'utente scegliere le funzionalità  che vengono rese progressivamente disponibili secondo competenze diverse.

    Sommario articolo:



    Newsletter

    Resta informato con le nostre notizie periodicamente

    Cliccando sul pulsante iscriviti acconsenti al trattamento dei tuoi dati. La tua email non verrà MAI ceduta a nessuno!