Archivi categoria: robotica

PCTO A.S. 2020 – 2021 – SumoBot – lezione 1

Lavoro di PCTO a.s. 2020-2021. Anno scolastico difficile, la pandemia non aiuta assolutamente nello sviluppo di attività laboratoriali a scuola e in azienda e a tal proposito ho pensato di rivedere completamente il laboratorio iniziando dalle attività di laboratorio degli studenti del 3′ anno.
Come molti colleghi e studenti sapranno il PCTO (ex alternanza scuola lavoro) svolto al terzo anno consiste nello svolgimento di un’attività che viene integralmente realizzata a scuola in cui viene svolta una simulazione d’impresa, dalla progettazione alla creazione di un prodotto, ma il periodo è complicato e lo svolgimento delle attività avverrà in parte online ed in parte in presenza, online si effettueranno tutte le operazioni progettuali e di documentazione mentre in presenza si assemblerà l’oggetto che dovrà poi essere reso prodotto. Come per gli anni passati per le classi terze propongo un’attività basata su un kit da me progettato che i ragazzi poi dovranno modificare e migliorare sia dal punto di vista meccanico che dal punto di vista elettronico e informatico. Parto da un prodotto progettato in partenza semplicemente perché i tempi, i costi ed il periodo non permettono una progettazione da zero, ma come accade ogni anno molti ragazzi a fine attività rivedono integralmente il progetto riformulando una nuova proposta.


La robotica attrae sempre e prototipare piccoli robot affascina sempre i giovani studenti, pertanto ho modificato la prima versione del SumoRobot disegnato nello scorso anno scolastico, formulando una versione che potesse essere realizzata con semplicità e a costi molto bassi.
Tutti i miei studenti, di qualsiasi classe, ormai posseggono un kit Arduino con una buona dotazione di componentistica elettronica, pertanto le esercitazioni  in DaD non avvengono solamente usando simulatori, ma svolgendo praticamente loro a casa ed io a casa o a scuola le esercitazioni e allo stesso modo si opererà per l’attività di PCTO, fornendo un kit agli allievi.

Il kit consiste in un supporto di compensato da 4 mm tagliato a laser a scuola le cui parti verranno fissate utilizzando colla vinilica. Il controllo avviene mediante un Arduino Nano connesso ad una Sensor Shield V03 che permetterà agevolmente di connettere sensori e attuatori mediante semplici jumper evitando saldature.

I motori sono costituiti da due servomotori a rotazione continua, ciò consentirà di alimentare direttamente i motori dalla scheda Arduino evitando l’aggiunto di una ponte H per controllare i motori, azione che i ragazzi svolgeranno in altre esercitazioni. Due i sensori utilizzati sul robot: sensore ad ultrasuoni e sensori IR. L’alimentazione avverrà tramite una batteria da 9V. Il controllo dei movimenti del robot potrà avvenire anche remotamente via Bluetooth con Smartphone. Due gli elementi stampati in 3D, una ball caster in cui viene inserita una biglia di vetro e un supporto per il sensore ad ultrasuoni.

Durante la prima lezione gli allievi dovranno, seguendo il video allegato, assemblare tutte le parti, ricordando prima di ogni cosa di fissare la sensoristica e l’elettronica e successivamente procedere con l’incollaggio delle varie parti di compensato della struttura.

Per poter assemblare il robot bisognerà seguire il video allegato e le fotografie che seguono in cui sono evidenziate alcune parti.

E’ importante inoltre porre attenzione alla parte superiore di compensato che ha un orientamento specifico, seguire attentamente le indicazioni del video e delle fotografie.

A questa prima lezione allego la presentazione del progetto e i sorgenti grafici (pdf) in modo che anche altri colleghi o studenti possano duplicare e migliorare l’attività.

Nelle successive lezioni verranno mostrati i collegamenti elettrici delle varie parti e proposti alcuni sketch di esempio da cui partire per aggiungere le funzionalità richieste.

Presentazione del progetto.

Titolo del progetto: SumoRobot

Simulare la progettazione e la realizzazione da parte di un’azienda di un kit robotico per l’apprendimento del Coding e della Robotica per studenti della scuola media e primi due anni delle superiori.
Il Robot deve avere caratteristiche tali da poter essere impiegato in diverse tipologie di sperimentazioni didattiche:

  • evita ostacoli
  • segui linea
  • comando a distanza via Smartphone
  • modalità gara Sumo

Il kit dovrà essere corredato da:

  • Titolo Azienda
  • Titolo del prodotto (non deve essere quello dell’attività di PCTO) corredato da logo
  • Brochoure pubblicitaria
  • Manuale di istruzioni per il montaggio composto da: lista materiali e componenti, fasi di montaggio, il tutto arricchito con immagini e disegni tecnici
  • Manuale introduttivo alla programmazione con Arduino indirizzata alla programmazione del robot
  • Lista di sketch di esempi commentati e funzionanti da allegare al kit
  • Slide di presentazione del progetto
  • Sito internet di riferimento in cui raccogliere tutta la documentazione per il cliente

Note

  • Tutta la documentazione dovrà essere prodotta in lingua italiana ed inglese.
  • Il sito internet dovrà essere realizzato con Google Site e sarà visibile solo mediante account personale dello studente al gruppo di lavoro e ai docenti del Consiglio di Classe
  • Il diario di bordo dovrà essere prodotto con Google Documenti e dovrà collezionare l’attività svolta durante ogni giornata di lavoro
  • Nel diario di bordo bisognerà includere una sezione di “considerazioni personali” espresse da ogni singolo studente sull’attività svolta ed eventuali suggerimenti per il miglioramento del progetto.
  • La presentazione del prodotto dovrà essere realizzata con Google Presentazioni
  • Ogni fase costruttiva dovrà essere documentata in modo fotografico e con brevi video

Lista componenti

  • Sensore ultrasuoni HC-SR04
  • Sensor Shield per Arduino Uno Nano V3
  • Servomotori a rotazione continua 360° –  FS90R con ruote
  • Arduino Nano (originale o compatibile) nella versione compatibile che utilizza un convertitore da USB a Seriale tipo CH340G è indispensabile installare un driver specifico
  • Cavo di Alimentazione 9V con cavo jack maschio 2.1 X 5.5 mm
  • Batteria 9V
  • Jumper Femmina-Femmina

Orientamento delle varie parti della struttura del robot

Vista frontale del robot

Vista dal basso del robot, si notano i due sensori IR fissati con vite M3 da 12 mm

Blocco supporto sensore ultrasuoni mediante due viti M3 da 12 mm

I servomotori sono fissati alla struttura mediante due fascette stringicavo. Seguire l’orientamento dei servomotori così come indicato nelle immagini che seguono, i cavi di uscita dei servomotori devono essere rivolti verso l’esterno

Nell’immagine si nota in quali fessure far passare la fascetta stringicavo

La chiusura della fascetta deve avvenire nella parte inferiore del robot mantenendo il nodo di chiusura così come indicato nell’immagine

Le ruote vanno fissate al mozzo del motore mediante apposita vite

La scheda Sensor Shield V03 va fissata ai giunti esagonali mediante vite M3 da 10 mm

Nella prossima lezione vedremo come collegare le varie parti elettroniche ed inizieremo con la programmazione del robot.

Buon Making a tutti 🙂

SumoFoam – per realizzare velocemente una struttura per robot didattico

“5 minuti da Maker” è orami un’abitudine che ho da qualche tempo: progettare in 5 minuti un oggetto o una soluzione e realizzarla. Alcune volte realizzarla mi richiede un po’ più di 5 minuti, ma cerco di non superare in tutto 60 minuti. E’ un’esercizio che mi sono imposto settimanalmente, un po’ come svago un po’ per dar sfogo ad idee nascenti che potrebbero diventare qualcosa di più importante.

Questa volta l’esercizio consiste nel rendere ancora più semplice la realizzazione del SumoBot, picco robot realizzato in compensato, trasformandolo in una versione realizzata con un materiale ancora più semplice da manipolare per gli studenti più giovani, il Foam Core, (per saperne di più continua la lettura 😉 ).

Durante una delle tante attività di PCTO feci realizzare ai miei studenti di 3′ automazione un il piccolo SumoBot su una base di compensato da 3mm, l’attività consisteva nel montare la struttura, l’elettronica e programmare i robot affinchè potessero gareggiare. Il tutto era stato realizzato con schede Arduino UNO R3 e anche con degli Arduino micro, due micro servo SG90 a rotazione continua ed un sensore ad ultrasuoni. Alcuni aggiunsero al robot una scheda Bluetooth per poter pilotare il robot anche via smartphone. Fu un’attività divertentissima che voglio riproporre ai ragazzi.

Nel riprendere in mano il progetto ho pensato di realizzare una versione della struttura in Foam Core, un materiale utilizzato dagli architetti per costruire plastici di abitazioni.  Si tratta di uno strato di spugna racchiuso da due fogli di cartoncino. Viene venduto in fogli di diverso spessore e dimensione, attualmente sto utilizzando fogli A3 di spessore 5mm. Le strutture che se ne ricavano sono sufficientemente solide. Utilizzo questo materiale quando voglio prototipare rapidamente oggetti per le mie sperimentazioni, come quello che vedete nell’immagine che segue, un supporto per un display 16×2.

In genere stampo su fogli adesivi bianchi A4 la struttura che voglio realizzare, dispongo i fogli adesivi sul Foam Core e con un cutter ne ritaglio il profilo. Tutti gli elementi poi vengono incastrati e incollati con normalissima colla vinilica.

Con il Foam Core ho provato a realizzare una serie di piccoli robot e sono rimasto più che soddisfatto.

Di seguito la sequenza fotografica delle fasi di montaggio, il taglio degli elementi non è perfetto, con un po’ più tempo e pazienza si può fare molto meglio.

Tra qualche giorno, quando terminerò di effettuare le ultime prove sul SumoFoam renderò pubblico il file pdf.

Stampo su foglio adesivo bianco il profilo del robot ed incollo su Foam Core.

Si nota la struttura a sandwich del pannello: cartoncino – materiale spugnoso – cartoncino

Oltre ad incastrare i vari elementi ho utilizzato della colla vinilica.

Prossimamente il montaggio dell’elettronica da parte dei miei studenti.

Buon Making a tutti 🙂

La rinascita del Lego Mindstorms NXT 2.0 – programmiamolo in C

Di recente ho scoperto che nella scuola presso cui lavoro sono presenti una serie di Lego Minstroms NXT 2 e come credo sappiate questa versione non può essere più programmata utilizzando l’ultima versione dall’IDE grafico di Lego, quello che attualmente viene utilizzato per per la versione EV3.
In questi giorni ho ripreso in mano la vecchia versione del mattoncino per capire come recuperarlo ed utilizzarlo in ambito didattico. In passati articoli su questo blog avevo segnalato tutti i possibili linguaggi di programmazione che possono essere utilizzati con tutte le versioni di Mindstorms, tra questi però prediligo il linguaggio C in quanto i miei allievi devono utilizzarlo in altri ambiti: microcontrollori, PIC ecc… quindi un primo passo potrebbe essere quello di imparare a programmare in C realizzando robot con l’NXT 2.

Premessa importante.

On-line trovate una serie di tutorial per usare il vecchio mattoncino, alcuni consigliano di utilizzare addirittura Windows XP su un vecchio PC o su PC virtualizzato, ovvimente io sconsiglio vivamente questa strategia soprattutto perchè da anni Microsoft non supporta più XP ed inoltre mina seriamente la sicurezza del computer (virus).

Prelevate dal link indicato di seguito l’ultima versione dell’NXT-G rilasciata dalla Lego al cui interno sarà già presente il driver corretto per il vostro sistema operativo Windows 10, driver che per altro sarà indispensabili per chi intende anche programmare in C il mattoncino. Nello stesso link trovate i riferimenti per gli utenti MacOS X.

Nel caso abbiate sul vostro computer una versione precedente dell’NXT-G non più funzionate potete procedere alla sola installazione del driver NXT Fantom Driver che risolve una serie di problemi di comunicazione, inoltre questo driver permetterà di sistemare tutti i problemi che si hanno con altri ambienti di sviluppo come: LejOS, RobotC, ecc…

Pagina di riferimento per il download

Windows 10

MacOSX

Veniamo ora all’ambiente di sviluppo in C.
Vi consiglio di utilizzare Bricx Command Center (BricxCC) ambiente Open Source adatto per tutte le versioni Mindstorms: RCX, NXT ed EV3. L’IDE di programmazione funziona per tutte le versioni di Window a 64 bit.

Nella pagina trovate il link “latest version” che NON dovete prendere in considerazione in quanto vi rimanda ad una serie di versioni NON compatibili con Windows 10.

SEGUITE invece il link test release, il nome è fuorviante, ma è quello giusto.

Dopo una serie di test ho verificato che la versione corretta è quella che fa riferimento al file: bricxcc_setup_33810_20130220.exe

E’ un file autoscompattante, all’interno ritroverete la seguente struttura:

Doppio click sul file BricxCC

Comparirà la finestra “Find Brick”

Queste le impostazioni:

Port: Automatic
Brick Type: NXT
Firmware: “Standard”

Nel caso abbiate la necessità di caricare l’ultima versione del Firmware sul mattoncino potete procedere in due modi:

Modo 1 (consigliato): utilizzate NXT-G ed aggiornate il firmware

Modo 2: da BricxCC, menù Tools > Download Firmware selezionate l’ultima versione che trovate nella cartella BricxCC: lms_arm_nbcnxc_132.rfw

Per quanto riguarda le impostazioni dell’ambiente BricxCC dal menù: Edit > Preferences…

Queste le impostazioni del pannello: Compiler > NBC/NXC

Bene! Il vostro vecchio mattoncino NXT 2 è rinato 🙂 pronto per realizzare tutti i robot che desiderate.

Buon Coding a tutti 🙂

ROB-O-COD un evento da replicare a scuola – lo racconterò a Fossano (Cn) il 6 giugno prossimo

Come ebbi modo di scrivere qualche tempo fa su Facebook, pur essendo docente di scuola superiore ho avuto la fortuna di insegnare a studenti e insegnanti di ogni ordine di scuola. Ogni nuova attività di formazione mi offre la possibilità di sperimentare tecnologie e modalità di comunicazione che poi se efficaci assemblo per costruire gli strumenti per le future lezioni.

Credo che uno dei momenti più ricchi per la mia formazione sia stata quella derivante dalle attività di laboratorio con gli studenti di scuola elementare, la loro creatività, il loro stupirsi ed il loro punto di vista richiede una progettazione completamente diversa da quella con allievi di scuola superiore.

In questi mesi sto dedicando alcune ore pomeridiane alla formazione di studenti di 4 elementare, gli obiettivi sono quelli che amo di più: Coding e Robotica.

Gli strumenti che utilizziamo sono molti: carta, matite, BBC micro:bit, Lego WeDo e anche Lego Mindstorms EV3 e proprio su quest’ultima tecnologia, anche se non ne era stato programmato l’utilizzo, ho avuto forte richiesta da parte degli studenti da quando, per aumentare il loro interesse nelle attività proposte, ho dato notizia della trasmissione ROB-O-COD:

“MICHELE anche noi vogliamo partecipare!
Costruiamo i campi, con il cartone e facciamo noi i mondi e ci insegni!”

Ora come rispondere a questa necessità?
Ai bambini bisogna rispondere! 🙂

La trasmissione ha un traget per ragazzi di scuola media con l’uso di tecnologie non proprio adatte ai più piccoli delle scuole elementari…

pensare pensare e ripensare…

Di seguito vi condivido una primissima bozza di attività da perfezionare, per velocità di scrittura inserisco direttamente quanto scritto nei miei appunti su Evernote spero che queste idee possano servire anche ad altri:

Bozza di progetto:

  • vediamo la prima puntata di ROB-O-COD in classe, al termine ne faccio nascere un confronto tra gli allievi per immaginare attività di gara e modalità di costruzione campi e robot.
  • I campi gara avranno una forma geometrica particolare (nota per il lettore: non ne posso parlare in questo post per non svelare troppe cose ma potreste intuire la forma dei tavoli dalla grafica della trasmissione 😉 ).
  • Spiego come costruire su carta questa specifica forma geometrica.
  • Con le dimensioni reali usate per realizzare i campi gara in trasmissione, replichiamo la forma con dello nastro di carta posto sul pavimento dell’aula, all’interno del perimetro dovranno gareggiare i robot programmati dai bambini.
  • Le dinamiche di gioco saranno molto simili a quelle della trasmissione: presenza di un pubblico, di tecno-disturbatori che dovranno creare difficoltà alla movimentazione dei robot, ecc…
  • Tecnologia dei robot: primo girone realizzazione di robot basati su BBC micro:bit la cui struttura sarà di cartone, secondo girone robot realizzati con Lego WeDo. I primi classificati potranno utilizzare il Lego Mindstorms EV3 messo a disposizione del Prof. (Io) per realizzare una gara su un singolo campo di gioco.
  • Scrivere le storie. Le storie potranno essere realizzate prendendo spunto da quanto proposto di giorno in giorno nella trasmissione oppure inventate dagli studenti (valutare attività da far svolgere durante le attività al mattino).
  • Come realizzare la scenografia? Scatole di cartone, bottiglie e bicchieri di plastica, mattoncini Lego.

Cercherò nelle prossime settimane condividere una versione aggiornata dell’attività. L’intero percorso sarà presentato ad un gruppo di insegnanti durante l’evento di Coding e Robotica per scuole medie organizzato dall’IIS Vallauri di Fossano il prossimo 6 giugno.

e ricordare: #ROB_O_COD è tutto un programma!

🙂

ROB-O-COD… tanto tempo fa era un LegoDuino

Mi è stato chiesto qualche giorno fa quale piattaforma fosse stata scelta per la realizzazione dei Robot per le gara per la trasmissione ROB-O-COD.

La scelta è stata attentamente valutata, anche con sperimentazioni pratiche che mi hanno coinvolto in prima persona.

Nel “brodo primordiale delle idee” 🙂 circa 1 anno fa, erano state considerate diverse tecnologie: BBC micro:bit, robot basati su Arduino e dopo tanto sperimentare e progettare, si è giunti a Lego Mindstorms EV3, i motivi di questa scelta, condivisi tra tutte le persone che hanno partecipato alla realizzazione della trasmissione sono stati molti, i principali: rapidità di assemblaggio e modifica dei robot in un ambito di studio televisivo, personalizzazione delle strutture, interfaccia grafica di programmazione intuitiva… e molto altro.

Nelle prime fasi di progetto ho valutato e sperimentato soluzioni miste, interfacciando, motori Lego Mindstorms con Arduino.
In passato avevo realizzato LegoDuino (seguendo il link potrete vedere un video dimostrativo) l’obiettivo era quello di realizzare dei robot Sumo, su di essi avevo inserito sensori ad ultrasuoni ed infrarossi.

Per ROB-O-COD, ho variato la versione Sumo in una versione cingolato su cui ho svolto le primissime sperimentazioni:

Ma come realizzare una soluzione mista?

Poiché mi è stato chiesto espressamente da alcuni colleghi, di seguito propongo un breve tutorial per la realizzazione di una struttura mista (Lego+Arduino) in modo che possiate poi da soli replicare le modalità di gara così come le potrete vedere nella trasmissione ROB-O-COD.

Il motore Lego Mindstorms, sia nella versione NXT che EV3 funziona ad una tensione di 9V e possiede al suo interno un encoders rotativo con una risoluzione di 1 grado, il controllo avviene mediante i cavi gialli e blu, nel tutorial che mostro però non utilizzerò l’encoder, ma solamente i due cavi bianco e nero utilizzati per l’invio del segnale PWM questi pin vengono chiamati MA0 e MA1 (tabella pin indicata di seguito).

Per effettuare il collegamento tra motore ed Arduino potete utilizzare una piccola interfaccia che permette di collegare i cavi BrickLink (noto anche come RJ12) in dotazione ai kit Lego Mindstorms, con la breadboard, i connettori si chiamano:

Breadboard Connector Kit for NXT or EV3 (seguite il link)

Nel caso non riusciste a procuravi questo adattatore, tagliate il cavo BrickLink ed utilizzate solamente i cavi bianco e nero, saranno questi che verranno collegati direttamente ad Arduino.

Di seguito la mappatura del cavo, per la numerazione fate riferimento a quanto indicato nell’immagine in cui è rappresentato il motore:

PIN    Colore    Nome
 1     Bianco    MA0
 2     Nero      MA1
 3     Rosso     GND
 4     Verde     4.3V dal mattoncini Lego
 5     Giallo    Tach01 (Encoder rotativo)
 6     Blu       Tach02 (Encoder rotativo)

Per procedere nella sperimentazione dovete munirvi di:

  • Scheda Arduino UNO R3 o simili
  • Scheda motore L298N
  • Breadboard Connector Kit for NXT or EV3 (in alternativa tagliate i cavi)
  • Uno o due motori Lego NXT o EV3

Il principio di funzionamento, inclusi i collegamenti, la programmazione e il funzionamento della scheda motori L298N sono identici a quelli che trovate nella lezione:

EduRobot – ASL (Alternanza Scuola Lavoro) – Manuale di costruzione – 2/3

Seguendo la lezione sarete in grado di realizzare un robot costituito da elementi Lego, scheda Arduino e sensori, tutto facilmente reperibile on-line a costi contenuti.

Aggiungo a quanto già indicato nella lezione segnalata sopra, gli schemi di collegamenti con la presenza dei motori Lego alimentati mediante una batteria esterna a 9V.

E se poi siete “puristi Lego” 🙂 allora partendo dai tutorial che trovate nell’ambiente di programmazione della versione LEGO MINDSTORMS EV3 Home Edition potrete realizzare qualcosa di molto simile a quanto mostrato nell’immagine che segue…

e ricordare: #ROB_O_COD è tutto un programma!

🙂