Archivi tag: programmazione

Arduino: Qual è la differenza tra Serial.write() e Serial.print() e quando vengono usati?

Ho già trattato l’argomento sull’uso di Serial.write() e Serial.print(), però durante le lezioni svolte agli studenti negli scorsi mesi ho aggiunto alle lezioni alcuni contenuti che vi condivido.

Differenza tra Serial.write() e Serial.print()

Serial.write()

La funzione scrive dati binari sulla porta seriale. I dati vengono inviati come byte o serie di byte. Nel caso si abbia la necessità di inviare i caratteri che rappresentano le cifre di un numero bisogna utilizzare la funzione Serial.print().

Serial.print()

Stampa i dati sulla porta seriale come testo ASCII leggibile dagli esseri umani.

Quindi se scriviamo:

Serial.write(0x45); // invia sulla seriale 0100 0101

Serial.print() è più versatile, farà per noi la conversione da ASCII a binario e può anche convertire in binario (BIN), esadecimale (HEX), ottale (OCT), decimale (DEC) ma bisogna specificare come secondo argomento la codifica:

Serial.print(67, BIN) resituisce "1000 0011"
Serial.print(67, OCT) resituisce "103"
Serial.print('M', DEC) resituisce "77"
Serial.print(67, HEX) resituisce "43"

Questo il codice di test:

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

  Serial.println(67, BIN);   // resituisce "1000 0011"
  Serial.println(67, OCT);   // resituisce "103"
  Serial.println('M', DEC);  // resituisce "77"
  Serial.println(67, HEX);   // resituisce "43"
}

void loop() {

  // per ora nulla :-)

}

Altro esempio:

Serial.write(0x41);   // A
Serial.write(0x52);   // R
Serial.write(0x44);   // D
Serial.write(0x55);   // U
Serial.write(0x49);   // I
Serial.write(0x4E);   // N
Serial.write(0x4F);   // O

Questo il codice di test:

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

  Serial.write(0x41);   // A
  Serial.write(0x52);   // R
  Serial.write(0x44);   // D
  Serial.write(0x55);   // U
  Serial.write(0x49);   // I
  Serial.write(0x4E);   // N
  Serial.write(0x4F);   // O
}

void loop() {
  
  // per ora nulla :-)

}

In modo più rapido con la Serial.print() si ottiene il medesimo risultato:

Serial.print("ARDUINO");

Questo il codice di test:

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

  Serial.print("ARDUINO");
}

void loop() {

  // per ora nulla :-)

}

Serial.println() aggiungerà 2 byte di fine riga 0x0D e 0x0A:

Serial.println("ARDUINO");

che permette la stampa del contenuto tra virgolette con l’aggiunta di una nuova linea. Per mostrare l’inserimento di una nuova linea, aggiungiamo la stampa del carattere “-“:

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

  Serial.println("ARDUINO");
  Serial.print("-");
}

void loop() {

  // per ora nulla :-)

}

Stesso risultate si ottiene se aggiungiamo manualmente con una Serial.write() i caratteri di fine riga: 0x0D e 0x0A:

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

  Serial.print("ARDUINO");
  Serial.write(0x0D);
  Serial.write(0x0A);
  Serial.print("-");
}

void loop() {

  // per ora nulla :-)

}

Provo a chiarire l’utilizzo della Serial.write con la trasmissione di numeri sulla seriale.

Supponiamo di dover inviare sulla seriale il numero 243. La rappresentazione binaria (in 1 e 0) di questo numero è 1111 0011. L’uso del comando Serial.write(243) invierà letteralmente solo 1111 0011. La rappresentazione esadecimale dello stesso numero è 0xF3 e il comando Serial.write(0xF3) invierà la stessa cosa: 1111 0011.

Se dovessimo usare il comando Serial.write(“243”) si avrebbe:

00110010 00110100 00110011

Cosa che può apparire molto strana.

Quando una stringa viene passata come argomento viene suddivisa in singoli caratteri, convertita in ASCII e quindi inviata come byte per ogni carattere.

Si otterrebbe lo stesso risultato se si dovesse usare quanto segue:

Serial.write(50);
Serial.write(52);
Serial.write(51);

In binario: 00110010 00110100 00110011

Vediamo ora cosa succede con la Serial.print().

I comandi Serial.print(243) o Serial.print (“243”) stamperanno entrambi la stessa cosa: 00110010 00110100 00110011. Questo perché il comando print prima converte qualsiasi numero in una rappresentazione di stringa e poi usa il comando Serial.write() per inviare ogni carattere come singoli bit ASCII.

Buon coding a tutti 🙂

Scratch 3.0 e BBC micro:bit installazione e primi test

Quando avevo annunciato su queste pagine il 16 luglio scorso il futuro supporto di micro:bit da parte di Scratch 3.0 la funzionalità non era ancora disponibile, finalmente da qualche giorno questa possibilità è stata resa disponibile ed ora possiamo incominciare a sperimentare.

L’utilizzo di micro:bit con Scratch 3.0 richiede pochissimi passi, di seguito trovate le schermate che ne dettagliano l’installazione ed un paio utilizzo.

Aggiungiamo l’estensione micro:bit:

Selezionate micro:bit

Per consentire il collegamento con Scratch 3.0 è indispensabile installare “Scratch Link” per poterlo prelevare un click sul punto interrogativo “?” (o fate click sul link che vi ho indicato), si aprirà un’altra pagina che vi guiderà passo passo all’installazione:

Pagina di aiuto che trovate direttamente a questo link:

Ricordate che dovete:

Connettere il micro:bit

Scaricare e scompattare il file: scratch-microbit-1.0.hex.zip

Copiare il file .hex all’interno del micro:bit

Avviate Scratch Link:

Scratch Link attiverà un pannello di controllo:

Un click sulla voce di menù Scratch Link mostrerà l’indirizzo di collegamento e la versione:

Selezionando nuovamente l’icona di aggiunta libreria apparirà il pannello di collegamento al micro:bit, fate click sul pulsante “collega”

Avrete notifica dell’avvenuto collegamento, premete “Torna all’Editor” per proseguire con  la programmazione:

La percezione dell’avvenuto collegamento si vedrà anche sul display del micro:bit su cui comparirà il nome assegnato alla vostra scheda, nel mio caso “zuvop”:

Trascinate nell’area di programmazione il blocco:  “mostra Ciao! su display” ed ogni volta che farete click sul blocco visualizzerete il testo sul display:

La realizzazione di un programma che reagisce alla pressione dei pulsanti A e B è estremamente semplice:

Nell’attesa che giungano nuove funzionalità vi auguro…

Buon Coding e Buon inizio di Anno Scolastico 🙂

I miei corsi per La Tecnica della Scuola “Terza edizione di: Starter kit delle competenze digitali”

Siamo giunti alla terza edizione del corso in webinar: Starter kit delle competenze digitali. Come nelle precedenti edizioni mostrerò la strategia che adotto per costruire “la cassetta degli attrezzi” delle tecnologie digitali e come costruire un percorso di apprendimento alle tecnologie didattiche rivolto agli insegnanti. Rispetto alle edizioni passate, viste le richieste che mi sono state fatte dai colleghi, aggiungerò anche indicazioni su risorse e moduli didattici in merito all’uso di particolari tecnologie che si riferiscono alla stampa 3D, al Coding con BBC micro:bit, Arduino, Raspberry Pi, Maker Makey inoltre incomincerò a dare suggerimenti su come costruire un percorso di Didattica della Robotica, percorso che poi sfocerà nei prossimi mesi in un corso specifico. Vista la grande quantità di argomenti che verranno trattati lascerò come sempre slide e documentazione di approfondimento.

Presentazione

“Come imparare ad imparare l’uso delle tecnologie didattiche?”
“Dove informarsi e dove trovo esempi sull’uso delle tecnologie sviluppati da altri insegnanti?”

Il corso introduttivo intende fornire gli strumenti necessari per imparare a strutturare un proprio percorso di apprendimento all’uso delle tecnologie didattiche con particolare attenzione ad una serie di applicativi web in cloud, gratuiti ed open source, utilizzabili per la progettazione didattica e per la gestione della classe, a supporto di una didattica blended ed inclusiva.
Verranno forniti gli strumenti di partenza per sfruttare le potenzialità delle tecnologie nei processi chiave: progettazione, trasversalità, collaborazione, condivisione, valutazione.
Durante l’attività formativa verranno esposte soluzioni hardware di bassissimo costo (Raspberry Pi, micro:bit, MakeyMakey, Arduino, ecc…) immediatamente spendibili in classe che ben si adattano allo sviluppo di attività di didattiche laboratoriali, in grado di fornire competenze trasversali basate su una metodologia “project based learning” per il raggiungimento di uno scopo o di un obiettivo specifico che ha molto a che fare con problemi di vita reale.

Saranno svolti 3 incontri di 2 ore ciascuno per un totale di 6 ore

  • Martedì 10 aprile 2018 – dalle ore 17.00 alle 19.00
  • Mercoledì 11 aprile 2018 – dalle ore 17.00 alle 19.00
  • Mercoledì 18 aprile 2018 – dalle ore 17.00 alle 19.00

Potrete rivedere la registrazione del webinar senza limiti di tempo, anche in caso di assenza.
Per accedere, ti basterà acquistare il corso on line attraverso il nostro STORE. Con le stesse credenziali potrai visionare tutti i materiali del corso sulla piattaforma formazione.tecnicadellascuola.it

FORMATORE: Michele Maffucci

DESTINATARI: Docenti e istituzioni scolastiche e formative di ogni ordine e grado

COSTO: 55 euro
LA CASA EDITRICE LA TECNICA DELLA SCUOLA E’ ENTE DI FORMAZIONE ACCREDITATO DAL MIUR
Puoi acquistare i corsi anche con la CARTA DOCENTE

PUNTI TEMATICI CHE SARANNO AFFRONTATI

  • Strumenti per sostenere l’autoaggiornamento
  • Le comunità di insegnati sul web. Gruppi di interesse, comunità di pratica
  • Software cloud per la didattica attiva
  • Strumenti per comunicare (blog, siti), creare e sostenere la comunità della propria scuola
  • Strumenti di social bookmarking
  • La ricerca in rete: dato un problema, risolverlo con l’aiuto della rete
  • La progettazione condivisa e collaborativa tra i docenti: il curriculum mapping
  • Strumenti per costruire pensiero computazionale
  • Progettazione di ambienti cloud per la gestione della classe e la realizzazione di attività collaborative

OBIETTIVI

Verranno forniti competenze digitali ad ampio spettro che permetteranno di:

  • Costruire un proprio “network di apprendimento sociale” (basato su sistemi di social network) per l’apprendimento delle tecnologie
  • Valutare quali tecnologie adottare per rendere efficace il proprio lavoro
  • Dove informarsi sull’uso delle tecnologie didattiche (strategie, tutorial e case history)
  • Risorse web per la formazione e il supporto all’uso delle tecnologie
  • Usare le tecnologie per organizzarsi
  • Documentare per ampliare il proprio “network di apprendimento sociale” al fine di costruire il “diario delle proprie esperienze didattiche”
  • Saper cercare sul web: “imparare ad imparare l’uso delle tecnologie”
  • Gestire sistemi di social networking (per apprendere, recuperare per l’inclusione)

MAPPATURA DELLE COMPETENZE

  • Competenze a supporto di ogni attività giornaliera del docente: contesti, uso di particolari software, organizzazione di una piattaforma di formazione in funzione delle esigenze della classe
  • Saper scegliere strumenti tecnologici (hardware e software) diversi in rapporto ai contesti classe
  • Saper scegliere gli strumenti da utilizzare per progettare Unità di Apprendimento trasversali e disciplinari

TITOLO RILASCIATO
La Casa Editrice La Tecnica della Scuola è ente di formazione accreditato dal Miur per la formazione del personale della scuola (prot. n. AOODGPER/6834/2012) ai sensi della direttiva ministeriale n. 90/2003 adeguato ai sensi della Direttiva n. 170/2016.
Ai fini del rilascio dell’attestato di partecipazione, il percorso di formazione si conclude con un test di verifica e un questionario di gradimento del corso di cui è richiesto il completamento.

Il corso è presente sulla piattaforma ministeriale Sofia (ID. 6045), sulla quale sarà possibile iscriversi dopo avere effettuato il pagamento.

Per poter acquistare il corso seguire il LINK

I miei corsi per Tecnica della Scuola – Creare giochi con Scratch per apprendere il coding

Svolgerò nei in marzo il corso in webinar organizzato da Tecnica della Scuola sulla creazione di giochi con Scratch.

Imparare a programmare costruendo giochi è uno dei metodi che ritengo più efficaci per fare Coding a scuola, i giochi in generale sono una potentissima leva motivazionale e progettarli consente di sviluppare competenze di problem posing e solving.
L’aspetto ludico viene quindi sfruttato per imparare a programmare, ma se si impara a programmare allora si potrà anche imparare a programmare per imparare.
Se partiamo ad esempio da azioni mutate dalla vita quotidiana che fanno parte dell’esperienza diretta degli studenti si possono proporre attività di progetti di gioco in cui gli studenti potranno esprimersi in modo creativo, imparare il processo progettazione in gruppo e del pensare schematicamente.

Scratch è senza alcun dubbio uno dei software più utilizzati nei nostri laboratori pertanto durante il corso si utilizzerà questo strumento per sviluppare una serie di giochi con gradi di difficoltà crescenti in cui ad ogni passo verranno aggiunte nuove istruzioni che ne aumenteranno l’interattività.

Ogni gioco sviluppato costituirà un’esercitazione di laboratorio che il docente potrà riutilizzare come base di partenza per strutturare un proprio percorso di Coding.

Date

Svolti 3 incontri di 2 ciascuno per un totale di 6 ore

  • Mercoledì 14 marzo 2018 – dalle 16.00 alle 18.00
  • Lunedì 19 marzo 2018 – dalle 16.00 alle 18.00
  • Mercoledì 21 marzo 2018 – dalle 16.00 alle 18.00

Destinatari

Tutti i docenti e i dirigenti scolastici delle scuole di ogni ordine e grado che abbiano conoscenze minime di uso di Scratch

Presentazione

Il corso ha l’obiettivo di fornire le competenze per sviluppare in autonomia un percorso laboratoriale di Coding per all’apprendimento dell’uso di Scratch secondo modalità attive e inclusive attraverso la realizzazione di giochi didattici.
Ogni scheda di lavoro, immediatamente spendibile in classe, avrà come obiettivo l’introduzione di un concetto base di programmazione che sarà appreso mediante la realizzazione del gioco.
Fare del Coding Game incoraggia le capacità creative e la risoluzione autonoma di problemi complessi. Durante la fase progettuale del gioco i ragazzi sono chiamati a collaborare l’uno con l’altro, ad ascoltare e a comunicare.
Il corso si svolgerà on-line con metodologia laboratoriale ed in modo cooperativo tra i partecipanti. L’intero processo di formazione sarà supportato da una piattaforma di formazione on-line appositamente predisposta, sulla quale sarà realizzata una classe virtuale a cui saranno iscritti tutti i partecipanti al corso. In questo modo sarà possibile sviluppare sperimentazioni didattiche, nonché fornire indicazioni di articoli di approfondimento e svolgimento di attività pratiche sull’uso di tecnologie che saranno illustrate nei momenti di lezione.

Punti tematici che saranno affrontati

L’attività formativa mostrerà come affrontare tutte le fasi fondamentali di sviluppo di un gioco:

  • 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
  • Coding

Obiettivo

L’obiettivo specifico sarà quello di mostrare come realizzare giochi didattici per sviluppare nello studente, mediante l’uso di Scratch, un pensiero computazionale: ovvero un pensiero che proceda in maniera algoritmica e quindi trovi soluzioni a problemi proposti.
Durante il corso, utilizzando Scratch 2, verranno mostrati esempi di realizzazione di giochi che avranno anche una modalità di interazione con il mondo fisico, con lo scopo di realizzare una didattica inclusiva partendo dal coding, in cui l’aspetto ludico/creativo viene utilizzato per migliorare le capacità progettuali e di relazione, favorendo lo scambio reciproco ed il peer learning tra gli studenti.

Mappatura delle competenze

I partecipanti al corso acquisiranno le competenze per realizzare attività didattiche multimediali 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 storytelling.

Modalità di svolgimento

Per lo svolgimento del corsò è indispensabile aver precaricato sul proprio computer il software Scratch 2 versione offline scaricabile per il proprio sistema operativo dal seguente link: https://scratch.mit.edu/download.
I passi per l’installazione di Scratch 2 richiedono tre fasi di installazione descritti nel link sopra indicato.

Costo: 55 €

Come per tutti i corsi di Tecnica della Scuola il webinar può essere acquistato anche con la CARTA DOCENTE in quanto la casa Editrice è ente di formazione accreditato al MIUR.

Per maggiori informazioni vi rimando alla pagina di presentazione sul sito di Tecnica della Scuola.

gamer:bit – un controller per BBC micro:bit

gamer:bit è un pratico shield per micro:bit che dispone di 6 pulsanti ed un connettore breakout che permette di realizzare un pratico controller per pilotare dispositivi remoti, come ad esempio robot o realizzare giochi.

Edge Connector

Il gamer:bit si connette al micro:bit mediante un connettore edge disposto sul centro della scheda, il micro:bit va connesso con i LED verso l’alto.

Pulsanti di direzione

Il gamer:bit è stato progettato pensando ad un controller di gioco classico, quindi ritroverete sulla sinistra la classica configurazione “D Pad” e i pin che ciascun pulsante controlla sono etichettati sulla scheda.

  • su => P0
  • sinistra => P1
  • giù => P8
  • destra => P2

Pulsanti azione

Sono collocati sulla destra ed in questo breve tutorial li chiameremo X e Y. Non hanno un uso specifico e possono essere utilizzati all’interno dei vostri programmi.

Sono collegati ai seguenti pin:

  • X (funzione sinistra) => P12
  • Y (funzione destra) => P16

Connettori Poke-Home

Sul retro del gamer:bit noterete una serie di connettori in plastica chiamati Poke-Home, ognuno corrisponde ai pulsanti presenti sulla scheda e sul micro:bit. Tutti i connettori Poke-Home sono etichettati per avere la corrispondenza con i pulsanti sul gamer:bit e micro:bit. Questi connettori vi permetteranno di estendere le funzionalità dei vostri progetti aggiungendo ulteriori dispositivi elettronici. Ogni punto di connessione Poke-Home è dotato di due connettori dove collegare il pulsante al componente esterno.

Installare il gamer:bit Package per il JavaScript Blocks Editor Continua a leggere