Archivi tag: coding

Coding a scuola con BBC micro:bit – non toccare il filo metallico!

Propongo una scheda didattica che ho utilizzato durante i miei corsi di formazione per scuole medie ed elementari e durante la formazione per docenti. Questa proposta laboratoriale di Coding è la variante di una sperimentazione che spesso viene proposta durante i laboratori con micro:bit, nella scheda che vi propongo ho effettuato delle variazioni sulle modalità costruttive e sugli esercizi proposti.

Scheda di lavoro: non toccare il filo metallico!

OBIETTIVO: realizziamo un gioco in cui dovete percorrere un percorso costituito da un filo metallico senza toccare il filo. Ogni volta che toccate il filo sarà visualizzata una X e successivamente il numero di errori che avrete totalizzato.

PASSO 1

Per realizzare questa esercitazione avrete bisogno:

  • due fili di metallo di lunghezza variabile tra i 30 cm e i 50 cm
  • due mollette per biancheria
  • due cavi con morsetti a coccodrillo
  • batterie per micro:bit

PASSO 2

Realizziamo il programma che permette di impostare inizialmente il numero di errori a 0. Dall’area di programmazione cancellare le istruzioni: “on start” e “forever”

PASSO 3

Dalla sezione Input selezionare l’istruzione “on button A pressed” e trascinarla nell’area di programma

PASSO 4

Dalla sezione Variables selezionare “Make a Variables” e create la variabile errori

PASSO 5

Trascinare l’istruzione “set errori to 0” l’istruzione “on button A pressed”

PASSO 6

Trascinare l’istruzione “show number 0” dalla sezione “Basic” e inserirla dopo l’istruzione “set errori to 0”

PASSO 7

Dalla sezione “Variables” trascinare la variabile errori all’interno del valore 0 in “show number 0”

PASSO 8

Realizzare il programma che permette di aggiungere una unità ognivolta che viene fatto un errore.
Dalla sezione “Input” selezionare l’istruzione “on pin P0 pressed” e trascinarla nell’area di programma:

PASSO 9

Aggiungere due blocchi che permettono di visualizzare una X per 1 secondo:

PASSO 10

Quando tocchiamo il filo bisogna sommare 1 alla variabile errori per fare questo aggiungere un’istruzione “change errori by 1” come indicato nell’immagine:

PASSO 11

Aggiungere con un’istruzione “show number 0” e al posto del valore 0 inserire la variabile “errori”, in modo che venga visualizzato sul display il numero di errori ogni volta che viene toccato il filo:

PASSO 12

Fate click su “Download” per trasferire il programma sul micro:bit

PASSO 13

Costruire l’anello avvolgendo uno pezzo di filo:

PASSO 14

Costruire il percorso con il secondo pezzo di filo ed utilizzare le due mollette per costruire il supporto per reggere il filo:

PASSO 15

Inserire l’anello all’interno del percorso:

PASSO 16

Collegare un morsetto a coccodrillo sull’anello ed uno ad uno dei due capi del percorso:

PASSO 17

Collegare i cavi dell’anello e del percorso rispettivamente ai pin 0 e GND

Proposte di esercizio

Prerequisiti

Utilizzando il circuito precedente spostare il coccodrillo dal pin 0 al pin 1 e modificare il programma precedente in modi che abbia il medesimo funzionamento. Aggiungere un piccolo altoparlante, in alternativa le cuffie del cellulare e collegarlo come riportato nell’immagine che segue tra il contatto 0 e il contatto GND del micro:bit

Esercizi

  1. Far emettere una melodia musicale quando si avvia il micro:bit
  2. Far emettere una nota musicale quando l’anello tocca il filo

Suggerimento

Per rendere più agevole l’utilizzo in classe, allego questa scheda di lavoro impaginata in formato PDF.

scheda di lavoro – non toccare il filo metallico! (PDF)

Buon Coding a tutti 🙂

Coding a scuola con BBC micro:bit – contapassi

Negli scorsi mesi ho svolto numerose attività di formazione sull’uso di micro:bit per docenti e studenti, queste attività mi offrono la possibilità di modificare ed aggiungere nuovi contenuti alle schede che realizzai tempo fa e che trovate nella sezione: “Usare BBC micro:bit“.

In questo periodo sto svolgendo un’attività di formazione per i bambini di scuola elementare dell’Istituto Comprensivo di Vinovo (To), un’esperienza divertentissima ed estremamente creativa. I bambini mi permettono di ripensare e credo migliorare, la mia modalità di insegnare.

Durante l’ultima lezione ho mostrato come misurare le lunghezze utilizzando come unità di misura il passo, partendo dal Coding abbiamo parlato di geometria e misure di distanza.

Vi allego di seguito la scheda di lavoro, in cui trovate al fondo le proposte di esercizi e nell’ultima parte trovate un approfondimento dedicata però agli studenti di scuola media.

Scheda di lavoro – contapassi

Aggiungo inoltre la scheda relazione che consegnerò agli studenti nella prossima lezione in cui dovranno descrivere le fasi della sperimentazione ed eventuali osservazioni che possono essere fatte anche con disegni.

Relazione – contapassi

Buon Coding a tutti.

 

Formazione Docenti Neoassunti a.s. 18/19 – Nuove Tecnologie e loro impatto nella Didattica

Nuove Tecnologie e loro impatto nella didattica, un corso per i colleghi neassunti di Torino, due giorni full immersion tra Coding, Applicativi Web per la progettazione didattica e la gestione della classe.

L’intervento è volto all’analisi delle innovazioni metodologiche apportate dalle Tecnologie della Comunicazione e dell’Informazione nel processo di insegnamento/apprendimento con ogni tipologia di allievo e nello specifico verranno offerte soluzioni pratiche da adottare in classe anche con studenti con necessità specifiche.

Temi principali:

  • Dove informarsi: strategie didattiche (flipped classroom, coding, learning design, etc…), tutorial e case history
  • Dove formarsi sull’uso delle tecnologie didattiche
  • Applicativi software (gratuiti) di base per la creazione del proprio network di apprendimento all’uso delle tecnologie didattiche.
  • Come progettare la propria presenza didattica on-line
  • Cercare sul web: strategie di ricerca su web. Esempi pratici ed esercizi per la ricerca mirata di contenuti didattici mediante i motori di ricerca.
  • Come si progetta la didattica, strategie e strumenti software per l’organizzazione del proprio lavoro.
  • Office automation cloud
  • Social learning

Il corso si svolgerà presso l’IIS Gobetti Marchesini – Casale Arduino Via Figlie dei Militari, 25 Torino

  • Mercoledì 13 marzo 2019
  • Venerdì 15 marzo 2019

dalle ore 15.00 alle ore17.30.

 

Winter Camp 2019 – sviluppare competenze attraverso le nuove tecnologie

Creatività, espressione e innovazione per il Primo Ciclo – sviluppare competenze attraverso le nuove tecnologie.

Sabato 23 e 24 febbraio prossimi parteciperò come relatore alla terza edizione degli INcontri digitali presso l’Istituto Comprensivo Statale di Vestone (Brescia), corso invernale di formazione per insegnanti.

Il laboratorio che condurrò ha come titolo: “Divertiamoci a progettare il nostro apprendimento con il Coding e la robotica” e sarà dedicato a docenti della primaria e secondaria di primo grado.

questo l’abstract:

Insegnare a progettare il proprio apprendimento attraverso il Creative Computing utilizzando BBC micro:bit una picola scheda elettronica appositamente progettata per svolgere attività di Coding con studenti della scuola primaria e secondaria di primo grado.

BBC micro:bit può essere programmato in diverse modalità, ma quella principale fa uso di un ambiente di sviluppo on-line che permette di operare con un linguaggio di programmazione grafico, costituito da blocchi funzionali che possono essere tra essi collegati.

Le caratteristiche tecniche di micro:bit consentono di realizzare attività con forte interattività con il mondo reale: robot, strumenti musicali, strumenti di misura, giochi interattivi e molto altro, attività che verranno sperimentate durante il workshop.

L’evento include altri interessangtissimi laboratori condotti dai colleghi:

  • Roberto Sconocchini – Laboriatorio: C’ERA UNA VOLTA… – Per scuola dell’infanzia e primaria
  • Luca Raina – LABORATORIO: GAMIFICATION – Per scuola primaria e secondaria di 1° grado

Per maggiori informazioni:

Locandina di presentazione:

Utilizzo dell’LCD 16×2 Hitachi HD44780 1602 con modulo I2C PCF8574T

Addendum al progetto EduRobot.

Una settimana è bastata per scatenare la fantasia di giovani studenti alle prese con EduRobot per l’attività di Alternanza Scuola Lavoro. Le relazioni di lavoro mettono in evidenza soluzioni alternative originali, la richiesta è di continuare ad aggiungere funzionalità ad EduRobot, vedremo nelle prossime settimane come proseguire con i lavori, ma sicuramente in questa prima fase mi posso ritenere soddisfatto! 😊

Tra le richieste che mi sono state fatte vi è quella di inserire un display per aggiungere interattività con il robot. Tra le possibilità ho suggerito l’utilizzo di un LCD 16×2 Hitachi HD44780 1602 quelli in dotazione con molti kit Arduino. Per rendere più agevole la gestione e i collegamenti, visto l’elevato numero di connessioni presenti su EduRobot, ho consigliato l’utilizzo di un modulo PCF8574T per il controllo in I2C, poiché gli studenti sono giovani ed ancora non hanno affrontato questo argomento, con questo post voglio dare un piccolo aiuto.

Disponiamo dei moduli della sunfounder su cui è già saldato il modulo i2C:

l’utilizzo è identico ai più comuni expander esterni come quelli indicati nell’immagine che segue:

Il display è costituito da 4 pin di connessione, due dedicati all’alimentazione e due alla comunicazione i2C.

Le connessioni tra LCD1602 i2C ed Arduino sono i seguenti:

LCD1602 —> Arduino
GND -> GND
Vcc -> 5V
SDA -> A4
SCL -> A5

Per poter utilizzare questo display è necessario installare la libreria LiquidCrystal_I2C dal seguente link: https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

Prelevate il file .zip ed installate la libreria direttamente dall’IDE di Arduino:

in alternativa potete scompattare e copiare il tutto nella cartella libraries di Arduino.

Piccolo avvertimento, sicuramente nelle vostre sperimentazioni prenderete spunto da sketch che troverete on-line, alcune volte questi esempi sono datati e si riferiscono ad una versione dell’ide di qualche anno fa in cui si poteva inizializzare l’LCD nel setup con: lcd.init(), ciò non è più possibile sostituitela con la classe lcd.begin() così come indicato negli esempi che seguono.

Includo a questo post una serie di sketch tutti tratti dal reference di Arduino e riadattati per un uso con il modulo PCF8574T in modo da accelerare le attività di sperimentazione dei miei allievi.

Il funzionamento di ogni esempio è dettagliato con commenti all’interno degli sketch.

/* Prof. Michele Maffucci
 * Utilizzo di un display LCD 16×2 Hitachi HD44780 1602
 * con modulo i2C PCF8574T
 * Esempio 1: scrittura testo su due righe
 */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// inizializzazione della libreria in cui è descritta la modalità di utilizzo dei pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // impostazione dell'indirizzo dell'LCD 0x27 di 16 caratteri e 2 linee
//-----------------------------
void setup()
{
  lcd.begin();      // inizializzazione dell'LCD
  lcd.backlight();  // attivazione della retroilluminazione
}
//-----------------------------


void loop()
{
  lcd.setCursor(2,0);
  lcd.print("Ciao Ragazzi");
  lcd.setCursor(0,1);
  lcd.print("Io sono EduRobot");
}
/* Prof. Michele Maffucci
 * Utilizzo di un display LCD 16×2 Hitachi HD44780 1602
 * con modulo i2C PCF8574T
 * Esempio 2: noBlink - Blink
 */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// inizializzazione della libreria in cui è descritta la modalità di utilizzo dei pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // impostazione dell'indirizzo dell'LCD 0x27 di 16 caratteri e 2 linee
//-----------------------------
void setup()
{
  lcd.begin();      // inizializzazione dell'LCD
  lcd.backlight();  // attivazione della retroilluminazione
}
//-----------------------------

void loop() {
  // Turn off the blinking cursor:
  lcd.noBlink();
  delay(3000);
  // Turn on the blinking cursor:
  lcd.blink();
  delay(3000);
}
/* Prof. Michele Maffucci
 * Utilizzo di un display LCD 16×2 Hitachi HD44780 1602
 * con modulo i2C PCF8574T
 * Esempio 3: noDisplay - Display
 */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// inizializzazione della libreria in cui è descritta la modalità di utilizzo dei pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // impostazione dell'indirizzo dell'LCD 0x27 di 16 caratteri e 2 linee
//-----------------------------
void setup()
{
  lcd.begin();      // inizializzazione dell'LCD
  lcd.backlight();  // attivazione della retroilluminazione
  lcd.print("EduRobot");
}
//-----------------------------

void loop() {
  // disattiva il display
  lcd.noDisplay();
  delay(500);
  // attiva il display
  lcd.display();
  delay(500);
}
/* Prof. Michele Maffucci
 * Utilizzo di un display LCD 16×2 Hitachi HD44780 1602
 * con modulo i2C PCF8574T
 * Esempio 4: scrollDisplayLeft() - scrollDisplayRight()
 */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// inizializzazione della libreria in cui è descritta la modalità di utilizzo dei pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // impostazione dell'indirizzo dell'LCD 0x27 di 16 caratteri e 2 linee
//-----------------------------
void setup()
{
  lcd.begin();      // inizializzazione dell'LCD
  lcd.backlight();  // attivazione della retroilluminazione
  lcd.print("EduRobot");
  delay(1000);
}
//-----------------------------

void loop() {
  // sposta di 8 posizioni (lunghezza della tringa: EduRobot) a sinistra
  for (int positionCounter = 0; positionCounter < 8; positionCounter++) {
    // per far percepire la variazione di posizione del testo mettiamo in pausa per un breve istante
    lcd.scrollDisplayLeft();
    // aspetta un momento:
    delay(150);
  }

  // sposta di 24 posizioni (lunghezza della tringa + lunghezza del siplay(n. colonne)) a destra
  for (int positionCounter = 0; positionCounter < 24; positionCounter++) {
    // sposta di una posizione a destra
    lcd.scrollDisplayRight();
    // per far percepire la variazione di posizione del testo mettiamo in pausa per un breve istante
    delay(150);
  }

  // sposta di 24 posizioni (lunghezza della tringa + lunghezza del siplay(n. colonne)) a sinistra
  // to move it back to center:
  for (int positionCounter = 0; positionCounter < 24; positionCounter++) {
    // sposta di una posizione a sinistra
    lcd.scrollDisplayLeft();
    // per far percepire la variazione di posizione del testo mettiamo in pausa per un breve istante
    delay(150);
  }

  // al termine di un ciclo di uno spostamento destra e sinistra
  // attesa di 1 secondo
  delay(1000);
}
/* Prof. Michele Maffucci
 * Utilizzo di un display LCD 16×2 Hitachi HD44780 1602
 * con modulo i2C PCF8574T
 * Esempio 5: Serial Input
 */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// inizializzazione della libreria in cui è descritta la modalità di utilizzo dei pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // impostazione dell'indirizzo dell'LCD 0x27 di 16 caratteri e 2 linee
//-----------------------------
void setup()
{
  lcd.begin();        // inizializzazione dell'LCD
  lcd.backlight();    // attivazione della retroilluminazione
  Serial.begin(9600); // inizializzazione della porta seriale
}
//-----------------------------


void loop() {
  // quando un carattere viene inviato alla serial monitor...
  if (Serial.available()) {
    // attende un momento prima di inviare il testo sulla seril monitor
    delay(100);
    // cancella lo schermo
    lcd.clear();
    // legge tutti i caratteri disponibili sulla seriale
    while (Serial.available() > 0) {
      // visualizza i caratteri sul display
      lcd.write(Serial.read());
    }
  }
}
/* Prof. Michele Maffucci
 * Utilizzo di un display LCD 16×2 Hitachi HD44780 1602
 * con modulo i2C PCF8574T
 * Esempio 6: setCursor()
 */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// inizializzazione della libreria in cui è descritta la modalità di utilizzo dei pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // impostazione dell'indirizzo dell'LCD 0x27 di 16 caratteri e 2 linee
//-----------------------------

const int numRows = 2;
const int numColonne = 16;

void setup()
{
  lcd.begin();        // inizializzazione dell'LCD
  lcd.backlight();    // attivazione della retroilluminazione
}
//-----------------------------


void loop() {
  // stampa in loop i caratteri ASCII da 'a' a 'z':
  for (int lettera = 'a'; lettera <= 'z'; lettera++) {
    // ciclo per le colonne
    for (int  riga = 0; riga < numRows; riga++) {
      // ciclo per le righe
      for (int colonna = 0; colonna < numColonne; colonna++) {
        // imposta la posizione del cursore
        lcd.setCursor(colonna, riga);
        // stama il carattere
        lcd.write(lettera);
        delay(200);
      }
    }
  }
}
/* Prof. Michele Maffucci
 * Utilizzo di un display LCD 16×2 Hitachi HD44780 1602
 * con modulo i2C PCF8574T
 * Esempio 7: leftToRight() - rightToLeft()
 */

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// inizializzazione della libreria in cui è descritta la modalità di utilizzo dei pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // impostazione dell'indirizzo dell'LCD 0x27 di 16 caratteri e 2 linee
//-----------------------------

int lettera = 'a';

void setup()
{
  lcd.begin();        // inizializzazione dell'LCD
  lcd.backlight();    // attivazione della retroilluminazione
  lcd.cursor();       // attiva il cursore
}
//-----------------------------


void loop() {
  // cambia direzione (da destra a sinistra)
  // quando l'ultima lettera stampata è la 'm':
  if (lettera == 'm') {
    // sposta il cursore a destra per stampare la lettera successiva
    lcd.rightToLeft();
  }
  // cambia direzione (da sinistra a destra)
  // // quando l'ultima lettera stampata è la 's':
  if (lettera == 's') {
    // sposta il cursore a sinistra per stampare la lettera successiva
    lcd.leftToRight();
  }
  // reset quando atriviamo alla 'z':
  if (lettera > 'z') {
    // spostare il cursore a (0,0):
    lcd.home();
    // ricomincia dalla posizione 0
    lettera = 'a';
  }
  // stampa il carattere
  lcd.write(lettera);
  // aspetta un secondo
  delay(1000);
  // incrementa la lettera
  lettera++;
}

Buona sperimentazione 🙂