Archivi categoria: i miei allievi

RobotArm:bit, storia di un piccolo progetto

Qualche settimana fa…

Mannaggia fare questo mestiere è complicato, la giornata sarà ancora lunga, terminerà solo questa sera dopo la riunione con le famiglie…
ora mi prendo 10 minuti di pausa, è intervallo, mi chiudo in laboratorio di sistemi elettronici alla ricerca di un momento yogico, ma il frastuono degli allievi che chiacchierano a gran voce in corridoio non mi permette la “ricarica” completa.
Con la matita pasticcio su un foglio di carta millimetrata, ad un certo punto un frastuono mi fa sobbalzare dalla sedia, è la porta del laboratorio aperta malamente da un allievo che mi dice:

Allievo: “Vabbè Prof. poteva dircelo!”

Io: “Marco! La parola magicaaaa?”

Allievo: “Buooongioorno Proooof”

Io: “Marco il Prof. è un po’ scombussolato, tenta di far la dieta è in carenza di zuccheri ha dormito poco…. eeee sta cercando unaaa soluzione!”

Allievo: “Cosa Prof???
Aaaa ok ho capito!
Sta scarabocchiando sui nostri disegni, ci vuole fregare!
Si sta inventando una di quelle robe elettroniche per farci venire voglia di studiare…
vabbè vabbè Prof.! Volevo solo sapere perché non porta anche noi di seconda alla mostra Lego, porta tutti gli altri e a noi non ha detto nulla!
Vogliamo usare anche noi i robottini!”

Io: “Marco! Porta pazienza ma anche il tuo Prof. dimentica!”

Allievo: “Ok ok ok ho capito l’età si fa sentire!”

Io: “Marco tu sai che gestisco il registro elettronico, vuoi mica che tutti i tuoi voti diventino bit disordinati persi nel Matrix?”

Allievo: “Magari Prof.! Scomparirebbero i 4 di mate!”

…volevo dirle… allora… noi veniamo con lei,
siamo in quattro,
e se vuole diamo anche una mano a fare orientamento scolastico,
insomma lei ci porta alla mostra e noi la ripaghiamo facendo orientamento”

Io: ”Marco ma questa cosa si chiama estorsione! 🙂
ok ok dai vi porto”

E’ sera…
torni a casa correggi i disegni e ritrovi lo scarabocchio,
ma a cosa stavo pensando?

Pensavo agli “oggetti faro”.
Te le devi inventar tutte per far studiare gli allievi.

Cos’é “l’oggetto faro”?

Il progetto che vi condivido è quello di un piccolo e semplice braccio robot, che sarà inserito all’interno di un percorso più ampio di Coding in cui si utilizza sia di BBC micro:bit che di Arduino, l’attività sarà svolta tra qualche mese.

Durante i corsi mi capita che studenti appassionati chiedano di realizzare progetti che pregiudicano competenze ancora non acquisite ed il rischio è che lo studio inizia con gran voglia di fare e subito dopo sopraggiunge affanno perché non si riesce a gestire la complessità degli argomenti trattati.

Ecco che il metodo degli “oggetti faro” può venirci in aiuto.
Ma di cosa si tratta?

E’ una strategia che probabilmente con altri nomi già viene attuata da altri colleghi, a me piace chiamarla in questo modo e in sostanza mi permette, costruendo “oggetti faro” di far percepire allo studente la direzione in cui si sta andando e durante l’attività di formazione mi permette di mantenere vivo l’interesse anche se la complessità aumenta nel tempo.

“Professore voglio progettare un braccio robot che possa sollevare almeno 1 kg e che abbia 6 gradi di libertà, ma non voglio copiarlo on-line, ma voglio progettarlo io, ho visto che sta usando micro:bit, ritiene che debba usare questa scheda oppure e meglio usare Arduino? Mi spiega come fare?
A Prof. non so molto di meccanica e di elettronica se compro tutto e porto a scuola mi spiega?”

Se la richiesta viene da un allievo di prima superiore, l’attività può diventare un po’ complessa da gestire 🙂

Tornando agli “oggetti faro”, RobotArm:bit è uno di questi.
Arriverà un momento in cui l’allievo mi chiederà di non giocare più con la matrice di LED del micro:bit, ma vorrà incominciare a movimentare oggetti e dopo aver spiegato come gestire ad esempio un servo con micro:bit gli si spiega come usarne due insieme, poi come usarne tre e poi come pilotare i tre servo a distanza con un altro micro:bit e poiché bisogna dare delle risposte all’allievo citato prima, si aggiunge l’esercitazione con “l’oggetto faro” realizzato in modo molto elementare ed espandibile…

A questo punto si attua una strategia project learning breve che ha come punto di partenza “l’oggetto faro” RobotArm:bit per esempio. Cosa può succedere?

Nella mente del ragazzo nascono nuove idee:

“Prof. disegno una versione più grande e la stampiamo a scuola, quali software devo imparare ad usare? Lo faccio io da solo a casa!”

Quindi nuovi breanch si aprono e gli studenti portano ad esplorare in autonomia nuovi argomenti, tutto questo mi permette di insegnare ad esplorare, è una semplice strategia che serve per far nascere passioni.

Però bisogna proseguire con il corso.
Nuovi contenuti nuove sperimentazioni per giungere “all’oggetto faro” successivo, ad esempio un WalkerBot:bit e così di seguito.

Insomma un percorso intervallato da milestones (punti di riferimento) costituiti da “oggetti faro” su cui attuo del project learning da cui cerco di far nascere branch creativi gestiti in modo indipendente da parte dello studente.

Come realizzare RobotArm:bit?

Se avete necessità di realizzare RobotArm:bit vi rimando su Thingiverse dove potrete prelevare i sorgenti grafici per la stampa 3D, di seguito invece una sequenza fotografica che mostra i passi di costruzione, alla fine di questo post trovate video e link al programma di test realizzato con il JavaScript Blocks editor, è molto semplice e mi permette di selezionare tre movimenti.

Le leve collegate ai servo devono essere incollate alle parti stampate in 3D, ovviamente se desiderate potete utilizzare delle viti.

4 oggetti

Inserimento del primo servo

Incollare le leve con i giunti da collegare all’albero di ciascun servomotore

Fissare i servomotori con le viti in dotazione

Unire ogni parte

Per la stampa si poteva fare di meglio… ma vabbè lascio a voi i miglioramenti.

Se avete bisogno del codice per realizzare i medesimi movimenti del video seguite il link.

STM 32 Nucleo – Supporto Arduino Core

E’ da tempo che mi ero ripromesso di utilizzare le schede STM32 Nucleo, desideravo svilupparne alcuni moduli didattici, ma la mia attenzione era rivolta verso altre tecnologie, fortunatamente l’incontro dell’amico Giuseppe Treccarichi e la chiacchierata con gli ingegneri di ST (molto gentili e disponibili) durante la recente MakerFaire di Roma mi hanno convinto che spiegare anche l’uso di STM 32 Nucleo può essere un valore aggiunto per i miei allievi, pertanto mi sto dedicando da qualche giorno alla realizzazione di lezioni sull’uso di queste schede.

La linea ST32 Nucleo è ormai sul mercato da lungo tempo, venne presentata nel 2014, però recentemente ST ha reso disponibile l’Arduino Core ST32 che permette la programmazione di diverse schede ST32 Nucleo mediante l’IDE di Arduino, inoltre il processore a 32 bit, le velocità elevate (nella versione da me posseduta un Cortex-M4 a 85 MHz), il basso costo (circa 10 Euro) la rendono una piattaforma estremamente interessante per i miei studenti.
Le varie schede disponibili, di cui trovate una grafica nell’immagine che segue, supportano comunicazioni di tipo: SPI, I2C, USB-OTG, CAN, UART.

Come si evince dall’immagine possiamo distinguere 3 serie:

  • Serie L: Ultra low power a 32 pin
  • Serie F fino a F3: Mainstream da 32 a 64 pin
  • Serie F4 fino a F7: High performance con processore che va dagli 85 Mhz ai 216 Mhz da 64 a 144 pin

ST mette a disposizione diverse shield con molte funzionalità: controllo motori, WiFi, Bluetooth LE, RFID, GPS, sensori di prossimità e molto altro. Di seguito link alla pagina di riferimento delle ST Exspansion Board Continua a leggere

Coding a scuola con BBC micro:bit – lezione 9

Incominciamo questa lezione fornendo la soluzione agli esercizi della lezione precedente.

Esercizio 1

Realizzare un programma che alla pressione del pulsante “A” fa apparire sul display un messaggio: “freddo!” se la temperatura è inferiore ai 15° C, mentre se maggiore di 15° C “caldo!”

Alla pressione del pulsante “A” viene cancellato lo schermo e memorizzato all’interno della variabile “temperatura” il valore rilevato della temperatura esterna, con “show number” viene visualizzato il valore che persiste sul display per 1000 millisecondi (1 secondo). L’istruzione “if temperatura < 15 then freddo! else caldo!” svolgerà la seguente operazione: SE temperatura < 15 ALLORA stampa la stringa “freddo!” ALTRIMENTI stampa la stringa “caldo!”

Esercizio 2

Realizzare un programma che misuri la temperatura e visualizzi un messaggio sul display non appena la temperatura supera un valore di soglia. Il messaggio potrebbe essere anche un disegno che lampeggia per un certo determinato tempo.

Lo svolgimento di questo esercizio è simile al precedente con la differenza che il controllo della temperatura viene effettuato con una istruzione “if condizione then istruzione” in cui non è presente l’alternativa else. Per evidenziare un messaggio di avvertimento, nel caso la temperatura superi i 20° C, viene utilizzata l’istruzione “for..do” che dato una variabile indice che varia da 0 a 4 ripete per 4 volte le istruzioni contenute all’interno del “do“, che nell’esempio è stato realizzato con la visualizzazione di due immagini che appaiono a distanza di mezzo secondo.

Proseguiamo con la lezione 9

Introduzione

Durante l’introduzione al corso avevo segnalato che il micro:bit è dotato di una bussola elettronica, vediamo quindi in questa lezione come rilevare i punti cardinali: Nord, Sud, Est ed Ovest facendo apparire rispettivamente le lettere: N, S, E, O in funzione di come verrà ruotata la scheda. Per far ciò utilizzeremo l’istruzione “IF condizione THEN istruzioni ELSE altre_istruzioni

Per rendere semplice la realizzazione del programma limiterò l’individuazione dei punti cardinali ad un intervallo di gradi, selezionerò settori di 90° in cui farò corrispondere:

  • da 0° a 45° individuerò il Nord
  • da 45° a 135° individuerò l’Est
  • da 135° a 225° individuerò il Sud
  • da 225° a 315° individuerò l’Ovest
  • da 315° a 360° individuerò ancora il Nord

Il controllo della posizione del micro:bit avverrà usando 4 istruzioni annidate “IF condizione THEN istruzione ELSE istruzione

La simulazione via software della bussola avviene ruotando il logo del micro:bit sulla scheda, così come evidenziato nell’immagine che segue:

Di cosa avete bisogno

  • n.1 BBC micro:bit
  • n.1 Micro USB
  • n.1 Computer o tablet
  • n.2 x Batterie AAA ed un contenitore per le batterie (opzionale perché la scheda potrà essere alimentata direttamente anche via USB)

Programmiamo

  1. Inseriremo la totalità delle istruzioni all’interno dell’istruzione “forever” in modo che si abbia un controllo continuo della posizione della bussola. 
Dal menù “Basic” trasciniamo l’istruzione “forever” nell’area di programmazione

Continua a leggere

Coding a scuola con BBC micro:bit – lezione 8

Incominciamo questa lezione fornendo la soluzione all’esercizio della lezione precedente.

Specifiche dell’esercizio

Dovreste notare che al termine del conteggio, quando sul display compare “0” la pressione successiva del pulsante “B” visualizzerà sul display il valore “-1”, ciò capita perché l’ultimo valore assunto da “contatore” è proprio “-1”.

Come possiamo risolvere il problema?

E’ sufficiente reimpostare la variabile “contatore” a “0” non appena è concluso il controllo della fine del conteggio, così come indicato nell’immagine che segue:

Proseguiamo con la lezione 8

Introduzione

In questa lezione utilizzeremo il sensore di temperatura presente sulla nostra scheda per mostrarla sulla matrice di LED quando scuotiamo il micro:bit

Di cosa avete bisogno

  • n.1 BBC micro:bit
  • n.1 Micro USB
  • n.1 Computer o tablet
  • n.2 x Batterie AAA ed un contenitore per le batterie (opzionale perché la scheda potrà essere alimentata direttamente anche via USB)

Programmiamo

  1. Selezionate dal menù delle istruzioni “on shake” e trascinatela all’interno dell’area di programmazione

  1. Poiché l’obiettivo è quello di rilevare la temperatura ambiente una volta che scuotiamo il micro:bit, abbiamo bisogno di una variabile in cui memorizzare il valore della temperatura. Dalla sezione “Variables” fate click su “Make a Variable” per creare la variabile “temperatura

Il blocco “temperatura” all’interno del menù “Variables

Continua a leggere

Coding a scuola con BBC micro:bit – lezione 7

Incominciamo questa lezione fornendo la soluzione all’esercizio della lezione precedente.

Specifiche dell’esercizio

Durante la scorsa lezione abbiamo imparato a generare numeri casuali ed utilizzare l’istruzione IF THEN. Per realizzare il gioco: carta, sasso, forbice sarà sufficiente generare allo scuotimento della scheda un numero compreso tra 0 e 2 (quindi tre valori: 0, 1, 2) e in funzione del numero generato visualizzare una figura che rappresenta uno dei tre oggetti. Il programma da realizzare è molto simile a quello del dado realizzato nelle lezioni precedenti.

Proseguiamo con la lezione 7

Introduzione

Questo progetto utilizza i pulsanti di input collocati sulla scheda, quelli nominati con “A” e “B“, per la realizzazione di un timer che conta all’indietro da 9 a 0. Il pulsante “A” deve essere utilizzato per impostare a 9 secondi il timer, il pulsante “B” per avviare il timer.

Di cosa avete bisogno

  • n.1 BBC micro:bit
  • n.1 Micro USB
  • n.1 Computer o tablet
  • n.2 x Batterie AAA ed un contenitore per le batterie (opzionale perché la scheda potrà essere alimentata direttamente anche via USB)

Programmiamo

  1. Come per la lezione precedente, andate sul sito BBC micro:bit e fate click su “Let’s Code”.
  2. Scegliere la modalità di programmazione JavaScript Blocks Editor
  3. All’interno del “Microsoft Block Editor” click su “New project”.
  4. Cancellate le istruzioni che compaio di default: “on start” e “forever”. Per cancellare un’istruzione potete trascinarla verso sinistra sulla sezione comandi, comparirà un cestino, oppure selezionatela e cancellatela con il tasto DEL.

  1. Fate click su “Variables” e selezionate l’istruzione “set item to…”, trascinatela nell’area di programmazione, selezionate l’elemento “item” per aprire il menù a discesa, selezionate “rename variable” per cambiare il nome in “contatore”, confermate con un OK.

  1. All’interno del campo numerico inserite il numero 9 al posto dello 0.

  1. Selezionate all’interno del menù comandi il gruppo di istruzioni “Basics” e trascinate il blocco “show number” all’interno della finestra di programmazione.

Continua a leggere