Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Storia: la Prima guerra mondiale
Diritto: l'impresa
Inglese: robot in manufacturing
Sistemi: i trasduttori
IL ROBOT NXT
1 - DESCRIZIONE DEL PROGETTO
Il robot è stato pensato per:
compiere movimenti autonomi comandati da sensori di
prossimità e di luminosità;
essere comandato a distanza attraverso un telecomando.
I movimenti del robot sono dati da 2 motori elettrici in CC che
possono girare in entrambi i sensi di rotazione a seconda del
movimento che deve fare. Tutto questo però è possibile solo grazie
alla programmazione del “cervello” del robot che a seconda di come
lo programmiamo, con l’apposito programma Lego Mindstorms NXT
2.0 Programming, riesce ad effettuare determinati movimenti.
2 - STRUTTURA DEL PROGETTO
La struttura del robot è completamente costruita grazie ai classici
pezzi Lego che si possono trovare nei negozi di giocheria, e questi
formano interamente il suo corpo. Il robot è basato su un “modello
car”: cioè su una rappresentazione di un’auto con diversi sensori
messi sia come abbellimento che come veri e propri trasduttori.
I trasduttori che abbiamo montato sono: un sensore tattile, un
sensore luminoso (capace di rilevare colori e intensità luminosa), un
sensore di prossimità (ad ultrasuoni) e un sensore audio (con
riconoscimento di tono e timbro).
Oltre i sensori il progetto è caratterizzato
da 3 servomotori che hanno al loro interno
un sensore di rotazione per misurare sia la
velocità che la distanza, che vengono
trasmessi al processore del NXT. 3
3 – MONTAGGIO
Il robot è stato montato fisicamente, come ho già detto, grazie ai
pezzi Lego e virtualmente con un apposito programma, Lego Digital
Designer, che è in grado, una volta completato il progetto, di creare
una guida con la spiegazione del montaggio.
4
4 - PROGRAMMAZIONE
Il motore è impostato alla velocità iniziale di 80 che
possiamo variare grazie ai pulsanti di gestione da
20 a 100.
Abbiamo inserito il blocco “Reverse” di tipo logico
impostandolo con l’impostazione VERO quando è
selezionata la retromarcia, con l’impostazione
FALSO quando è impostato l’avanzamento in
avanti.
Il blocco “TargetSteer” invece è stato inserito per
guidare il terzo motore, cioè quello utile alla
sterzatura delle ruote, che può variare da -75 (a
sinistra) a 75 (a destra). Sterzatura comandata
grazie ad un altro motore presente nel
telecomando. Inizia naturalmente con angolo di
rotazione 0, cioè dritto.
Premendo uno dei pulsanti sul telecomando si invia
un messaggio Bluetooth al NXT ricevente, cioè
quello montato sul robot, e questo messaggio
viene ricevuto nella mailbox 2. Quando un
messaggio arriva in questa casella di posta indica
che riguarda i pulsanti adibiti per la variazione di
velocità e la variazione di verso. Fa passare cosi il
segnale in una “Number Switch” che elabora i tre
pulsanti come segue:
1 (freccia sinistra): Sottrae 20 alla Potenza, e
mantiene la velocità minima arrivati al valore 20;
2 (Invio): Cambia il verso di andamento
(retromarcia – avanti). Quando è impostato su False
si può notare sul display del NXT la scritta
“Reverse”, quando invece è impostata sul file
questa scritta scompare;
3 (freccia destra): Aggiunge 20 alla Potenza, e
mantiene la velocità massima arrivati al valore
100.
Se invece il messaggio Bluetooth viene ricevuto
dalla mailbox 1 significa che abbiamo usato i
pulsanti utili a far ruotare lo sterzo (siamo dunque
andati ad agire sul motore posizionato sul
telecomando impostato per questo scopo). Il 5
motore dello sterzo può variare da 75 gradi a -75 gradi quindi la rotazione non andrà oltre questi valori, e
questo è comandato dal blocco TargetSteer.
Se invece si invia un messaggio alla mailbox 3 si tratta di un messaggio
di tipo logico e ci dice che il sensore di contatto (Pulsante di accensione)
viene premuto. Se il messaggio è vero, invia la potenza selezionata e
aziona i due motori di azionamento, altrimenti li blocca.
Tutti i blocchi sono inseriti in una interazione in modo che il ciclo
si ripeti nel tempo.
I primi due blocchi stanno ad indicare l’invio dell’angolo di sterzo
dal sensore via Bluetooth alla Mailbox numero 1.
I secondi due blocchi invece stanno ad indicare che si è premuto il
tasto del Touch Sensor, cioè del pulsante di accensione, e questo
viene inviato sempre via Bluetooth alla Mailbox numero 3.
Gli altri blocchi invece vanno tutti ad inviare un segnale Bluetooth
alla Mailbox 2, cioè quella riguardante la variazione di velocità e
di andamento:
Se la freccia sinistra è premuta si sentirà un segnale acustico e il
NXT invierà un messaggio testo “1” alla Mailbox 2;
Se invece si preme il tasto ENTER il NXT invierà un messaggio
testo “2” alla Mailbox 2;
Al contrario se la freccia destra è premuta, dopo il segnale
acustico il NXT invierà un messaggio testo “3” alla Mailbox 2.
6
Infine andiamo ad inserire un controllo di tempo in modo che non si inviano messaggi ad un
intervallo di tempo troppo breve causando cosi un sovraccarico di messaggi nel sistema:
l’abbiamo impostato a 0.05 secondi.
Lego Mindstorms
Lego Mindstorms è una linea di prodotti LEGO che combinano
mattoncini programmabili con motori elettrici, sensori, mattoncini
LEGO, pezzi di LEGO Technic (come ingranaggi, assi e parti
pneumatiche) per costruire robot e altri sistemi automatici e/o
interattivi.
È stato distribuito commercialmente come "RIS" (Robotic Invention
System - "Sistema di Invenzione Robotico"). È stato anche venduto
ed utilizzato come sistema educativo, originalmente attraverso una
partnership con il MIT .
LEGO Mindstorms può essere usato per costruire un modello di
sistema integrato con parti elettromeccaniche controllate da
computer. In pratica tutti i tipi di sistemi integrati elettromeccanici
esistenti nella vita reale (come gli elevatori o i robot industriali)
possono essere modellati con i Mindstorms.
C'è una grande e ben sviluppata comunità di professionisti e
amatori di ogni età coinvolti nella condivisione di progetti, tecniche
di programmazione e altre idee riguardanti LEGO Mindstorms.
L'RCX Originale dei Mindstorms è stato rilasciato nel 1998. Nel 2006
LEGO è stato immesso sul mercato un sistema di nuova
generazione chiamato NXT, centrato su di un nuovo mattoncino
programmabile. Il LEGO Mindstorms NXT è Open Source.
Il nuovo prodotto Mindstorms è l’ NXT, che è stato rilasciato ad
agosto 2006. Il kit comprende tre servomotori, un sensore tattile, un
sensore luminoso, un nuovo sensore sonoro, un sensore di
prossimità (a ultrasuoni) e un nuovo mattoncino intelligente NXT.
Il mattoncino intelligente NXT ha un processore a 32 bit a 48 MHz,
con 256k flash memory e 64k RAM, un coprocessore 8 bit a 8 MHz,
con 4k flash e 512 byte RAM uno schermo LCD con una risoluzione
7
di 60x100 pixel, una porta USB 2.0 e connettività Bluetooth. Il
Mindstorms NXT possiede quattro porte d’ingresso e tre di uscita,
ma avendo delle connessioni digitali, sarà possibile aumentarne il
numero con dei moduli esterni. I connettori non sono gli stessi del
RCX e utilizzano porte simili a un connettore RJ-11. Integrato nel
mattoncino c'è un altoparlante da 8 kHz.
Programmare l’NXT
Questi “mattoncini” NXT della Lego sono quindi i cervelli di tutte
quelle creazioni possibili per il kit Mindstorms. Esso infatti da la
possibilità di memorizzare un software prima creato e compilato da
una piattaforma sul PC e di eseguirlo ogni qual volta si vuole senza
l’ausilio di un’apparecchiatura esterna quale il computer. Una volta
avviato il programma sull’NXT, la nostra creatura eseguirà tutto ciò
da noi “dettato” in modo autonomo.
Per lo sviluppo di questi programmi eseguibili dai nostri robot la
Lego mette a disposizione un sistema di programmazione visuale
basato sulla GUI labVIEW, che permette tramite l’uso di blocchi, di
azioni di azione o controllo, di indicare quali operazioni svolgere.
8
Oltre questo tipo di programmazione che ha un approccio più
ludico, esistono molti altri tipi di programmazione più professionali
che sfruttano le potenzialità di linguaggi noti come il C++, java,
visual basic, che danno la possibilità di avvicinarsi di più a quella
che potrebbe essere la programmazione di un robot industriale.
Proprio con un linguaggio testuale si ha la possibilità di sfruttare
tutte le potenzialità offerte dall’NXT perché permette di gestire al
meglio tutti i sensori ed avere un maggiore controllo sulle azioni del
robot. Una tra le più importanti peculiarità di questo tipo di
programmazione è la possibilità di suddividere il programma di
unità di codice indipendenti. Stiamo parlando della programmazione
concorrente che da la possibilità di sfruttare un programma come
un insieme di attività che vengono eseguite in parallelo con flussi di
controllo separati. 9
Storia della robotica
Nel linguaggio comune, un robot è un'apparecchiatura artificiale
che compie determinate azioni in base ai comandi che gli vengono
dati e alle sue funzioni, sia in base ad una supervisione diretta
dell'uomo, sia autonomamente basandosi su linee guida generali.
Esistono molteplici tipi di robot utili ad ogni uso a seconda
dell’esigenza per cui è stato creato: robot da cucina, robot da lavoro
robot
ecc. Il termine è stato coniato per indicare un essere
replichi
artificiale, un automa o Androide, che e somigli ad un
animale (reale o immaginario) o ad un uomo. Il concetto
robot,
di quindi, può comprendere quasi tutti gli apparati
automatizzati. L'idea di persone artificiali risale almeno all'antica
leggenda di Cadmo, che seppellì dei denti di drago che si
trasformarono in soldati; e al mito di Pigmalione, la cui statua di
Galatea prese vita. Nella mitologia classica, il deforme dio del
metallo (Vulcano o Hephaestus) creò dei servi meccanici, che
andavano dalle intelligenti damigelle dorate a più utilitaristici tavoli
a tre gambe che potevano spostarsi di loro volontà.
La leggenda ebraica ci parla del Golem, una statua di argilla,
animata dalla magia cabalistica. Nell'estremo Nord canadese e nella
Groenlandia occidentale, le leggende Inuit raccontano di Tupilaq (o
Tupilak), che può essere creato da uno stregone per dare la caccia e
uccidere un nemico. Usare un Tupilaq per questo scopo può essere
un'arma a doppio taglio, in quanto una vittima abbastanza ferrata in
stregoneria può fermare un Tupilaq e "riprogrammarlo" per cercare
e distruggere il suo creatore. 10
Il primo progetto documentato di un robot umanoide venne fatto da
Leonardo da Vinci attorno al 1495. Degli appunti di da Vinci,
riscoperti negli anni cinquanta, contengono disegni dettagliati per
un cavaliere meccanico, che era apparentemente in grado di alzarsi
in piedi, agitare le braccia e muovere testa e mascella. Il progetto
era probabilmente basato sulle sue ricerche anatomiche registrate
nell' Uomo di Vitruvio. Non si sa se tentò o meno di costruire il
robot. Il primo robot funzionante conosciuto venne creato nel 1738
da Jacques de Vaucanson, che fabbricò un androide che suonava il
flauto. Una volta che la tecnologia avanzò al punto che la gente
intravedeva delle creature meccaniche come qualcosa più che dei
giocattoli, la risposta letteraria al concetto di robot rifletté le paure
che gli esseri umani avrebbero potuto essere rimpiazzati dalle loro
stesse creazioni.
Il termine robot deriva dal termine ceco robota, che significa
"lavoro pesante" o "lavoro forzato".
L'introduzione di questo termine si deve allo scrittore ceco Karel
il quale usò per la prima volta il termine nel 1920 nel suo
Čapek,
dramma teatrale “I robot universali di Rossum”. In realtà non fu il
vero inventore della parola, la quale infatti gli venne suggerita dal
fratello Josef, scrittore e pittore cubista, il quale aveva già affrontato
il tema in un suo racconto del 1917, Opilec ("L'ubriacone"), nel
quale però aveva usato il termine automat, "automa". La diffusione
del romanzo di Karel, molto popolare sin dalla sua uscita, servì a
dare fama al termine Robot. Anche se i robot di erano uomini
Čapek
artificiali organici, la parola robot viene quasi sempre usata per
indicare un uomo meccanico. Il termine androide (dal greco anèr,
andròs, "uomo", e che quindi può essere tradotto "a forma d'uomo")