i.faccia
Interfaccia dispositivi software\dispositivi hardware.
Francesco Melis su uictech, 21\01\2013, h. 02.01.

d.

 Per la domanda che sto per porre forse passerò per ignorante, non so,
 ma se non chiederò mai non otterrò mai una risposta per capire.
 La mia domanda riguarda più che altro la robotica, ma considerando il
 fatto che mi riferisco anche al software penso rientri nel tema della
 lista.
 Dunque, mi sono sempre chiesto come fa un software a muovere
 meccanicamente un hardware.
 Per esempio, mettiamo caso che io abbia una mano robot e che abbia
 anche un software programmato per far muovere le dita della mano
 meccanica...
 Come fa materialmente il software a muovere le dita di ferro della mano?
 Cioè, qual è il punto di congiunzione tra software e hardware?
 Presumo che i movimenti dell'hardware avvengano mediante elettricità,
 ma ciò che mi chiedo è: come fa l'elettricità ad interpretare
 correttamente il volere del software, che potrebbe dare varie
 disposizioni?
 Cioè, muovere il dito destro invece del sinistro o tenere il dito
 pollice in alto come per dire ok, ecc.
 Anche l'elettricità considera il sistema di numerazione binaria come
 descritto magnificamente dal bravo Francesco Melis, dato che si tratta
 di impulsi?
 Inoltre, immagino che l'elettricità possa spostare del ferro leggero,
 ma se il ferro è molto più pesante, come certi macchinari presenti in
 certe industrie, come fa il software a generare una forza tale da
 spostare nella maniera corretta il pezzo di ferro specifico?
 Aumentando la potenza dell'elettricità?
 Ma anche considerando il fatto che l'elettricità comprenda il sistema
 binario informatico o uno più o meno simile, come fa a sua volta la
 stessa elettricità a dare la direzione giusta al mezzo meccanico?
 Per esempio, se ho una mano meccanica e tramite il software dico che
 voglio far muovere il dito indice, con il sistema binario stabilirò la
 direzione della corrente elettrica verso un determinato filo che
 arriverà al dito prescelto?
 E questo filo poi cosa farà per sollevare il dito?
 Darà forse una scarica elettrica al metallo con cui sarà a contatto?
 Dico questo per via di deduzione personale, ma penso sempre che mi
 manchi un passaggio per capire bene la cosa...
 Mi rendo conto di aver fatto una domanda un po' particolare, ma tutta
 la conoscenza è utile nella vita, no?
 Spero che qualcuno di voi riesca a darmi una risposta chiara e completa.
r.
Bella domanda di Fabrice,
i tuoi dubbi nascono dalla mancanza di qualche elemento conoscitivo che
non ti consente di raccordare il tuo ragionamento che parte dal software
e finisce con il pilotare un hardware come un robot che solleva il
pesante motore di una macchina in un'industria automobilistica.
Ci sono dei dispositivi che si chiamano campionatori, convertitori
analogico-digitale, convertitori digitale-analogico, attuatori,
trasduttori, che fanno il lavoro di raccordo fra il mondo del software
ed il mondo dell'hardware.
Per farla breve, molto breve, il robot, essendo una macchina
programmabile fa sempre la stessa cosa: quello che gli dice il programma
caricato in quel momento, cioè saldare sempre lo stesso punto, montare
la portiera della macchina sempre con lo stesso gesto ecc...
Domani magari avrà caricato un programma che monta i pistoni ed un altro
le bielle eccetera.
L'hardware in qualche modo riceve un insieme di bit dal computer che
governa il robot che gli dice per esempio di ruotare il polso.
Il robot, o in generale l'hardware, contiene un'elettronica, in questo
caso convertitori digitale-analogico, che converte i numeri espressi in
bit in grandezze analogiche, per esempio delle tensioni elettriche che
sono in grado di comandare anche motori di grande potenza. Quando il
polso del robot ha raggiunto la coordinata spaziale determinata dalle
istruzioni digitali inviategli si ferma. Il robot ovviamente si muove in
un suo spazio determinato da un sistema cartesiano tridimensionale che è
tutto il suo mondo ed in cui è in grado di raggiungere tutti i punti
sapendo le coordinate.
Gli attuatori sono i dispositivi che "mettono in pratica" le azioni
determinate da questi impulsi digitali che arrivano dal computer di governo.
Viceversa: supponiamo che l'hardware debba gestire un serbatoio a
pressione e si debba fermare di pompare gas quando ha raggiunto una
certa pressione determinata. I rilevatori di pressione, (manometri),
misurano pressioni che sono grandezze analogiche espresse per esempio in
Pascal o atmosfere. Un convertitore analogico-digitale converte che so,
i 760 millimetri di mercurio di pressione nel serbatoio dell'apparato in
un numero binario. Questo numero binario viene memorizzato continuamente
in un registro (piccola memoria che può contenere pochi bit, per esempio
8 bit di un byte) presente nello stesso hardware. Il calcolatore testa
ciclicamente, (polling), il valore binario di questo registro e quando
vede che ha raggiunto il valore desiderato manderà un dato binario ad un
altro registro dell'hardware per segnalare lo stop. L'hardware stesso,
essendo intelligente, a sua volta controlla questo valore, lo converte
in analogico, per esempio corrente o tensione, e magari da il comando di
spegnimento del compressore.
Insomma, per riassumere, fra il mondo dei numeri del calcolatore ed il
mondo delle macchine operatrici ci dev'essere qualcosa che fa la
conversione. Quando il ricevente ha capito che tipo di azione gli ha
indicato di fare il software saranno i suoi motori a dare la potenza
necessaria e quindi non è il software direttamente che esercita la
forza. Il software gli può mandare un numero e il ricevente lo
interpreta ed agisce tramite gli attuatori con la potenza che gli è
caratteristica.
Del resto ci avete pensato ad esempio alla sequenza di boot dei
computers? all'accensione escono tutte quelle segnalazioni del bios che
dicono se l'hardware è sano o se c'è qualche guasto. La logica di
funzionamento impone che l'hardware a corredo del computer come la
tastiera, la porta seriale, la porta parallela, ecc... siano a loro
volta dispositivi intelligenti.
Anche questi dispositivi, in piccolo, sono essi stessi dei computers in
grado di dialogare con il computer centrale inteso come il
microprocessore della macchina altrimenti come potrebbe questo capire
che c'è un guasto e di che tipo?
Facciamo un esempio terra terra di un dispositivo periferico generico.
Il dispositivo, anche la porta seriale, dispone di un certo numero di
registri interni cioè celle di memoria che possono contenere facciamo un
byte (8 bit). Questi registri si trovano "mappati" a certi indirizzi di
memoria. In altri termini questi registri si comportano esattamente come
se fossero celle di memoria Ram e quindi si trovano a certi indirizzi
della memoria, ovviamente nel range destinato alle periferiche. Il
programma del bios controlla all'accensione queste speciali celle che in
effetti sono registri delle periferiche e se non ci sta scritto quello
che si aspetta di trovare poi segnala che c'è un guasto. Ovviamente la
periferica, essendo intelligente, se non fa la pazza provvede lei stessa
nei limiti del possibile a scrivere nei suoi registri il suo "status".
Questo status viene quindi esaminato dal programma del bios che ne trae
le conclusioni, per esempio segnalazione di buon funzionamento o guasto
di qualche tipo. Ho fatto questo esempio per chiarire il fatto che i
dispositivi software ed hardware in qualche maniera si debbono
interfacciare in maniera coerente. Poi la tecnologia specifica farà in
modo di stabilire questo dialogo in maniera coordinata e potrebbe darsi
che ogni singolo bit del byte del registro di status dia una
segnalazione del funzionamento o meno di un qualche dispositivo interno.
Del resto lo abbiamo visto: con un byte si possono rappresentare 256
valori diversi.
Di seguito incollo qualche piccola definizione presa da Wikipedia.

Attuatore.
Un attuatore è un meccanismo attraverso cui un agente agisce su un
ambiente, inoltre l'agente può essere o un agente intelligente
artificiale o un qualsiasi altro essere autonomo (umano, animale). In
senso lato, un attuatore è talvolta definito come un qualsiasi
dispositivo che converte dell'energia da una forma ad un'altra, in modo
che questa agisca nell'ambiente fisico al posto dell'uomo.
Anche un meccanismo che mette qualcosa in azione automaticamente è detto
attuatore.
Esempi
Alcuni esempi di attuatori sono:
Umano - braccia, mani, dita, gambe
parti di un robot che interagiscono con l'esterno - meccanismi di
presa, bracci meccanici, muscoli pneumatici ed altre parti in movimento.
server di e-mail - software di aggiornamento

Ingegneria
Valvola a farfalla con attuatore.
In ingegneria gli attuatori sono capaci di trasformare un segnale in
input (tipicamente elettrico) in movimento, come esempi di attuatori
sono i motori elettrici, pistoni idraulici, relè, polimeri
elettroattivi, attuatori piezoelettrici, ecc... .
I motori sono usati soprattutto quando si richiedono movimenti
circolari, ma possono essere impiegati per applicazioni lineari
trasformando un movimento da circolare a lineare utilizzando un
trasduttore a vite senza fine. D'altra parte alcuni attuatori, come
quelli piezoelettrici, sono intrinsecamente lineari.
Microattuatori.
Gli attuatori trovano un largo utilizzo anche nella microelettronica,
infatti esistono vari tipi di attuatori MEMS, i principali sono:
microattuatori elettrostatici, elettromagnetici, idraulici.
Elettrici.
Gli attuatori elettrici trovano utilizzo nell'automazione civile ed
industriale, il loro principio di funzionamento è molto semplice,
permettono il comando di un relè attraverso un input solitamente
elettrico, possono essere gestiti in configurazione singola o multipla,
tale gestione può avvenire tramite protocolli BUS o Wi-Fi, per la
gestione singola si provvede a gestire ogni attuatore attraverso
l'utilizzo del protocollo BUS che prevede un collegamento fisico tra
tutti i componenti dell'impianto, mentre per la configurazione Wi-Fi
vengono abolite le connessioni fisiche, ma la gestione viene fatta
esclusivamente senza fili permettendo una flessibilità estrema
dell'impianto.
Elettrostatici.
I microattuatori elettrostatici sono semplici da realizzare su wafer di
silicio e con essi si possono ottenere elevate velocità di rotazione. Le
applicazioni vanno dagli interruttori elettromeccanici e relays, agli
interruttori ottici, display, valvole, ad attuatori per il controllo di
flusso. Sono costituiti da due piatti piani paralleli il cui principio
di funzionamento si basa direttamente sul principio della forza di
Coulomb. Queste forze che definiscono un'attrazione fra due corpi aventi
cariche opposte, tendono a riallineare i piatti dopo che tra di essi è
avvenuto uno spostamento relativo.
Elettromagnetici.
Gli attuatori elettromagnetici sono i più diffusi poiché offrono grandi
vantaggi: permettono il controllo della forza e della velocità sia in
corrente che in tensione, hanno una risposta veloce, una bassa impedenza
d'ingresso, un basso rumore e il loro assemblaggio non pone particolari
problemi. Il loro principio di funzionamento si basa sulla forza di
Lorentz. I problemi legati all'uso di questo dispositivo sono
soprattutto relativi alla sua realizzabilità. L'intensità del campo
magnetico generato è proporzionale al numero di spire che costituiscono
l'avvolgimento ed alla corrente circolante. Le dimensioni molto ridotte
dei cavi elettrici fanno si che a parità di tensione, aumentando il
numero di spire, si diminuisce la corrente circolante; nella maggior
parte dei casi si è deciso quindi di utilizzare una bobina costituita da
una singola spirale. Per realizzare bobine di questo tipo si utilizza la
tecnica LIGA. Un altro degli inconvenienti più significativi degli
attuatori magnetici è la dissipazione di energia, che avviene nelle
spire durante il mantenimento di una forza ad un valore costante. Questi
tipi di attuatori (con un diametro di 1,5 mm) sono in grado di generare
una coppia di 1,2 N·m.
Idraulici.
Gli attuatori idraulici riescono a generare una forza maggiore (a parità
di volume) rispetto agli altri attuatori. Si distinguono in tre tipi: a
pistone, a camera elastica, a turbina. Il tipo a pistone ha lo
svantaggio di introdurre attriti ed ha la necessità di essere sigillato.
Gli attuatori elastici sono formati da un tubo cilindrico al cui interno
sono ricavate tre camere parallele e le cui pressioni vengono
controllate separatamente. Una differente pressione nelle camere fa sì
che il tubo si incurvi verso la camera a minore pressione. Questo tipo
di attuatore idraulico non soffre dei problemi dovuti all'attrito. Gli
attuatori del tipo a microturbine infine sono molto facili da realizzare
ma hanno un'efficienza ridotta e riscontrano a causa dell'attrito.

Trasduttori
Il trasduttore è un dispositivo di qualsiasi genere destinato a
trasmettere dell'energia da un punto ad un altro punto alterandone
alcune delle caratteristiche che la identificano.
I trasduttori presentano una grandezza (o segnale) in entrata e una
grandezza (o segnale) in uscita. La grandezza in uscita varia al variare
della grandezza in ingresso ed è legata ad essa mediante una funzione
matematica più o meno complessa. Questa funzione è chiamata
caratteristica del trasduttore o funzione di trasferimento del trasduttore.
Conoscendo la funzione di trasferimento e la grandezza in uscita è
quindi possibile conoscere il valore della grandezza in ingresso.
Talvolta il termine "trasduttore" è utilizzato come sinonimo del termine
"sensore", sebbene nella terminologia tecnica abbiano un significato
differente.
Grandezze di entrata
Alcuni esempi di grandezze in entrata di un trasduttore sono:
accelerazione, campo elettrico, campo magnetico, densità, forza,
livello, peso, pH, portata, posizione angolare, posizione lineare,
pressione, radiazione, segnale elettrico, temperatura, velocità,
viscosità, umidità.
Grandezze di uscita
Le grandezze di uscita dei trasduttori in genere sono: forza,
spostamento, variazione di impedenza o segnale elettrico/elettronico.
Torna all'indice