Archivi categoria: i miei allievi

Controlliamo DotBot con Arduino

DotBot

Questo tutorial è la prima bozza di parte delle lezioni di “Alfabeto Arduino con DotBot” per l’apprendimento dell’uso di Arduino mediante lo starter kit open source per l’insegnamento del coding e della robotica che abbiamo chiamato DotBot.
Sperimenterò questa prima parte durante il corso di cui sarò relatore presso l’IIS Cassato Gattapone (Gubbio): “Apprendimento attivo con Raspberry Pi e Arduino”.

Nel tutorial che segue illustro un schema estremamente semplice per la realizzazione del controllo di DotBot effettuata con Arduino con i relativi sketch di esempio è può essere considerato la base di partenza per ogni sperimentazione basata appunto su Arduino.
Per il pilotaggio dei motori ho utilizzato l’Arduino Motor Schield R3 di cui ho già effettuato un tutorial nei giorni scorsi (Utilizzo dell’Arduino Motor Shields R3) ed è propedeutico a questa lezione.

Più avanti aggiungerò esempi pratici con ulteriori sensori e inoltre mostrerò come far funzionare DotBot come segui linea e utilizzando soluzioni con motorini passo-passo. Vi saranno ulteriori lezioni basate su Raspberry Pi 3 e programmazione in Python e successive approfondimenti sull’uso di ROS (Robot Operating System).

L’intero tutorial sarà basato sulle indicazioni costruttive di DotBot che trovate descritte nell’articolo: DotBot: lo starter kit open source per l’insegnamento del coding e della robotica che ricordo potete stampare in 3D seguendo le indicazioni che trovate nell’articolo.
In ogni caso se non avete stampato DotBot potrete tranquillamente applicarlo al robot che disponete.

Ricordo che la rotazione, senza il controllo dei numeri di giri, dipende dalla carica delle batterie, quindi per ogni test effettuare un controllo ed eventualmente modificare la variabile: “tempoRotazione” che potrete poi tarare mediante la funzione calibrazioneRotazione() che trovate nell’ultimo sketch proposto. La soluzione ottimale per il controllo preciso del robot prevede l’uso di motorini con encoder, che mostrerò in lezioni successive.

Ovviamente anche la soluzione proposta in questo tutorial risulta approssimata (ed anche dettata da un risparmio economico) ricordo che lo scopo è comprenderne il funzionamento del movimento di DotBot, lascio a voi i successivi perfezionamenti.

Potrete sostituire alle batterie che io ho utilizzato, batterie ricarrabili, o pacchi batterie con autonomia maggiore che potrete fissare utilizzando gli appositi fori predisposti sullo chassis

Componenti utilizzati

  • Arduino UNO R3
  • Arduino Motor Shield R3
  • Sensore ad ultrasuoni HC-SR04

Montaggio del circuito

DotBot-Arduino-01

DotBot-Arduino-02

DotBot-Arduino-03

Ribadisco, come già indicato nel tutorial: Utilizzo dell’Arduino Motor Shields R3 che sono state fornite due alimentazioni diverse una per la scheda Arduino ed una per i motori, per effettuare tale operazione è indispensabile effettuare il taglio del “Vi connect

Come evidenziato i due motori sono stati collegati con polarità invertita in quanto per muovere in avanti il robot le due ruote dovranno muoversi in senso opposto.

Negli esempio che seguono verranno di volta aggiunte nuove funzioni, la lista completa è la seguente:

setupDotBot()

Imposta i pin dell’Arduino Motor Shield

driveDotBot([motore], [direzione], [velocità], [brake])

La funzione è da leggersi in questo modo:
driveDotBot pilota il [motore] (0 per A, 1 per B) in senso [direzione] (0 o 1 – orario o antiorario) a velocità [velocità] (tra 0 e 255), [brake] attiva o rilascia blocco motore.
I motori vanno avanti fino a quando non gli verrà detto di fermarsi.

stopDotBot([motore])

ferma il motore [motore] (0 o 1).

rotazioneOraria()

gira il robot di 90° in senso orario

rotazioneAntioraria()

gira il robot di 90° in senso antiorario

distanzaOstacolo()

restituisce la distanza in cm dell’ostacolo rilevato

paragonaDistanze()

verifica la distanza dell’ostacolo che si trova a distanza maggiore dal robot

scegliDirezione();

sceglie la direzione da prendere in funzione della distanza a cui si trova l’ostacolo

La spiegazione del funzionamento d ogni parte del codice è inclusa all’interno dello sketch come commento.

Nota per lo studio:
i 6 sketch proposti variano solo nel loop per la realizzazione delle funzioni richieste, la variazione tra uno sketch e l’altro consiste nell’aggiunta di poche linee di codice, sarà quindi necessario effettuare uno studio preliminare di tutte le parti dello sketch 1.

Continua a leggere

Badge stampati in 3D per certificare le competenze degli studenti

skill_badge

Sto sviluppando da qualche settimana l’uso di badge per iòertificare le competenze tecniche dei miei allievi, una strategia che dovrebbe, nella mia visione, fornire agli studenti un attestato “fisico” (che si vede e si tocca) che va oltre il voto sul libretto e che mostra ad altri studenti, anche non della stessa classe, il raggiungimento di una competenza certificata dal professore. D’altronde non si può mica andare in giro con il libretto dei voti aperto e mostrare che si è bravi, sarebbe più logico appendere allo zainetto un badge che dica che si è professionista in un determinato settore.

Come ho sempre affermato ritengo estremamente importante per uno studente far percepire la “materializzazione” della propria competenza, questa percezione si ha quando viene risolto un problema tecnico: costruzione di un robot, realizzazione di un impianto industriale ecc…
Ma come mostrare anche ad altri la certificazione delle proprie competenze?
Il badge non è altro che uno stemma che riporta un logo che ne rappresenta un’area di competenza e sul retro vi è la mia firma, tutto ciò certifica che uno studente può in piena autonomia, con competenza, con l’imprimatur 😃 del Prof. aiutare un altro studente.

Questo tipo di strategia, migliora l’autostima, offre forte gratificazione, premia certamente le eccellenze ma ha come obiettivo principale quello di creare comportamenti costruttivi che vanno oltre la competizione tra studenti e spinge anche i meno bravi al raggiungimento di una determinata competenza cercando di assumere il più possibile un atteggiamento da sperimentatore nell’azione di studio.

Quali sono i problemi più comuni che riscontro nelle classi:

  • scarsa capacità di lavorare in gruppo
  • visione distorta della competizione (io so tu soccombi)
  • nessuna condivisione del sapere
  • scarsissimo livello di amicizia

Per avere un badge di competenza di qualsiasi genere è indispensabile avere capacità di mediazione e relazione, cioè bisogna essere bravi a spiegare ed avere un atteggiamento costruttivo ed amichevole, in altro modo se conosco un argomento e riesco a spiegarlo allora sono competente.

Ma da dove nasce tutto ciò?

Animo digitalmente da decenni i miei studenti e nella maggior parte dei casi si rivolgono a me per risolvere quesiti tecnici di qualsiasi genere, per fare di questa “consulenze” un’azione didattica costruttiva, cerco, ove possibile, di delegare agli studenti “bravi” a livello tecnologico la risoluzione dei quesiti che mi vengono posti.

Certamente in una stessa classe gli studenti sanno a quale compagno rivolgersi per superare problemi, ma studenti di classi differenti difficilmente sapranno se uno studente della mia classe è bravo in uno specifico argomento tecnico.
Ho quindi pensato di assegnare ai più bravi, quelli che nella mia valutazione superano il 9, un badge da appendere allo zainetto stampato in 3D che ne certifica la competenza nei confronti di altri studenti.

Queste sono le competenze che ho incominciato a certificare con badge:

  • competenze nell’esecuzione di sperimentazioni elettroniche
  • conoscenza approfondita della teoria elettrica/elettronica
  • competenze nel disegno tecnico
  • competenze nell’uso di Arduino
  • competenze nell’uso di RaspberryPi
  • competenze nella stampa 3D
  • competenze nell’uso di Scratch

Nella foto ad inizio articolo alcuni badge utilizzati ed assegnati, potete trovare il sorgente su Thingiverse.

Nei prossimi mesi vi farò avere riscontro dei risultati ottenuti.

Installare l’Arduino IDE 1.6.X su Ubuntu – metodo 2/2

Come promesso di seguito trovate il secondo metodo per l’installazione dell’IDE Arduino 1.6.X su Ubuntu in cui viene mostrato come avviare l’IDE direttamente dal menù Applicazioni di Ubuntu oppure posizionare l’icona di Arduino all’interno del Launcher rendendo ancora più comodo l’avvio dell’applicazione.

Passo 1

Prelevate l’IDE dal sito Arduino, e scompattatelo facendo doppio click sul file e trascinate la cartella all’interno della cartella “Scaricati”:

ubuntu-ide-arduino-01

ubuntu-ide-arduino-02

Passo 2

Spostare la cartella arduino-1.6.5-r5 all’interno del cartella Home mediante il comando da terminale:

mv ?/Scaricati/arduino-1.6.5-r5 .

(non dimenticate il punto finale)

ls -l | grep arduino

Con i seguenti comandi, ls e grep, verifichiamo solamente che vi sia una sola cartella arduino all’interno della cartella Home.

Il comando ls restituisce l’elenco di file all’interno di una directory con parametro -l produce un elenco esteso, una riga per ogni file, in cui saranno evidenziati: permessi, proprietario, gruppo assegnato, nome, e molto altro (si consulti help di unix).

L’operatore pipe “|” concatena standard output e standard input di più programmi, nel nostro caso viene concatenato il comando “ls -l” con l’istruzione “grep arduino” che permette di sapere quante sono le occorrenze della parola “arduino” all’interno della cartella Home.

ubuntu-ide-arduino-07

Nella cartella Home avrete la cartella arduino-1.6.5-r5

ubuntu-ide-arduino-04

Passo 3 Continua a leggere

Installare l’Arduino IDE 1.6.X su Ubuntu – metodo 1/2

In questa ultima settimana ho dovuto risolvere una serie di problemi con la versione dell’IDE di Arduino (la 1.6.5) su Ubuntu 14.04.03 e 15.04 (a 64 bit). Per non dimenticare e mantenere traccia scrivo queste poche righe per me e i miei allievi che si cimenteranno nelle loro sperimentazioni.

Come sicuramente saprete, l’IDE di Arduino disponibile dal Software Center di Ubuntu, è la 1.0.5, una versione molto datata che non si presta alle esercitazioni che voglio condurre, ecco quindi la necessità di questo breve tutorial.

Da linea di comando potete verificare quale delle versioni è disponibile dal Software Center di Ubuntu digitando:

apt-cache show arduino

ubuntu-ide-arduino-01

Oppure avviando direttamente il Software Center dal Launcher:

ubuntu-ide-arduino-02

I metodi che possono essere utilizzati per installare l’IDE sono due, il primo dettagliato in questo primo post è rapido e non necessita di competenze informatiche elevate, il secondo che mostrerò a breve in un successivo post, necessita di qualche competenza in più, ma seguendo passo passo il tutorial riuscirete sicuramente. Il secondo metodo vi consentirà di avviare l’IDE dal menù Applications di Ubuntu permettendo inoltre di posizionare l’icona di Arduino all’interno del Launcher rendendo ancora più comodo l’avvio dell’applicazione.

Nota: ho diviso i due metodi per renderne più semplice la lettura e dare più tempo a me per implementare tutte e due i post 🙂

Operazioni preliminari

Le operazioni dettagliate di seguito sono da effettuare sia per il metodo 1 che il metodo 2.

Continua a leggere

LightBlue Bean – programmare un microcontrollore Arduino da dispositivo mobile… e non solo

Si so cosa state pensando in questo momento: “perché ti stai concentrando sulla sperimentazione di così tante schede di prototipazione?”
Sto selezionando una serie di tecnologie che possano essere utilizzate in diversi ambiti, sia didattici per ordine di scuola, che soluzioni per progetti principalmente afferenti alla categoria IoT… e poi se non aggiungo l’aspetto di ricerca nel mio mestiere dove sta il divertimento? 🙂

Tra questi ho trovato straordinario LightBlue Bean una piccolissima scheda Arduino che incorpora un Bluetooth 4.0 a basso consumo che può essere programmato in modalità wireless sia direttamente da un’IDE residente su dispositivo mobile disponibile per sistemi iOS che Android oppure può essere programmata direttamente su computer dall’IDE di Arduino. Devo dirvi che, almeno per me, programmare una scheda Arduino compliant, senza la necessità di un computer mi entusiasma parecchio perché mi permette in piena libertà e “leggerezza tecnologica”.

LightBlueBean01

Nella fotografia che vi allego potete immediatamente vedere le dimensioni paragonate ad una moneta da 1€, piccolissimo!

LightBlueBean02

LightBlueBean03

Questo un video che ne mostra le funzionalità:

LightBlue Bean from Punch Through on Vimeo.

Cosa troviamo su questa scheda?

  • Accelerometro a 3 assi
  • Sensore di temperatura
  • LED RGB
  • una batteria CR2032
  • ATmega 328p con clock a 8MHz
  • Bluetooth LE
  • Tensione di lavoro 3V
  • 6 ingressi/uscite digitali di cui 4 ti tipo PWM
  • 2 pin analogici
  • Possibilità di utilizzare i protocolli i2C e SPI

LightBlueBean04

LightBlueBean05

Come vi dicevo:

  • programmazione wireless
  • supporto su OSX e iOS
  • supporto Windows 8

Per incominciare ad utilizzarlo su iOS prelevate le due App:

LightBlue Explorer – Bluetooth Low Energy

LightBlueBean09

potrete verificare il funzionamento di LightBlue Bean e non solo, infatti potrete effettuare uno scan di tutte le periferiche Bluetooth 4.0 a basso consumo di energia e controllarne una serie di funzionalità.

Bean Loader – LightBlue Bean

LightBlueBean10

è l’IDE di programmazione che vi consentirà di programmare la scheda direttamente da iPhone, iPad o iPod Touch.

Tra le caratteristiche più importanti di Bean Loader:

Verificare codice Arduino sul vostro dispositivo iOS mediante il Bean Cloud Compiler

  • Programmare il vostro Bean in modalità wireless via Bluetooth a basso consumo
  • Editor di codice integrato con sintassi C evidenziata
  • Collegamento con Dropbox per sincronizzare i vostri sketch ovunque
  • Collezione di esempi per incominciare subito con il vostro Bean

LightBlueBean11

Negli esempi che potete visionare sul sito di riferimento, la componentistica elettronica viene direttamente saldata sulla scheda, tale azione impone l’uso per un solo tipo di progetto e quindi per rendere la scheda riusabile potete adottare la soluzione che seguirò io e dettagliata nelle immagini che seguono, cioè saldare sulla schedina una serie di piedini che ne permettano l’inserimento su una breadboard.

LightBlueBean06

LightBlueBean07

LightBlueBean08

Ma quanto costa questa scheda? 30$
Vengono proposte soluzioni meno costose all’aumentare delle schede acquistate.

Alcuni riferimenti utili:

Spero di avervi incuriosito.

Qualche giorno fa, prima di decidere di acquistare LightBlue Bean, pensavo a quante volte durante le lezioni sono costretto a richiamare gli allievi perché li sorprendo ad usare il cellulare in classe, certo è che se lo usassero con LightBlue Bean i richiami e le note di demerito si trasformerebbero in voti stupendi 😉

Sarà la volta buona?

Buona sperimentazione a tutti.