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!
🙂