Archivi categoria: tutorial

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

Raspberry Pi 3 – configurare Bluetooth e Wi-Fi

RaspberryPi3-Bluetooth-banner

Una delle caratteristiche pi interessantidel nuovoRaspberry Pi 3 senza alcun dubbio la presenza del Wi-Fi e Bluetooth 4.1/Low Energy (LE) aggiunti dalchip BCM43438.

In questo breve tutorial, ricordo a me stesso 🙂 come effettuare la configurazione del Wi-Fi e della Bluetooth. Come accade per ogni nuova installazione di software buona norma procedere preliminarmente con un aggiornamento di sistema mediante i due comandi:

sudo apt-get update

sudo apt-getupgrade

sudo apt-get dist-upgrade

Eseguiteli nell’ordine indicato e armatevi di un po’ di pazienza perch questa fase potrebbe durare un po’ di tempo.

Al termine del processo di aggiornamento si procedecon l’installazione del software della Bluetooth:

sudo apt-get install pi-bluetooth

RaspberryPi3-Bluetooth-01

Terminata questa fase bisogner installare il tool grafico che ci consentir di configurare in maniera semplice e comoda la Bluetooth:

sudo apt-get install bluetooth bluez blueman

RaspberryPi3-Bluetooth-02
L’ultimo passo sar quello di un reboot del sistema che potr essere eseguitodirettamente da terminale con il comando:

sudo reboot

Al successivo avvio noterete che nell’angolo superiore destro sar presenteil logo Bluetooth, se non viene visualizzato alloradal men principale (in alto a sinistra) seguite il percorso: Menu >Preferenze > Gestore Bluetooth in questo modo apparir l’icona della Bluetooth in alto a destra.

Come effettuare il pairing con Raspberry Pi 3

Continua a leggere

Utilizzo dell’Arduino Motor Shields R3

Per il controllo dei motori di molte delle mie sperimentazioni robotiche spesso utilizzato l’Arduino Motor Shields R3 che permette agevolmente di pilotare motori in corrente continua tra cui anche motorini passo passo. In questo breve articolo vi mostrerò un rapido utilizzo, che aggiungerà al percorso di robotica in cui propongo la costruzione di un robot didattico partendo dalla stampa 3D dello chassie per giungere alla programmazione del robot.

01-Arduino-Motor-Shields-R3

02-Arduino-Motor-Shields-R3

Il controllo motori in analisi è basato sull’integrato L298P prodotto da ST microelectronics, che come detto consente anche il controllo di motorini passo passo.

Specifiche tecniche

  • Tensione di funzionamento: 5V a 12V
  • Controller motori: L298P, controllo di 2 motori DC o 1 motore passo-passo
  • Corrente massima: 2A per canale o 4A massima (con alimentazione esterna)
  • Rilevamento di corrente: 1.65V / A

03-Arduino-Motor-Shields-R3

Come potete osservare nell’immagine i pin della shields si allineano perfettamente con la versione dell’Arduino UNO R3.

04-Arduino-Motor-Shields-R3

La Motor Shields è dotata di due canali con cui è possibile pilotare due motorini DC e 1 motore passo passo.
La scheda dispone inoltre di 6 ingressi/uscite per il collegamento dei dispositivi del Tinkerkit di cui però non parlerò in questo tutorial.
Con un’alimentazione esterna lo shield può fornire fino a 12V e 2A per canale motore o 4A su un singolo canale. L’obiettivo è quello di realizzare il “kit di robotica di base” e per contenere i costi farò uso, per questa prima versione, di comunissimi motorino DC, come quelli riportati nell’immagine che segue che possono essere acquistati a costi molto contenuti su qualsiasi store cinese on-line. Certamente non aspettatevi prestazioni elevate, ma sono sufficienti per incominciare. Continua a leggere

Makey Makey Go

makeymakeygo04
Come dissi su Facebook il 7 gennaio scorso: “Nell’attesa del mio turno dal barbiere leggo che è stato messo in vendita da oggi Makey Makey Go… e vai “di carta di credito” preso!” 🙂 Dopo circa una decina di giorni ho ricevuto il prodotto.
Ma perché dovrei utilizzare Makey Makey Go? Certamente penso ad un uso didattico ed in passato ho più volte ho utilizzato e mostrato sia agli allievi che durante i miei corsi a docenti l’utilizzo del “fratello maggiore” Makey Makey soprattutto nelle attività di coding oppure durante i corsi agli insegnanti di sostegno per mostrare come realizzare in modo semplice e veloce ausili didattici per allievi diversamente abili.
Makey Makey Go vi permetterà di sostituire ai pulsanti della tastiera o del mouse qualsiasi oggetto in grado di condurre l’elettricità e certamente si prestano tutti quelli oggetti che contengono acqua come frutta e verdura.
La creatività che ne può scaturire da un oggetto di questo genere è incredibile in quanto con esso potrete realizzare delle vostre personalissime periferiche di input, così come mostrato nel filmato che segue.

Nella confezione troviamo un foglietto con le istruzioni, il Makey Makey Go la cui forma ricorda una penna USB con un anello che vi permetterà di agganciarlo al vostro portachiavi oppure allo zainetto, una ciambella di carta che mostra un esempio di utilizzo ed un cavo con pinzette a coccodrillo che consentirà di collegare l’oggetto conduttivo con il Makey Makey Go.

makeymakeygo01

makeymakeygo03

makeymakeygo02

Il connettore USB potrà essere collegato a qualsiasi tipo di computer: Mac, Windows. Linux.

Sulla chiavetta trovate tre alloggiamenti:

  • un’area a forma di + dovrà essere collegata ad un coccodrillo (leggermente calamitato per agevolarne il contatto)
  • area del play
  • area del reset

makeymakeygo09

La differenza sostanziale dal fratello maggiore Makey Makey è che nel Makey Makey Go potete sostituire un solo comando.

Come funziona?

  • Inserite il Makey Makey Go in una porta USB del vostro computer
  • Scegliete tra le app proposte sul sito Makey Makey
  • Prendete il coccodrillo e collegatelo nell’area a forma di + e l’altra estremità all’oggetto che conduce
  • Premete play sul Makey Makey Go e incominciate a giocare

makeymakeygo06

makeymakeygo07

makeymakeygo05

Il Makey Makey Go permette in automatico di sostituire la barra spaziatrice della tastiera o il pulsante sinistro del mouse premendo sul pulsante set button, ma se lo desideriamo è possibile riprogrammarlo per decidere quale dovrà essere il pulsante che dovrà essere sostituito all’oggetto che conduce, se volete stabilire quale tasto della tastiera associare all’azione andate sull pagina di riferimento: makeymakey.com/remap/ selezionate il prodotto e tenete premuto il tasto di reset per almeno 5 secondi dopo di che facendo click più volte sul tasto reset selezionate il pulsante della tastiera che desiderate emulare, una volta scelto il tasto per confermare premete sul pulsante play del Makey Makey Go.

makeymakeygo08

Per chi fosse interessato io ho acquistato il prodotto sul Makey Shop

Buon divertimento 🙂

Installare Scratch 2 offline edition su Ubuntu a 64 bit

Durante i miei corsi di coding per studenti e docenti che ho realizzato nelle scorse settimane, ho utilizzato Scratch 2 la cui installazione risulta relativamente semplice per sistemi Mac e Windows, infatti richiede solamente l’installazione di Adobe Air e tutto il processo si conclude in pochissimi minuti.
Recentemente mi è stato chiesto da colleghi “Animatori digitali” come effettuare l’installazione della versione offline di Scratch 2 su Ubuntu, che risulta un po’ più complicata rispetto ai sistemi Mac e Win, sulle versioni di Ubuntu a 64 bit è richiesta una procedura più lunga e non immediata che necessita di qualche comando da terminale.
Di seguito elenco i passi necessari per l’installazione su Ubuntu, ho testato la procedura su Ubuntu 14.04.03 e 15.10 e tutto ha funzionato correttamente.

Passo 1

Effettuiamo il download di Adobe Air e Scratch 2 dal sito di riferimento:

https://scratch.mit.edu/scratch2download/

01-scratch2-ubuntu

02-scratch2-ubuntu

Passo 2

E’ indispensabile installare le seguenti librerie:

sudo apt-get install libxt6:i386 libnspr4-0d:i386 libgtk2.0-0:i386 libstdc++6:i386 libnss3-1d:i386 lib32nss-mdns libxml2:i386 libxslt1.1:i386 libcanberra-gtk-module:i386 gtk2-engines-murrine:i386

03-scratch2-ubuntu

Verrà richiesto di confermare l’installazione

04-scratch2-ubuntu

Passo 3
Continua a leggere