Anteprima
Vedrai una selezione di 10 pagine su 44
Robot Pag. 1 Robot Pag. 2
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 6
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 11
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 16
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 21
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 26
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 31
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 36
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Robot Pag. 41
1 su 44
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Sommario
- MiniRobot 2008
- Il campo da gioco
- La nostra soluzione
- Lego Mindstorms
- Programmare l’NXT
- Programmazione concorrente
- Multi-thread
- Il Bluetooth
- Cut The Cables!
- Trasmissione seriale
- Standard di interfaccia seriale RS 232-C
- Robot industriali
- La società del benessere in Italia
- Eugenio Montale
- l'ultimo Montale: quale attualità?
- é ancora possibile la poesia?

Introduzione
Automa, operatore automatico meccanico controllato da un cervello elettronico, con particolare riferimento agli apparecchi programmabili usati in alcuni settori dell’industria e della ricerca scientifica per sostituire l’uomo in attività manuali faticose, pericolose o troppo costose dal punto di vista del profitto. Così è com’è definito un robot dai dizionari: una macchina in grado di sostituire l’uomo. È davvero corretto però che l’uomo trovi un sostituto per l’attività che più delle altre lo rende “umano”, ovvero il lavoro?
L’interesse della scienza per tutto ciò che è inerente alla robotica è elevato per diversi motivi. La robotica (branca dell’ingegneria) è una scienza che abbraccia molte discipline scientifiche, tra cui: automazione, elettronica, fisica, informatica, matematica, meccanica ma anche umanistiche come biologia, fisiologia, linguistica e psicologia. Inoltre l’uomo è sempre stato affascinato dall’idea di una macchina simile all’uomo come nel caso dei cosiddetti “androidi”, una parola che deriva dal greco e significa “simile all’uomo”, poiché sono costruiti con materiali simili ai tessuti umani e possiedono qualche forma di pensiero cosciente o persino capacità emotiva.
Bisogna però stare attenti a non cadere in visioni fantascientifiche di questi robot come spesso siamo portati a fare da una serie illimitata di produzioni cinematografiche che stuzzicano fin dal lontano 1897 (data del primo film in cui si parla di robot – Gugusse et l’automation) la fantasia delle persone.
Ai nostri giorni la parola “robot” è identificabile nell’ambito dell’industria moderna che, attraverso l’uso di queste particolari macchine, è riuscita a ridurre il tempo e le difficoltà fisiche per la creazione di tutti quei beni che per l’uomo odierno sono indispensabili: automobili, lavatrici, frigoriferi e tutti gli elettrodomestici e le comodità che ci circondano. Sull’utilità di questi prodotti ormai è difficile dubitare, ma bisogna analizzare attentamente sia gli aspetti positivi senza tralasciare quelli negativi, che sono riscontrabili nella storia dai non troppo lontani anni ’50, gli anni che sono caratterizzati dalla ricostruzione post bellica.
La voglia di approfondire questo tema è nata dalla partecipazione al progetto MiniRobot 2008 che si è svolto durante l’anno scolastico. Il MiniRobot è una competizione organizzata dalla residenza universitaria Alcantara di Catania in collaborazione con il DIEES (Dipartimento di Ingegneria Elettrica, Elettronica e dei Sistemi), “che mira a suscitare e sviluppare l’interesse del grande pubblico verso la robotica e avvicinare i giovani al mondo della scienza e della tecnologia”.
Estratto del documento

Scrivanie

Queste erano sempre realizzate in legno, dipinte in colore rosso o blu con le dimensioni 7 x 25 x 15cm

La nostra soluzione

La strategia da noi formulata prevedeva la costruzione di un robot in

grado di: orientarsi all’interno dei tre labirinti, afferrare un libro, portarlo

indietro e alzarlo in prossimità della scrivania per collocarlo sopra di essa.

Sensore di tattile,

Sensore di segnala il

movimento e momento in cui la

distanza ad pinza arriva

all’altezza

Motore che

permette

Pinza, per tramite un

afferrare i libri, sistema a

azionata da due puleggia di far

motori collegati in salire e

parallelo scendere la

pinza

Uno dei due

motori per le

ruote motrici

Il “cervello”: è il mattoncino programmabile

che gestisce i motori e i sensori del robot

attraverso tre porte di uscita per i motori e 4

per i sensori.

7

Inoltre tra le due ruote motrici si trova un sensore di luminosità, puntato

verso il piano del campo da gioco, in grado di riconoscere il passaggio

sulle linee nere del campo che delimitavano le sue tre parti (partenza con

scrivanie, labirinto con ostacoli, arrivo con i libri da portare indietro).

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 .

1

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 .

2

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

1 Massachusetts Insitute of Technology: una delle più importanti università di ricerca al mondo

con sede a Cambridge.

2 Il software viene rilasciato con un tipo di licenza per la quale il codice sorgente è lasciato alla

disponibilità degli sviluppatori 8

flash e 512 byte RAM uno schermo LCD con una risoluzione 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

3

controllo, di indicare quali operazioni svolgere.

Oltre questo tipo di programmazione che ha un approccio più ludico,

esistono molti altri tipi di programmazione più professionali che sfruttano

graphical user interface

3 L'interfaccia grafica (in inglese abbreviato GUI) è un paradigma di

sviluppo che mira a consentire all'utente di interagire col computer manipolando graficamente

degli oggetti, svincolandolo dall'obbligo di imparare una serie di comandi da impartire con la

command line interface

tastiera come invece avviene con le interfacce testuali (CLI).

9

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.

Programmazione concorrente

In informatica la concorrenza è una caratteristica dei sistemi nei quali

può verificarsi che un insieme di processi computazionali sia in

esecuzione nello stesso istante. Tale sistema è appunto chiamato

sistema a concorrenza o sistema concorrente. L'esecuzione

parallela può condurre a interazione tra processi quando è coinvolta una

risorsa condivisa.

Il concetto di concorrenza è contrapposto a quello di sequenzialità. In un

sistema sequenziale i processi vengono eseguiti uno per volta e non si

verifica alcuna forma di interazione tra essi durante l'esecuzione. In un

sistema concorrente i processi interagiscono scambiando messaggi tra di

loro. 10

P1 P2 P3 P4 P5

sequenzialità

P3 P6

Scambio

P1 P2 P8

P5

messaggi P7

P4

concorrenza

Si può parlare di concorrenza nel caso di:

parallelismo reale di esecuzione (nel caso di sistemi

 multiprocessore dove si possono eseguire parallelamente un

numero di processi pari al numero di processori)

parallelismo virtuale di esecuzione (come nel caso del

 pipelining).

Multi-thread

Nel caso specifico della programmazione dell’NXT si parla di una tecnica

di programmazione multi-thread che permette di avere più flussi di

(thread)

esecuzione contemporanei di uno stesso programma, in

esecuzione su CPU differenti o sulla stessa.

In pratica, i threads sono processi dotati di un proprio stack, ma che

possono condividere variabili globali, essendo stati collegati nell'ambito

della stessa operazione di linking .

4

4 Il Linking (collegamento) è il procedimento di integrazione dei vari moduli a cui un

programma fa riferimento (i quali possono essere sottoprogrammi o librerie), per creare una

11

Il multithreading permette di suddividere il lavoro a più processori in

modo efficiente, ma introduce una notevole complessità che può essere

sincronizzazione

spesso difficile da gestire. Il problema maggiore è la tra i

vari thread: spesso un thread ha bisogno dei risultati di un altro, oppure

deve sovrascrivere i dati di un altro ma non prima di un dato momento.

I sistemi operativi moderni permettono l'esecuzione contemporanea

(quasi!!) di più applicazioni e per questo vengono detti Multitask. Una

applicazione può quindi essere eseguita contemporaneamente ad

un'altra (per esempio quando navighiamo su internet e

contemporaneamente controlliamo la posta, oppure ricerchiamo un file

sul disco). Durante la sua esecuzione, una applicazione deve bloccare

completamente l'esecuzione quando aspetta che terminino processi lenti

come l'accesso ai dischi o la comunicazione con altri computer. Molte

volte le applicazioni possono essere organizzate in maniera tale da

ovviare a questi colli di bottiglia o in maniera da suddividere la loro

esecuzione in più processi, magari ripartiti su più processori in sistemi

multiprocessore. Ecco che in alcuni dei moderni sistemi operativi ci

vengono in contro i Thread. In questo caso avremo a che fare con

sistemi operativi multithread. La differenza tra questi due tipi di

sistema operativo sta nel fatto che nel primo tipo, l'unità elementare di

esecuzione è il task (processo), mentre nel secondo è il thread. I task

sono processi dotati di un contesto proprio che comprende anche aree di

memoria proprie. Ogni task è ottenuto da una separata operazione di

collegamento (linking). Ogni task può consistere di più thread. La

creazione di un nuovo thread non richiede l'impiego di grandi risorse di

sistema al contrario della creazione di un nuovo task.

Per Esempio: linker link editor)

singola unità eseguibile. Il (o è un programma che prende uno o più oggetti

generati dai compilatori e li assembla in un unico programma eseguibile.

12 In questo esempio di codice NXC (not

Boolean a=0; exactly C - il linguaggio simile al C

thread muoviti() { utilizzato per la programmazione del

OnFwd(OUT_BC, 50); robot NXT) viene mostrato un esempio

} di programma multi-thread.

Il thread “muoviti” include una

thread controllosensore() { semplice istruzione che indica al robot

SetSensorLowspeed(IN_4); di utilizzare le uscite B e C dei motori

While(a==0) per andare dritto al 50% della potenza

{ massima.

If (SensorUS(IN_4)<30) Il thread “controllosensore” invece

{ imposta l’ingresso 4 per l’uso del

a=1; sensore a ultrasuoni (che rileva la

} distanza dagli oggetti) e poi, attraverso

} un ciclo while, controlla il valore di

Off(OUT_BC); ritorno del sensore (la distanza

Exit(); dall’oggetto rilevato espressa in

} centimetri) e comanda al robot di

fermarsi nel momento in cui vede un

ostacolo a distanza minore di 30 cm.

task main() {

Precedes (vaidritto, controllosensore); Nel task principale l’unica istruzione

} indica di eseguire

contemporaneamente i due thread

scritti precedentemente.

In questo esempio quindi, mentre il robot si muove eseguendo un

processo (o fa qualunque altra operazione), ne convive un altro che nello

stesso momento effettua un controllo e in caso positivo interrompe

l’esecuzione di tutto il programma. Quindi il task è il programma che

viene mandato in esecuzione, poi spetterà al processore riconoscere i

vari thread che costituiscono il task e assegnare loro un tempo di

esecuzione. 13

Come detto in precedenza una delle altre caratteristiche fondamentali

del robot NXT è quella di poter comunicare tramite Bluetooth. Questa

importanza è data dalla capacità che gli da di comunicare, oltre che con

il pc, con gli altri robot della stessa categoria (Lego Mindstorm NXT). Ciò

permette di mandare messaggi tra un robot e l’altro o di sincronizzare

due “cervelli” NXT, con un parallelismo che garantisce il doppio delle

porte disponibili da sfruttare per tutte le apparecchiature esterne.

Un’altra possibilità che da questa tecnologia è quella di controllare i

movimenti del robot remotamente attraverso un altro dispositivo

portatile dotato di Bluetooth quale uno smartphone o un palmare. La

specifica Bluetooth è stata sviluppata da Ericsson e in seguito

formalizzata dalla Bluetooth Special Interest Group (SIG). SIG, la cui

costituzione è stata formalmente annunciata il 20 maggio 1999, è

un'associazione formata da Sony Ericsson, IBM, Intel, Toshiba, Nokia e

altre società che si sono aggiunte come associate o come membri

aggiunti. Adesso, insieme a tutte la altre tecnologie Wireless, è utilizzata

moltissimo sia in ambito industriale che domestico per dare un definitivo

addio all’utilizzo di ingombranti e fastidiosi cavi.

Il Bluetooth

Lo scopo principale della nascita della tecnologia bluetooth risiede nella

capacità di far dialogare e interagire fra loro dispositivi diversi (telefoni,

stampanti, notebook, PDA, impianti HiFi, tv,computer, PC, cellulari,

Dettagli
Publisher
44 pagine
1081 download