Il coding aiuta a pensare meglio e in modo creativo, stimola la curiosità attraverso quello che apparentemente può sembrare solo un gioco. Il coding consente di imparare le basi della programmazione informatica, insegna a “dialogare” con il computer, a impartire alla macchina comandi in modo semplice e intuitivo. Il segreto sta tutto nel metodo: poca teoria e tanta pratica.
L’obiettivo non è formare una generazione di futuri programmatori, ma educare al pensiero computazionale, che è la capacità di risolvere problemi – anche complessi – applicando la logica, ragionando passo passo sulla strategia migliore per arrivare alla soluzione.
Il coding a scuola sta gradualmente ritagliandosi uno spazio nella didattica non solo perché educa al pensiero creativo, ma anche per un suo risvolto pratico. Perché ha a che fare con la nostra quotidianità, con molti oggetti che utilizziamo abitualmente e che riteniamo ormai indispensabili. Smartphone, tablet, videogiochi, persino elettrodomestici come la lavatrice o il forno a microonde funzionano grazie a un codice informatico, a una sequenza ordinata di istruzioni.
È importante imparare a programmare a scuola e all’Università? Il rettore di un importante ateneo italiano ha detto che il coding è il nuovo “inglese”, cioè fare coding per i ragazzi oggi è essenziale come imparare la lingua straniera più parlata al mondo, appunto l’inglese. E lo è perché il coding allena le menti dei bambini e dei ragazzi a usare la logica nella vita di tutti i giorni.
Coding, cos’è che lo rende così coinvolgente
Con il coding – come detto – gli studenti imparano a programmare divertendosi. Attraverso una serie di giochi ed esercizi interattivi, basati su un’interfaccia visuale, il bambino può determinare le azioni di uno o più personaggi spostando blocchi o oggetti grafici su un monitor. A ciascun blocco corrisponde un’azione, una linea di codice che non ha bisogno quindi di essere digitato. Basta muovere o assemblare i mattoncini tra di loro – nell’ordine necessario a raggiungere un certo obiettivo – e il gioco è fatto.
Funziona così Scratch, un linguaggio di programmazione per il coding e la robotica educativa[2] che permette di creare giochi e animazioni senza dover scrivere una sola riga di codice (per saperne di più puoi leggere l’articolo Come usare Scratch: una guida su tutto quello che ti serve sapere)[3].
Coding, cos’è e come funziona code.org
In rete esistono decine di app e software che consentono ancor prima di iniziare a “giocare” con la programmazione a tutte le età di comprendere facilmente il coding cos’è e come può essere utile. Se non sapete da dove iniziare, code.org può essere una buona base di partenza.
Si tratta di una piattaforma online, gratuita, che offre la possibilità a docenti e bambini dai 4 anni in su di seguire corsi di coding strutturati in modo progressivo, divisi per fasce di età e livello di difficoltà.
In questo video vediamo alcuni esercizi che potete trovare su code.org e comprendere facilmente il coding cos’è e perché non dovremmo sottovalutare le sue potenzialità:
Su code.org si basa anche il progetto Programma il Futuro, promosso dal Miur per favorire la diffusione del coding nella scuola primaria e nella scuola secondaria .
Micro Bit (noto anche come BBC Micro Bit, stilizzato come micro:bit) è un sistema embedded basato su architettura ARM progettato dalla BBC per l'utilizzo nella formazione informatica nel Regno Unito. Il dispositivo è stato distribuito gratuitamente ad ogni alunno nel Regno Unito al settimo anno di scuola (circa 11 anni di età) nel 2016. Ora è disponibile per l'acquisto ad un prezzo inferiore a 25 euro circa.
Il dispositivo è dotato di un processore ARM Cortex-M0, misura 4x5 cm, dispone di accelerometro e magnetometro, connettività USB e Bluetooth, display composto da 25 LED in una matrice 5x5, due tasti programmabili. Può essere alimentato via USB o da batteria esterna. È inoltre dotato di un connettore slot da 23 pin, cinque dei quali (di maggiori dimensioni) pensati per essere utilizzati anche con clip a coccodrillo o connettori a banana da 4 mm.
La piattaforma supporta ufficialmente lo sviluppo di software in Python e C++.
Di seguito in elenco trovate le caratteristiche tecniche principali della scheda, maggiori dettagli elettronici (corrente erogata dai pin, risoluzione del convertitore analogico digitale, sensibilità del magnetometro ed altro), saranno esposti durante lo svolgimento delle lezioni.
Sono presenti sulla scheda due pulsanti, nominati A e B (identificati con le lettere scritte direttamente sulla scheda) possono essere programmati in diversi modi. Le condizioni riconosciute sono la pressione breve, la pressione lunga e la pressione contemporanea dei due pulsanti. I pulsanti operano in logica inversa, ovvero quando il pulsante è in stato di rilascio l’ingresso corrispondente al livello logico “1”, mentre quando il pulsante viene premuto, l’ingresso corrispondente al livello logico “0”.
I pulsanti A e B sono collegati rispettivamente ai pin P5 e P11 del GPIO, il connettore a pettine presente sulla scheda ben evidente nell’immagine che segue.
La scheda è dotata di un connettore micro USB utilizzato sia per alimentare il circuito che per trasferire i programmi realizzati su computer.
Un connettore JST per l’alimentazione della scheda.
Un pulsante di reset permette il riavvio della scheda ed esegue l’ultimo programma caricato nella memoria della scheda (non cancella quindi il programma). Il reset è possibile sia nel caso in cui il micro:bit viene alimentato via USB che mediante la batteria esterna.
La scheda è dotata di 25 LED rossi che possono essere accesi con diversa intensità luminosa (10 livelli) e possono essere impiegati per visualizzare caratteri o disegni e come vedremo durante le esercitazioni potranno essere utilizzati per realizzare animazioni e giochi. Durante le esercitazioni mostrerò un curioso utilizzo dei LED come rilevatori di luce ambientale, un sistema non preciso, ma interessante per scopi didattici. Per ogni LED è possibile impostare la luminosità su una scala di dieci livelli.
Un accelerometro che rileva l’accelerazione sui tre assi. Con esso è possibile rilevare diverse tipologie di movimento: scuotimento, la rotazione e la caduta libera e tre livelli di accelerazione (2g, 4g, 8g).
Una bussola elettronica in grado di riconoscere l’orientamento del micro:bit rispetto al Nord magnetico. Essendo un magnetometro potrebbe essere anche impiegato come rilevatore di metalli e questo sarà una delle sperimentazioni che realizzeremo durante il corso.
Un modulo Bluetooth per la connessione a molteplici dispositivi: altri micro:bit, PC, smartphone, kit Bluetooth, tablet e fotocamere;
Sensore di temperatura per la rilevazione della temperatura ambiente. L’intervallo di temperatura rilevabile va dai -25 °C a 75 °C, con una risoluzione di 0,25 °C ed una accuratezza di +/- 4 °C, quindi siamo in presenza di un sensore non precisissimo, ma sufficiente per effettuare sperimentazioni didattiche.
Un connettore a 24 pin con passo 1,27 mm tranne 5 piazzole più larghe alle quali possono essere connessi morsetti a coccodrillo. Le piazzole più larghe sono inoltre dotate di foro centrale di 4 mm a cui è possibile ancorare con viti ulteriori connettori.
Il connettore è l’interfaccia verso il mondo esterno fornisce I/O digitali, analogici, touch, pwm, bus di comunicazione seriale I2C e SPI ovvero strade di comunicazione standard in elettronica usati da moltissimi dispositivi elettronici.
I terminali P0, P1 e P2 possono essere abilitati come sensori touch.Tutti i terminali del connettore a pettine sono connessi al medesimo pin su entrambi i lati della scheda e per evitare cortocircuiti o interferenze i terminali piccoli, collocati a destra e sinistra delle piazzole grandi, GND e 3V, sono rispettivamente collegati a GND e 3V. Ai connettori è possibile assegnare funzioni differenti assegnabili via software.
La scheda può essere alimentata in 3 modi:
1. tramite il connettore micro USB;
2. con una alimentazione di 3V data da due batterie da 1,5V connesse tramite connettore JSC al micro:bit;
3. collegando direttamente una sorgente di alimentazione ai terminali 3V e GND presenti sul connettore a pettine.
Particolare attenzione bisogna porre se alimentate la scheda attraverso i connettori 3V e GND presenti sul connettore a pettine, in quanto il connettore a 3V è collegato direttamente ai circuiti integrati presenti sulla scheda e una tensione superiore ai 3,6 V danneggia irreparabilmente il micro:bit. Durante le sperimentazioni potreste avere necessità di alimentare piccoli circuiti esterni, tenete in conto che la massima corrente utilizzabile è di 90 mA.
Il micro:bit può comunicare con altri dispositivi mediante una connessione USB versione 1.1 a 12Mbit), quindi supportata da qualsiasi dispositivo recente e datato. La gestione USB avviene integralmente via software, la scheda viene rilevata da qualsiasi PC come una normalissima memoria di massa, come ad es. una chiavetta USB o SD, in questo modo potrete trasferire il software che create dal PC alla scheda semplicemente trascinando il file nel micro:bit nella cartella radice, i file non dovranno quindi essere inseriti in particolari cartelle sulla memoria del micro:bit. Durante la fase di trasferimento noterete che sulla scheda un LED situato nella faccia opposta a quella dei due pulsanti incomincia a lampeggiare velocemente, al termine del trasferimento il LED si spegne e parte immediatamente l’esecuzione del programma.
La connessione seriale USB può anche essere utilizzata per la trasmissione e la ricezione di dati provenienti da altri micro:bit, computer o altri tipi di microcontrollori, vedremo questa caratteristica in sperimentazioni apposite che vi proporrò più avanti.
§ Processore: ARM Cortex-M0 32 bit processor
§ Flash ROM: 256KB
§ RAM: 16KB
§ Speed: 16MHz
§ Bluetooth 4.1 con Bluetooth low energy
§ L’anti rimbalzo dei pulsanti è gestito via software
§ Accelerometro sensibile sui 3 assi con risoluzione di 10 bit (0..1023) che può rilevare accelerazioni 2g, 4g e 8g
§ Sensibilità magnetometro 0.10 microT
[1] https://www.robotiko.it/coding-cose/
[2] https://www.robotiko.it/robotica-educativa-come-costruire-un-robot/
[3] https://www.robotiko.it/come-usare-scratch/
[4] https://it.wikipedia.org/wiki/Micro_Bit
[5] https://www.maffucci.it/2017/09/06/coding-a-scuola-con-bbc-microbit-lezione-1/