Archivi tag: dotbot

DotBot ROS – Il primo robot didattico che ti permette di imparare ROS

dotbot

DotBot, come segnalato in precedenti post, è un progetto OpenSource nato dalla collaborazione tra Ludovico Russo e il sottoscritto, Michele Maffucci, per insegnare la robotica nelle scuole.

DotBot ROS è il sistema operativo che gira all’interno di DotBot su un Raspberry Pi. DotBot ROS è pensato per semplificare l’utilizzo di ROS (il sistema operativo per robot) e renderlo accessibile per l’insegnamento.

DotBot ROS è un insieme di Tool e applicativi che si basano su ROS e su tecnologie WEB. In particolare, tramite DotBot ROS è possibile controllare e programmare DotBot attraverso un qualsiasi web browser.

Di seguito un breve tutorial per capire di cosa si tratta.

Premessa

Questo tutorial si basa sulla versione ancora non stabile di DotBot ROS 0.1, probabilmente molte cose cambieranno e/o verranno migliate nelle versioni future.

Vi rimando alla nostra pagina di GitHub per leggere l’intero tutorial.

dotbot-io/docs

Buona Sperimentazione 🙂

DotBot S – il piccolo robot per i vostri primi esperimenti di coding con Arduino

DotBotS-00

Mio figlio: “papà ma non è che tu sei un po’ fissato per la robotica?” 🙂
Io: “sicuramente figlio! Ma io al tuo Pokémon Go preferisco DotBot” 🙂

Le avventure di DotBot continuano…

Durante l’ultima Mini Maker Faire di Torino mi è stato chiesto se mi aspettassi altro da DotBot oltre che la mia personale azione didattica ed ho risposto in questo modo:
creare oggetti fisici utili per l’apprendimento è per me parecchio stimolante inoltre il feedback che ne ricevo dagli utenti induce ovviamente alla relazione e allo studio continuo aggiungendo ogni volta l’esperienza anche di altri, quindi utilissimo anche per sperimentare altre azioni didattiche”, quindi alla fine tratto DotBot come un catalizzatore per fare anche altro.
In un certo senso sto cercando di applicare il metodo Lean Startup con DotBot in modo da fare piccoli passi di “innovazione” (per me) senza sprechi per giungere a qualcosa di interessante.

La versione di DotBot che conoscete è il frutto di una serie di prototipi realizzati nei mesi passati. Negli scorsi giorni ho ripreso una delle primissime idee, rielaborando alcune parti, ed in un paio di giorni ho realizzato una piccolo robottino che abbiamo chiamato DotBot S, molto semplice nella forma e nelle funzionalità, ma proprio per questo ritengo utile per chi incomincia con l’elettronica e il coding, con la speranza che altri ne facciano un branch… per dirla alla git e producano altro.

Durante la mia convalescenza alcuni utenti (studenti) mi hanno chiesto di portare avanti il progetto EduRobot e per ottimizzare gli sforzi ho deciso di unirlo al progetto DotBot creando un elemento che facesse da ponte tra le due sperimentazioni molto simili, questo elemento di unione è appunto DotBot S che porta con se le idee che poi sono state utilizzate anche sul fratello maggiore DotBot.

Ma qual é l’idea?
La necessità di avere uno strumento multifunzionale da unire ai vari starter kit di Arduino, italiani e non originali o compatibili 🙂 che permettesse di avere una base di lavoro dove disporre scheda e breadboard per effettuare le prime sperimentazioni per poi trasformarla con pochissimi elementi in un semplicissimo robot su cui poter effettuare espansioni personali, ho immaginato ad esempio gli studenti di scuola elementare e media che caratterizzano con cartoncino colorato DotBot S.
Gli elementi di blocco (come si possono notare nelle fotografie che seguono) per scheda Arduino e breadboard non fanno uso di viti metalliche e permettono di assemblare il tutto rapidamente, le viti vengono usate esclusivamente per la composizione della configurazione Robot.

Questa versione di DotBot è stata pensata certamente per tutti coloro che intendono incominciare le prime sperimentazioni con Arduino e la robotica, ma soprattutto per gli insegnanti che si trovano nella condizione di dover realizzare atelier digitali ed implementare subito con i propri allievi strutture robotica semplici da montare, immaginando il percorso: modellazione 3D, stampa 3D, coding.
Nelle prime fasi di sperimentazioni il rischio di sprecare materiale e tempo è abbastanza elevato pertanto avere sussidi che abbiano costi bassi credo sia essenziale, deciderà poi l’insegnante se sperimentare con altre tipologie di robot come ad esempio il più grande DotBot.

Giusto per chiarire, per chi si aspetta una versione di DotBot con funzioni simili all’apina BeeBot come promesso dico che è già fatta, stiamo solo cercando di ridurre i costi, DotBot S non è la risposta a questa necessità, DotBot S è un’altra cosa.

Ma quanto costa realizzare DotBot S?

Pensando ad una stampa in PLA con un costo di 22 € al kg abbiamo scelto di ridurre leggermente la qualità scegliendo lo spessore del layer di 0,3 mm e riempimento al 15% il costo complessivo di produzione, comprensivo di consumi elettrici è di circa € 1,30.
Noterete anche nelle fotografie che la qualità di stampa volutamente non è alta semplicemente per questione di costi (ed è anche un po’ una scusa per non dire che la stampante necessitava di taratura… ho le cinghie della stampante da sostituire 🙂 )

DotBotS-print

Spesso abbiamo notato che le scuole medie e superiori acquistano i soliti starter kit Arduino quindi a questi sarà sufficiente aggiungere poco di più, due servomotori una batteria da 9V ed un sensore ad ultrasuoni.

Perché i servomotori a rotazione continua?
Perché volevamo evitare, almeno in questa fase, l’uso di shield motori e ridurre la complessità per gli studenti più giovani, dopo di che, poiché tutto è open lascio ad altri modifiche al progetto con l’uso dei motori che si preferisce.

In aggiunta se la necessità è risparmiare si possono sempre effettuare lavori di gruppo e magari divertirsi e sperimentare del project learning.

Lista della spesa

N. 2 servomotori a rotazione continua
N. 1 scheda Arduino
N. 1 sensore ad ultrasuoni HC-SR04
N. 1 batteria da 9V
N. 1 connettore per batteria 9V con jack 2,1×5 mm
N. 14 viti M3 da 10 mm
N. 14 dadi M3
N. 2 biglie di vetro da 16 mm
N. 2 elastici da 50 mm
pin di connessione tra breadboard e servomotore.

Se possedete già una scheda Arduino in versione originale o compatibile, il costo più elevato risiede nei servomotori a rotazione continua, che possono essere acquistati ad una cifra di circa 12 € l’uno, dovreste riuscire a rimanere sotto la soglia dei 30 € che ritengo decisamente economico.

Lascio alla vostra fantasia e a quella dei vostri studenti implementare attività didattiche interessanti, basterebbe ad esempio un sensore ad infrarossi ed un qualsiasi telecomando per TV per avere robot comandati a distanza quindi con pochi euro possiamo aumentare parecchio le possibilità di sperimentazione.

Ho immaginato tanti DotBot S pilotati a distanza mediante i telecomandi che ogni studente si porterà casa. In un’attività ad esempio di educazione stradale, i DotBot S diventano le automobili su cui ogni studente deve agire.
Immagino l’attività di apprendimento della composizione di una frase in italiano, su di un piano vengono dispose le parti mischiate di una frase e con bambini con i DotBot S devono percorrere la strada giusta per comporre correttamente la frase.
Ma ancora l’attività in cui i bambini imparano ad usare Thinkercad stampando dei numeri dopo di che i numeri vengo disposti a terra. Con dei DotBot S i bambini potrebbero, mediante telecomando che comanda il robot, spostare i numeri nell’insieme pari e nell’insieme dispari. Attività simili si possono pensare con vocali e consonanti, oppure forme geometriche, ecc… Insomma l’attività didattica diventa un’incredibile attività laboratoriale e la robotica una materia trasversale a tutte le discipline.

Cosa succederà ora?
Come già scritto in precedenti articoli, DotBot e DotBot S saranno oggetti che utilizzerò nei prossimi mesi e ciò che ho suggerito come attività di sperimentazioni didattiche diventeranno vere attività implementate da colleghi che hanno dimostrato forte interesse per il progetto. Ovviamente ne faremo dei report che verranno pubblicati.

Nel messe di agosto organizzerò dei CoderDojo e attività di formazione gratuite su robotica ed Arduino presso il mio paese di origine e proprio in quella occasione farò scorrazzare per la piazza del paese un po’ di DotBot e DotBot S, ma ne darò notizia nei prossimi giorni.

Alcuni suggerimenti che giungono da mia figlia che frequenta le scuole medie: “papà ricordati che i ragazzi amano personalizzare quindi dagli la possibilità per aggiungerci elementi: faccine, occhi, tentacoli, orecchie…”

Ok allora mi metto a lavoro,
meno male che ho la figlia che mi sta con il fiato sul collo 😃

Spero che questa mia idea possa essere utile.

Per prelevare i sorgenti stl per la stampa seguite il link che vi porterà sulla pagina Dotbot-io su thingiverse.

Di seguito le fasi di montaggio.

Come si evince dall’immagine il kit è costituito da pochissime parti, 14 sono gli elementi da stampare.

DotBotS-01

Inserimento della breadboard da 400 fori. In commercio troverete due misure di questa breadboard che differiscono di pochi millimetri l’una dall’atra. Gli elementi di blocco permettono il fissaggio di tutte e due le tipologie di breadboard.

DotBotS-02

Continua a leggere

DotBot al Politecnico di Torino nel corso di Algoritmi e Calcolatori

Come insegnanti e ricercatori pensiamo al progetto DotBot come ad una possibile soluzioni all’azione “dell’imparare ad imparare”, quindi l’informatica a scuola, non solo come materie di studio ma come “meta-materia”, disciplina trasversale ad ogni percorso di apprendimento.
DotBot è quindi da intendere come l’insieme di tool didattici per l’apprendimento del pensiero computazionale prima, e della programmazione poi, a mezzo di sistemi robotici programmabili e connessi. L’idea, come già sottolineato in altro modo in precedenti post, è quindi quella di sviluppare un hardware robotico open source a basso costo, che gli studenti potranno acquistare o autocostruire, unitamente ad una piattaforma online che offra tutorial e materiale didattico pensato sia per studenti autodidatti che per insegnati che vogliano inserire nei propri corsi di informatica l’utilizzo della piattaforma.

Stiamo sviluppando la progettazione di DotBot non solo da un punto di vista tecnico, hardware e software, ma è anche da un punto di vista didattico, quindi sui modi per introdurre DotBot all’interno del curricolo scolastico e questa azione sta seguendo una serie di attività di sperimentazione che abbiamo già condotto con successo in diversi istituti di scuola superiore:

  • IIS Federico II di Svevia di Melfi (Potenza)
  • ITIS Avogadro di Torino
  • IIS Galilei Ferrari di Torino
  • IIS Cassato Gattapone di Gubbio (Perugia)

Il passo successivo è la sperimentazione in corsi universitari.

Questa mattina DotBot è stato presentato al Politecnico di Torino durante il corso di Algoritmi e Calcolatori, organizzato dai Prof. Paolo Prinetto ed Ernesto Sanchez. Durante il corso il robot verrà utilizzato da 10 Studenti che avranno il compito di svolgere l’attività laboratoriale del corso.

Il corso si occupa di insegnare ai ragazzi del secondo anno di Ing. Elettronica le basi del funzionamento di un Computer insieme a nozioni avanzate di programmazione, veicolate attraverso l’insegnamento delle pratiche di programmazione ad oggetti e del linguaggio C++.

Per sostenere l’esame, oltre a confrontarsi con una prova teorica, ai ragazzi è richiesta anche la presentazione di un progetto pratico sviluppato in C++, solitamente un programma complesso che riprenda le varie nozioni teoriche studiate nel corso.

Quest’anno, per la prima volta, si è deciso di offrire la possibilità a un ristretto numero di studenti di confrontarsi con un progetto che preveda l’utilizzo di interfacce robotiche appositamente ideate per la didattica.

Il progetto DotBot verrà utilizzato da 2 gruppi di ragazzi (5 ragazzi per team, che sono stati scelti in maniera casuale tra gli iscritti al corso). In particolare ad ogni team verrà fornito un kit DotBot (basato su Raspberry) che gli studenti dovranno assemblare e programmare in modo da sviluppare un’applicazione robotica in ROS che permetta ad i due robot di interagire tra loro e con gli studenti tramite una WebApp.

I progetti verrano seguiti da Giuseppe Airò Farulla con il supporto di Ludovico Russo.

DotBot-Politecnico-di-TorinoDotBot-Politecnico-di-Torino-02

 

DotBot – avanzamento lavori e sviluppi futuri

Scrivo questo post perché ho ricevuto molte mail in cui mi si chiedeva dove reperire ed acquistare i materiali e quali saranno i futuri sviluppi del progetto, ho raccolto le principali domande che mi sono state poste. Ricordo prima di ogni cosa che il progetto sviluppato da me Michele Maffucci e l’amico Ludovico Russo è assolutamente open sia nella struttura che nelle parti software.

  1. Quali sono gli obiettivi del progetto?
    L’obiettivo principale del progetto è l’insegnamento del coding per ogni grado di istruzione, sono in progetto software e modifiche di struttura a DotBot (anche diverse dall’attuale forma esagonale) pensate per la scuola elementare, media superiore ed università.
  2. Da quante persone è costituito il gruppo di lavoro?
    I fondatori del progetto sono:
    Michele Maffucci, insegnate di scuola superiore e per ora mi sono occupato dello sviluppo della struttura meccanica e implementazione codice per Arduino.
    Ludovico Russo dottorando presso il Politecnico di Torino e si occupa di Robotica e formazione all’interno del Politecnico ed attualmente è concentrato sullo sviluppo software dell’IDE di programmazione in ROS di DotBot. Al gruppo di lavoro si aggiungeranno studenti delle scuole superiori, insegnanti della secondaria di secondo grado e studenti universitari che ci aiuteranno nello sviluppo delle varie parti della piattaforma.
  3. Sono previste modalità di programmazione alla “Scratch” di DotBot?
    Sì, abbiamo implementato una prerelease ancora in alfa, non appena riusciremo ad entrare in versione beta verrà resa pubblica.
  4. Vorrei modificare la struttura di DotBot, posso farlo?
    Assolutamente Sì, ti chiediamo solamente di citare il progetto DotBot nei documenti che produrrai e renderai pubblici.
  5. Vorrei acquistare DotBot con tutti i componenti elettronici, come posso fare?
    Nel prossimo futuro sì. Siamo insegnanti e non ci siamo mai occupati di vendita, quindi stiamo valutando una forma semplice per permettervi di acquistare DotBot. Prossimamente verrà aperto un sito per raccogliere le richieste e permetterci di valutare la modalità più semplice e veloce per fornire DotBot.
  6. Ma dietro a questa azione di formazione si nasconde una forma di business?
    Non nascondiamo nulla, come puoi vedere su questo sito esiste un campo di donazione che mi permette di mantenere questo servizio (dominio, banda usata, tempo, ecc…) e continuare la mia attività di divulgazione che viene fatta per passione e per amore del mio mestiere. Alla stesso modo per portare avanti un progetto di divulgazione scientifica come DotBot sono necessari investimenti in materiali (elettronica, materiale per la stampa 3D, tempo per lo sviluppo, ecc…), quindi sì chi lo vorrà potrà sostenere il progetto con donazione o acquistando i materiali. Secondo noi questo è l’unico modo per portare avanti un progetto di tale entità.
  7. Vorrei usare DotBot nella mia scuola/università attività di formazione all’interno di un CoderDojo, posso farlo?
    Sì, è l’obiettivo principale del progetto, ti chiediamo se possibile di inviarci documentazione (fotografie, filmati, relazione, ecc…) in modo che noi lo si possa mettere in evidenza sul futuro sito dedicato.
  8. Potete fornirci la lista dei materiali elettronici da acquistare?
    Sì, nel breve forniremo la lista dei materiali consigliati che potrete acquistare da chi vorrete.
  9. Vorrei usare DotBot in attività di formazione a pagamento, posso farlo?
    Sì, ti chiediamo di citare il progetto, con link al sito di riferimento di DotBot, per ora, visto che il sito è in costruzione ti chiedo di fare riferimento a questo sito.
  10. Posso vendere DotBot?
    No.
  11. Pensate di dare supporto software per pilotare DotBot?
    Sì, l’obiettivo è quello di implementare una serie di tutorial da cui partire e permettere alla comunità di migliorare quanto da noi proposto e sviluppare altro software.
  12. Esiste un forum di discussione dove chiedere supporto su DotBot?
    Non ancora, nel breve ne verrà aperto uno. Inoltre l’intenzione è quella di implementare una comunità su cui condividere risorse e scaricare liberamente tutti i sorgenti.
  13. Esistono scuole/università che stanno usando DotBot?
    Il progetto è appena nato, poco più di un mese, ma è stato già utilizzato in beta in attività di formazione in alcune scuole superiori, FabLab, e nel breve sarà usato all’università, pubblicheremo lista degli enti che adottano DotBot.
  14. L’uso di schede elettroniche è però un po’ complicato per bambini di scuola elementare, consigli comunque l’uso di DotBot?
    Abbiamo sperimentato l’uso di DotBot con alcuni allievi, motivati, di scuola media è si riesce a predisporre lezioni coinvolgenti. Per quanto riguarda gli allievi di scuola elementare l’idea è quella di implementare una struttura alla “lego” fatta di moduli funzionali, in cui l’elettronica è nascosta e l’allievo assembla e programma il robot con una filosofia molto simile alla programmazione a blocchi di Scratch, questa fase è stata implementata con un prototipo a cui è stato aggiunto un display oled e altoparlante che permette di implementare messaggi emozionali (esperssioni di un viso), di dimensioni ridotte, comandato con una modalità simile al Bee-Bot, si veda la pre-release nelle immagini allegate a questo post.
  15. Esiste un legame tra il progetto DotBot ed EduRobot?
    Sono progetti paralleli, EduRobot ha l’obiettivo di semplificare al minimo i costi di implementazione per sviluppare una didattica della robotica, DotBot è da intendersi come un “forking project” di EduRobot, ma il progetto EduRobot non verrà abbandonato.

Momentaneamente, verrà aperto su questo sito una sezione (accessibile con bottone in colonna destra) dove reperire tutte le informazioni pubblicate su DotBot.

Entro la prossima settimana verrà resa pubblica la versione 2 del telaio di DotBot a cui sono state fatte alcune modifiche elencate di seguito con dettagli fotografici:

  • struttura per motori passo passo 28BYJ-48
  • struttura per motori passo passo NEMA 17
  • struttura servo motori a rotazione continua (360°) questo per consentire a chi lo vorrà di non utilizzare uno shield motori aggiuntivo risparmiando sulle spese per l’acquisto dell’elettronica.
  • sostituzione dei supporti esagonali metallici da 25 mm con struttura stampata in 3D con fori in ogni direzione in modo da avere un elemento multifunzionale per aggancio di altre strutture, questa modifica ha permesso una riduzione dei costi su viti e dadi e l’aumento della velocità di assemblaggio.
  • Variazioni delle basi di appoggio con fori per: alloggiamenti nuovi motori, sensori per implementare segui linea, passaggio cavi, fissaggio per tutte le tipologie di motori, facilitazione per assemblaggio, predisposizione per terzo livello di DotBot dove poter alloggiare ulteriori elementi (schede elettroniche, adattamenti estetici, ecc…)

Alla nuova versione, con la nuova tipologia di motori, verranno resi pubblici esempi di programmazione.

DotBot-01

DotBot-02

DotBot-03

DotBot-04

Alfa version per studio di fattibilità pensato per bambini di scuola elementare, nella versione successiva i componenti elettronici saranno rinchiusi all’interno di involucri che il bambino assemblerà in modo simile ai mattoncini lego:

pre-release-DotBot-mini-01

pre-release-DotBot-mini-02

pre-release-DotBot-mini-03

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