I miei corsi per Tecnica della Scuola: STEAM, idee di lezione e didattica attiva – 2′ edizione

Sono felice di comunicarvi che nel mese di ottobre prossimo, nelle date indicate di seguito, svolgerò la seconda edizione del corso: STEAM, idee di lezione e didattica attiva.
Questa seconda edizione avrà contenuti simili a quelli della prima edizione, però fornirò ulteriori suggerimenti che derivano dalle necessità espresse dai colleghi che hanno frequentato la prima edizione e dalle richieste pervenutemi via email.
La necessità impellente che molti esprimono è quella di fornire, anche se non è argomento incluso nel programma del corso, indicazioni e schede di lavoro specifiche per micro:bit e IoT, sarà quindi mia cura suggerire lavori e modalità operative in laboratorio. L’IoT con micro:bit sarà sicuramente argomento di un prossimo corso che sto realizzando e spero possa essere presentato nel breve.
Molti ancora mi chiedono indicazioni che permettono di realizzare attività in cui interagiscono più tecnologie: Ozobot Evo, micro:bit, Lego ed altri ancora desiderano realizzare attività ludiche realizzati con kit robotici.
Cercherò ovviamente di fornirvi tutto il supporto necessario in modo da soddisfare le vostre necessità didattiche.

Vi allego il programma ufficiale e ribadisco che se nascono necessità specifiche che non rientrano nel programma indicato, sarà mia cura fornivi il supporto necessario anche in momenti diversi rispetto alle date in cui si svolgerà le lezioni.

Date del corso

Il webinar si svolge 4 volte.

  • lun 4 ott 2021 17.00 – 19.00
  • gio 7 ott 2021 17.00 – 19.00
  • lun 11 ott 2021 17.00 – 19.00
  • ven 15 ott 2021 17.00 – 19.00

Programma del corso

Progettare l’attività didattica

  • Ricerca delle fonti
  • Progettazione dell’attività di laboratorio
  • Documentare l’attività.

Ozobot Evo

  • Tour introduttivo sulle possibilità didattiche
  • Specifiche tecniche del robot
  • Le applicazioni per tablet e smartphone
  • Usare il codice a colori come linguaggio di programmazione
  • Uso del codice colori: i primi programmi, ricerca degli errori, condivisione delle scoperte con il codice a colori
  • OzoBlockly: l’interfaccia di programmazione e connessione del robot
  • OzoBlockly: i primi programmi, ricerca degli errori, condivisione delle scoperte con la programmazione a blocchi
  • Storytelling con OzoBot
  • Integrare l’uso OzoBot nelle varie discipline didattiche.

Scratch 3

  • Conoscere l’interfaccia di programmazione
  • Ideazione dello storyboard
  • Progettazione delle meccaniche di gioco (interazione dei personaggi e degli oggetti)
  • Progettazione degli aspetti grafici di ogni livello di gioco
  • Impostazioni delle difficoltà di gioco.

Scratch Junior

  • Conoscere l’interfaccia di programmazione e le istruzioni di base
  • Realizziamo il primo programma
  • Attività di base:
    • Creare un Collage
    • Creare una Storia
    • Creare un Gioco
  • Rinforzare il curriculum di alfabetizzazione ed informatica – esempi di attività.

Tinkercad

 

  • Cos’è Tinkercad
  • Registrazione e Login
  • L’interfacci e il piano di lavoro
  • I movimenti dell’inquadratura
  • Selezionare e ridimensionare e unire solidi
  • Usare il righello e allineare gli oggetti
  • Proposta di esercizi.
  • Per ogni modulo verranno proposte attività di progetto pratiche.

Obiettivi

L’obiettivo del corso è quello di fornire le competenze necessarie per realizzare in piena autonomia attività di Coding e Making mediante software gratuito e hardware di baso costo specificatamente pensato per uso didattico per il potenziamento delle discipline STEAM tracciando con esercizi ed esempi specifici, per ogni ordine di scuola, un percorso immediatamente spendibile in classe.

Mappatura delle competenze

I partecipanti al corso acquisiranno le competenze per realizzare attività laboratoriali a supporto dell’apprendimento personalizzato: verrà mostrato come inserire nei propri percorsi didattici l’apprendimento della logica e del problem solving, in generale del coding, attraverso la realizzazione di giochi didattici e dispositivi in grado di interagire con l’ambiente.

Per maggiori informazioni sul contenuto del corso e modalità di iscrizioni vi rimando al link allegato.

Vi aspetto quindi al mio corso 🙂

Pubblicato in corsi | Contrassegnato , , , , , , , , | Lascia un commento

Arduino: stampare più funzioni sulla serial plotter

L’attività di progetto di questa mattina: progettazione di dispositivi elettronici che rispondono a diverse necessità per la salute umana: cura della persona, disabilità, sicurezza sul lavoro, strumenti medici/laboratorio, accessibilità dei luoghi pubblici, ecc…

Con mio piacere ne è nata un’intensa attività di ricerca che ha coinvolto l’intero gruppo classe. Molte le necessità e tra queste ne evidenzio uno, semplice, che riguarda la programmazione, che in più occasioni gli studenti affrontano durante le sperimentazioni e di cui mi sono reso conto di non avere documentato adeguatamente, ovvero: il plot di più funzioni su uno stesso piano cartesiano con Arduino.

Avevo mostrato in più occasioni come effettuare il plot di grandezze variabili nel tempo utilizzando la Serial Plotter dell’IDE di Arduino, uno degli ultimi articoli si riferisce alla realizzazione di uno strumento per la rilevazione di vibrazioni, un semplice sismografo realizzato con un sensore piezoelettrico.

Alcuni studenti questa mattina, si stavano cimentando nella progettazione di un guanto da utilizzare per la movimentazione di un braccio robot industriale della hyundai con l’obiettivo di simulare la movimentazione a distanza di sostanze chimiche pericolose. Nelle prime attività di ricerca si è manifestata la necessità di visualizzare su tre grafici diversi le componenti X, Y, Z dell’accelerazione fornite da un accelerometro connesso ad Arduino.

Come sicuramente saprete l’avvio della Serial Plotter avviene, così come per la Serial Monitor dal menù Tools. Ricordo che Serial Monitor e Serial Plotter non possono essere avviate contemporaneamente.

La Serial Plotter prende i valori che giungono dalla seriale (connessione USB) e li grafica su un piano cartesiano. I dati numerici vengono anche visualizzati nella parte in alto a sinistra della finestra della Serial Plotter.

I valori massimi e minimi rappresentati sull’asse Y vengono regolati automaticamente, mentre la dimensione dell’asse X è fissato a 500 punti e l’aggiornamento del grafico avviene ogni qual volta nel vostro sketch viene eseguita una Serial.println().

Ricordate inoltre di fissare il Baud Rate del Serial Plotter in modo che corrisponda a quello che avete indicato nel codice.

Per tracciare contemporaneamente forme d’onda è possibile agire in due modi:

inserendo uno spazio tra due istruzioni di stampa

Serial.print(temperatura);
Serial.print(" ");
Serial.println(umidita);

oppure inserendo una tabulazione tra due istruzioni di stampa

Serial.print(temperatura);
Serial.print("\t");
Serial.println(umidita);

In questo caso le due grandezze, temperatura e umidità, saranno rappresentate da due funzioni separate e tracciate contemporaneamente sullo stesso piano cartesiano.

A titolo di esempio consideriamo il mio post in cui mostravo come utilizzare un DHT11 e visualizzeremo sulla Serial Plotter le due grandezze fisiche temperatura ed umidità. Di seguito schema di collegamento, sketch e grafici.

// Prof. Maffucci Michele
// Visualizzazione della pressione e dell'umidità rilevata da un DHT11
// sulla Serial Plotter
// 16.09.2021

// Libreria DHT
#include "DHT.h"

// Pin digitale di arduino connesso al DHT
#define DHTPIN 2

// tipo del sensore: DHT 11
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  // Attesa di 1 millisecondo prima di fornire la misura.
  delay(1);

  // Lettura dell'umidità
  float h = dht.readHumidity();
  // Lettura della temperatura in gradi Celsius
  float t = dht.readTemperature();

  // Verifica se le si presenta un errore di lettura (e riprova nuovamente)
  if (isnan(h) || isnan(t)) {
    Serial.println(F("Impossibile leggere dal sensore DHT!"));
    return;
  }

  // Stampa del valore dell'umidità
  Serial.print(h);
  Serial.print(' ');
  // Stampa del valore della temperatura
  Serial.println(t);
}

Il plot delle due grandezze è:

Per completezza realizziamo un semplice sketch che permette di rappresentare 3 funzioni sinusoidali sfasate di 90 gradi una rispetto all’altra con ampiezze diverse:

// Prof. Maffucci Michele
// Visualizzazione di tre funzioni siusoidali
// di ampiezza diversa e sfasate di 90 gradi
// 16.09.2021

void setup() {
  Serial.begin(9600);
}

void loop() {

  // M_PI è la macro definita nell'header math.h
  // che definisce il pi greco che ha il valore di:
  // 3.14159265358979323846
  for(int i = 0; i < 360; i += 2) {
    float ValoreY1 = 1 * sin(i * M_PI / 180);
    float ValoreY2 = 2 * sin((i + 90)* M_PI / 180);
    float ValoreY3 = 4 * sin((i + 180)* M_PI / 180);

    Serial.print(ValoreY1);
    Serial.print(' ');         // deve essere stampato spazio ' ' o  tab '\t' tra due valori.
    Serial.print(ValoreY2);
    Serial.print(' ');         // deve essere stampato spazio ' ' o  tab '\t' tra due valori.
    Serial.println(ValoreY3);  // l'ultimo valore deve avere un ritorno a capo

    delay(1);
  }
}

Buon Coding a tutti 🙂

Pubblicato in arduino, i miei allievi | Contrassegnato , , , , , , | Lascia un commento

Raspberry Pi Pico – come cancellare un file dalla memoria del microcontrollore

Come avrete notato durante le prime sperimentazioni con il PiPico, possiamo depositare all’interno della memoria del microcontrollore più programmi in MicroPython e decidere quali di questi mandare in esecuzione. Nel caso in cui si desideri rendere l’avvio automatico e continuo uno programma non appena il PiPico  viene connesso ad una fonte di alimentazione, è sufficiente rinominate il file in main.py.
Può accadere quindi che le nostre sperimentazioni ci portino a memorizzare più programmi all’interno della memoria del PiPico pertanto si potrebbe avere la necessità di dover cancellare o rinominare alcuni di questi.
In questo breve tutorial vedremo come cancellare un file usando i comandi che inseriremo nella shell di Thonny.

Come aprire un programma memorizzato nel PiPico

Per poter consultare la lista di file memorizzati all’interno del microcontrollore con l’IDE Thonny, fate clic su “Apri” (seconda icona)

Si aprirà un pannello che richiede la selezione dell’unità da aprire: sul computer o sul PiPico, selezionare il Raspberry Pi Pico

Ciò aprirà la finestra di seguito indicata da cui poter visionare la lista dei file e con cui potrete aprire uno dei file per poi modificarlo o eseguirlo.

Cancellare un file memorizzato nel PiPico

Posizionate il cursore nella prima riga della Shell e digitate il comando. Inseriremo una serie di comandi terminali in Python:

import os

in Python “import os” consente di importare i moduli necessari per interfacciarsi con il sistema operativo sottostante su cui Python è in esecuzione ed eseguire una serie di operazioni sui file, come ad esempio la cancellazione, lo spostamento dei file, rinominare file, creare directory e molto altro. Poichè con MicroPython non si ha nessun sistema operativo il modulo os fornisce tutte quelle funzioni relative alla gestione del semplice del file system e le informazioni relativo al sistema.

Continua a leggere

Pubblicato in i miei allievi, programmazione, Raspberry Pi Pico | Contrassegnato , , , , | Lascia un commento

Dove prelevare tutte le versione del Firmware per il Raspberry Pi Pico e come installarlo

L’installazione del Firmware sul Raspberry Pi Pico è descritta nel primo post pubblicato, rispetto alla prima pubblicazione del mio post, le pagine della documentazione di Raspberry Pi Fundation sono state modificate, il clic sul file INDEX.HTM all’interno del vostro PiPico rimandava direttamente alla pagina di download, ora invece rimanda alla home page della documentazione. Per rendere più agevole il download, quindi, così come segnalato sul mio profilo Facebook, segnalo il link diretto alla pagina e alla sezione specifica di download.

Successivamente clic su: Download the MicroPython UF2 file.

Ciò che scaricherete è l’ultima versione (stable), ma nel caso in cui abbiate necessità di avere l’ultima versione, oppure desiderate sperimentare l’uso dell’ultima versione beta o ancora avere tutte le versioni passate del firmware, il sito di riferimento è https://micropython.org

recatevi nella sezione: Download

Selezionate: Raspberry Pi RP2040 microcontroller boards

Nella pagina troverete tutte le versioni, un clic sul link corrispondente per effettuare il download

L’installazione può avvenire tramite REPL, oppure premendo il pulsante sulla scheda BOOTSEL e procedere come descritto nel mio post.

L’installazione del Firmware può avvenire in una modalità ancora più comoda utilizzando anche l’editor Thonny che abbiamo iniziato a conoscere.

Connettete il PiPico al computer mantenendo premuto il pulsante BOOTSEL, dopo non più di 3 secondi rilasciate il pulsante, comparirà l’unità USB sul vostro computer. Avviate Thonny comparirà la seguente finestra:

Clic sul “Installa”

Al termine comparirà il messaggio “Done!”

Se fate clic su “Done!” si aprirà la finestra di stato che vi dirà su quale porta USB è connesso il vostro PiPico:

Un clic su “Chiudi” per iniziare a programmare.

Buon Making a tutti 🙂

Pubblicato in i miei allievi, programmazione, Raspberry Pi Pico | Contrassegnato , , , , | Lascia un commento

Raspberry Pi Pico – Blink di un LED esterno

Nel primo post pubblicato sull’uso di Raspberry Pi Pico, avevo concluso il tutorial mostrando come controllare l’accensione del LED sulla scheda, quello connesso alla pin 25. Il passo successivo, molto semplice, in quanto riprende i medesimi passaggi dell’ultimo esempio mostrato, sarà quello di controllare un LED esterno alla scheda.
Ovviamente sappiamo già che in serie al LED dovrà essere inserita una resistenza per controllare la corrente che fluisce nel LED (per approfondimenti consultare il link). Poiché in questo caso la tensione di alimentazione del LED sarà quella disponibile sulla scheda, 3,3 Volt, considerando un LED rosso, con una corrente di funzionamento di 15 mA ed una tensione di soglia di 1,8V, usando la legge do Ohm il valore della resistenza serie dovrà essere di 100 Ohm. Nel caso non abbiate questo valore potrete utilizzare anche i classici valori, 220 Ohm o 330 Ohm, che trovate in un qualsiasi kit di sperimentazione, valori più grandi di resistenza ovviamente faranno emettere a parità di tensione, una luminosità inferiore.

Colleghiamo un reoforo del resistore al pin digitale 15 (GPIO 15), il restante reoforo all’anodo del LED ed il catodo del LED al GND. Di seguito le immagini del Pin Out del PiPico e schema di collegamento:

Prendendo a riferimento il programma in MicroPython del precedente tutorial, andiamo a variare alcune linee di codice. Bisognerà modificare solamente il numero del pin digitale utilizzato:

# Prof. Maffucci Michele
# Blink LED connesso al pin 15
# 10.09.2021

# libreria che permette di utilizzare MicroPython con il RaspyMicro
import machine

# per la gestione del tempo
import utime

#pin 15 dichiarato come OUTPUT
ledEsterno = machine.Pin(15, machine.Pin.OUT)

# loop infinito, while sempre vero, che scrive, ad intervalli di 1 secondo
# sul pin 15 il valore 1 e 0 
while True:
    ledEsterno.value(1)    # imposta il livello logico 1 sul pin 15
    utime.sleep(1)         # lo stato logico 1 viene mantenuto per 1 secondo
    ledEsterno.value(0)    # imposta il livello logico 0 sul pin 15
    utime.sleep(1)         # lo stato logico 0 viene mantenuto per 1 secondo

Buon coding a tutti 🙂

Pubblicato in elettronica, i miei allievi, Raspberry Pi Pico | Contrassegnato , , , | Lascia un commento