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.
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

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”.
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,
elettrodomestici, device, etc ) senza la necessità di collegamenti via
cavo, ciò che va sotto il nome di wireless. In un sistema wireless la
trasmissione avviene principalmente via radiofrequenza (RF) o via
infrarosso (IR).
Il nome Bluetooth, deriva dal soprannome di un famoso condottiero
scandinavo, re di Danimarca del medioevo, Harald Blatand o Harold
Bluetooth in inglese che conquistò la Norvegia. Il logo della tecnologia
unisce infatti le rune nordiche (Hagall) e (Berkanan), analoghe alle
moderne H e B
Wireless consente in un ufficio, in una casa di far dialogare tra loro tutti i
dispositivi elettronici presenti. Lo scambio di informazione fra gli
strumenti avviene attraverso onde radio, eliminando qualsiasi tipo di
connessione fisica tra dispositivi. Per fare ciò ciascun dispositivo deve
14
possedere all'interno di un chip, integrato, in grado di trasmettere e
ricevere informazioni nell'etere.
La tecnologia Bluetooth è specificatamente progettata per realizzare
la comunicazione senza fili per apparecchi di piccole dimensioni. Il
concetto chiave ispiratore di questa tecnologia è quello di eliminare
completamente i cavi necessari alla comunicazione fra apparecchi, come
abbiamo visto.
Tutte le apparecchiature bluetooth predisposte in un ambiente di lavoro
sono nella condizione di generare piccoli network ( reti ) senza fili.
Diversamente da una lan i dispositivi interconnessi non si limitano ai
computer ma ad altri diversificati apparecchi elettronici come
cellulari,cuffie,proiettori, scanner, videocamere, fotocamere,
elettrodomestici vari. Questi collegamenti senza fili sono effettuati
usando un ricetrasmettitore che opera nella frequenza di 2,4 GHz,
frequenza assegnata per usi industriali. Le frequenze utilizzate variano
da paese a paese, in relazione alle normative nazionali.
Questi piccoli network wireless sono generalmente chiamati piconet. Un
piconet è costituito da due o più periferiche che condividono un canale di
comunicazione utilizzando Bluetooth , fino ad un massimo di 8
dispositivi. Il sistema di comunicazione bluetooth è progettato per
funzionare anche in ambienti con forte presenza di interferenze, ciò che
va sotto il nome di elettrosmog, ciò per assicurare collegamenti sempre
efficienti e affidabili. E' possibile ad esempio ascoltare musica dell'
impianto stereo o della Tv tramite la cuffia senza fili anche se ci sono
altre apparecchiature che mandano segnali elettromagnetici, come
15
cellulari, router wireless, o oggetti, ostacoli interposti, cosa impossibile
con le cuffie a raggi infrarossi (tecnologia Irda).
La velocità di comunicazione è prossima ad 1 Mbps anche con piccole
potenze nell'ordine di alcuni mW.
In relazione alla potenza i dispositivi Bluetooth vengono distinti in classi,
classe 1, 2, 3, generalmente un notebook implementa un terminale
bluetooth in classe 2 con raggio d'azione di diversi metri.
Lo standard Bluetooth consente di creare delle Wpan (Wireless personal
area networks)con diversi nuovi servizi. quelle che vengono definite
"reti wireless individuali", ossia gruppi di dispositivi differenti tra loro
collegati per soddisfare le esigenze del singolo. Bluetooth permette
infatti di gestire sia i dati sia la voce, utilizzando una trasmissione a
pacchetto su rete radio per i dati e una modalità connection-oriented per
la voce.
Gli elementi base di un sistema Bluetooth sono l' RU( unità radio) e l' BU
( unità base).
I dispositivi comunicano tra loro in modo dinamico, la picorete si
configura automaticamente quando si inserisce o si elimina un
dispositivo. A loro volta più picoreti possono interconnettersi tra loro
aumentando le possibilità di espansione. Ciò permette, ad esempio, di
16
sincronizzare i dati di un Pc portatile e un Pda semplicemente
avvicinando i due apparecchi, oppure di passare automaticamente al
vivavoce quando si entra in auto parlando al cellulare. Tutto questo è
possibile grazie al "service discovery protocol" ( SDP )che permette ad
un dispositivo Bluetooth di determinare quali sono i servizi che gli altri
apparecchi presenti nella picorete mettono a disposizione. Ogni
apparecchio dispone delle informazioni relative ai servizi di cui è capace
e dei protocolli supportati.
In un collegamento tutti gli apparecchi Bluetooth connessi sono
generalmente in modalità standby, cioè di attesa, seguendo un ciclo di
scansione ad intervalli di tempo di 1,28 secondi al fine di verificare la
presenza di eventuali altri dispositivi; in tale modalità tutti i dispositivi
bluetooth sono a basso consumo energetico. La scansione effettuata può
essere di due tipi : PS ( Page Scan ) e IS ( Inquiry Scan ).
La scansione PS consente la ricerca di un collegamento con un altro
connectable non-
apparecchio Bleutooth, che può risultare in modalità o
connectable. La scansione IS simile alla precedente, permette di
identificare la tipologia di apparecchi disponibili nella picorete, e di
approntare i necessari protocolli per il collegamento. Un comando inquiry
viene emesso quando l'indirizzo o il numero di identificazione di un
dispositivo non è conosciuto, successivamente al riconoscimento seguirà
un comando page che servirà per risvegliare l'altra unità e stabilire così
una connessione completa tra i dispositivi.
17
I risultati di una scansione sono : A ( Active ) la connessione è attiva
può avvenire la trasmissione e la ricezione dati, H ( Hold ) può svolgere
operazioni IS e PS con basso consumo energetico , S ( Sniff) riduzione del
carico di lavoro in modalità di ascolto della piconet, P ( Park) modalità di
attesa rimanendo sincronizzato alla piconet.
Come abbiamo visto la tecnologia Bluetooth opera nella gamma di
frequenza dai 2,4 ai 2,483 Ghz, suddivisa in canali da 1 Mhz impiegando
Frequency Hopping Spread Spectrum,
la tecnica FHSS*.( tecnologia che
consente a più utenti di condividere lo stesso insieme di frequenze,
cambiando automaticamente la frequenza di trasmissione fino a 1600
volte al secondo, al fine di una maggiore stabilità di connessione e di una
riduzione delle interferenze tra canali di trasmissione).
18
La comunicazione viene gestita dall'unità master tramite FHSS