# Mouse

Il mouse è un dispositivo di puntamento portatile che traduce il movimento bidimensionale rispetto ad una superficie piana nel movimento di un cursore su uno schermo, permettendo un controllo fluido dell'interfaccia grafica di un computer. I mouse dispongono anche di uno o più pulsanti per consentire varie operazioni e ai quali possono essere assegnate varie funzioni di input. Spesso dispongono anche di altri elementi, come per esempio la rotellina che consente la funzione di scorrimento verticale.
L'etimologia del nome deriva dal vocabolo che in lingua inglese indica topo, per via della somiglianza con l'animale. Il dispositivo è stato brevettato nel 1967 e l'uso si è diffuso nella maggior parte dei personal computer del mondo.

## Storia

Douglas Engelbart è ritenuto l'inventore del dispositivo informatico, secondo quanto esposto nelle pubblicazioni di Thierry Bardini, Paul Ceruzzi, e Howard Rheingold. Engelbart avrebbe ideato con altri diciassette colleghi presso l'Augmentation Research Center all'interno del quale nacque il progetto dell'NLS, un ambiente software con lo scopo di facilitare l'attività degli scienziati. Il primo prototipo venne concepito nel 1964 e il brevetto per il suo indicatore di posizione X-Y per display venne assegnato il 21 giugno 1967.
Durante la Joint Computer Conference al Convention Center di San Francisco, nel 1968, si svolse la dimostrazione pubblica del progetto al cospetto di oltre mille esperti. È possibile osservare le immagini dell'evento che pose le basi di tutto quello che è l'utilizzo odierno del PC.
Alcuni anni dopo la Xerox produsse il primo computer dotato di interfaccia grafica e mouse, lo Xerox Alto. Successivamente Steve Jobs della Apple Computer, vedendo una dimostrazione alla Xerox dell'uso del mouse, sviluppò una versione più avanzata della stessa idea, il computer Lisa, aumentandone l'usabilità.

## Funzionamento

Le tecnologie utilizzate nei mouse hanno essenzialmente tre finalità:
* rilevare il movimento del mouse
* inviare il dato al dispositivo a cui il mouse è collegato
* permettere l'attivazione di funzioni

### Rilevazione del movimento
#### Mouse meccanici

Nel tipo di mouse più vecchio, detto informalmente "a pallina", vi sono:
* una sfera solitamente in metallo rivestita di gomma, che muove le ruote forate (ruote foniche) dell'encoder;
* due trasduttori di posizione, caratterizzati da:
** due ruote forate disposte ortogonalmente tra loro;
** quattro sensori, per misurare la velocità di rotazione delle ruote foniche;
** due fonti luminose infrarossi;
* trasmissioni al computer.
I mouse di questo tipo hanno il pregio di essere economici ma anche lo svantaggio di sporcarsi molto facilmente con l'utilizzo: la polvere, infatti, tende ad appiccicarsi alle rotelle che rilevano il movimento, rendendone l'utilizzo saltellante e impreciso.

#### Mouse ottici

I primi mouse ottici utilizzavano un LED e una serie di trasduttori ottico-elettrici (fotodiodi) per rilevare il movimento relativo alla superficie d'appoggio. Questi mouse potevano essere utilizzati solo su speciali superfici con una rete di sottili linee orizzontali e verticali che possono essere distinte dal mouse per capire la direzione del movimento.
Successivamente i mouse ottici poterono incorporare un chip per l'elaborazione dell'immagine, in modo da poter essere utilizzati su un maggior numero di superfici comuni. Questo permise il diffondersi di massa del dispositivo.
Rispetto ai mouse tradizionali la struttura interna del mouse è quindi molto semplificata, infatti al posto della pallina, delle ghiere e dei sensori che captano i movimenti lungo i due assi di movimento, ci sono solamente un chip, un sensore ottico e un LED di illuminazione. Il processore di un mouse ottico è naturalmente molto più complesso di quello presente in un mouse tradizionale, a causa della maggiore elaborazione necessaria. Comunque un dispositivo a stato solido, per quanto complesso, è in generale molto più affidabile di un organo meccanico. Inoltre la totale mancanza di aperture dove si possono infiltrare sporco e polvere permette una vita media del mouse di gran lunga superiore a quelli tradizionali, senza alcun bisogno di manutenzione.
Un altro vantaggio dei mouse ottici è la possibilità di funzionare con qualunque inclinazione, anche capovolto (ovviamente se si utilizza il mouse capovolto il puntatore si muoverà sullo schermo sempre nella direzione opposta a quella in cui si sposta il dispositivo). Per contro non è in grado di funzionare su un vetro o su superfici prive di almeno una minima trama ottica.
L'unico problema può essere dato dall'utilizzo su una superficie riflettente. Poiché il LED illumina il piano d'appoggio e il sensore acquisisce l'immagine, i materiali riflettenti o trasparenti ingannano l'acquisizione dell'immagine e quindi la rilevazione precisa del movimento.

#### Mouse laser

I mouse laser sono essenzialmente mouse ottici che utilizzano un laser al posto di un LED per l'illuminazione del piano d'appoggio. Come conseguenza si ha una maggiore risoluzione nell'acquisizione dell'immagine, che si traduce in migliore precisione e sensibilità di movimento.
Guardare direttamente il laser di un mouse può causare danni alla retina. Durante il normale utilizzo il laser o il LED sono puntati verso la superficie d'appoggio e coperti dal mouse stesso, quindi i rischi sono nulli e legati solo ed esclusivamente ad un utilizzo improprio.
Detto ciò, i danni alla retina si manifestano solo se il laser viene osservato per lunghi periodi di tempo. Si consiglia comunque di non guardarlo.

### Connettività e protocolli di comunicazione
#### Mouse con il cavo

Il collegamento via cavo esiste fin dai primi mouse e sopravvive ancora oggi perché semplice, economico ed esente da rilevanti svantaggi. Il cavo inizia dalla parte anteriore del mouse e termina con un connettore per l'inserimento nel dispositivo.
I mouse tradizionali avevano un connettore seriale mentre i mouse Apple avevano un connettore ADB, entrambe tipologie non più utilizzate. Attualmente i connettori sono di tipo USB (oppure PS/2, anche se ormai in disuso).

#### Il protocollo PS/2

Il nome del connettore din a 6 pin deriva dalla serie di computer IBM Personal System/2, introdotta da IBM nel 1987. Lo stesso connettore viene utilizzato anche nelle tastiere PS/2.
Per ogni evento di movimento, pressione o rilascio di un pulsante, un mouse PS/2 invia sulla sua porta seriale bidirezionale una sequenza di tre byte con il seguente formato:
| | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
| Byte 1 | YV | XV | YS | XS | 1 | MB | RB | LB |
| Byte 2 | movimento sull'asse x | movimento sull'asse x | movimento sull'asse x | movimento sull'asse x | movimento sull'asse x | movimento sull'asse x | movimento sull'asse x | movimento sull'asse x |
| Byte 3 | movimento sull'asse y | movimento sull'asse y | movimento sull'asse y | movimento sull'asse y | movimento sull'asse y | movimento sull'asse y | movimento sull'asse y | movimento sull'asse y |
* XS e YS indicano il segno rispettivamente del valore del movimento dell'asse x e dell'asse y
* XV e YV servono per indicare un overflow nei rispettivi dati di movimento
* MB, LB, RB sono gli indicatori di stato dei pulsanti centrale, sinistro e destro. Se impostati a 1 indicano che il rispettivo pulsante è premuto.
Un mouse PS/2 è inoltre in grado di comprendere diversi comandi per l'inizializzazione e il controllo, per cambiare modalità di funzionamento e per cambiare la risoluzione dei vettori di movimento.

#### Mouse senza filo

Un mouse senza filo (o, in inglese, wireless) è collegato al dispositivo tramite un piccolo ricevitore, con il quale comunica attraverso onde radio, raggi infrarossi o via Bluetooth.
La mancanza del cavo rende necessarie alcune aggiunte al corredo di un mouse tradizionale:
* batterie d'alimentazione
* ricevitore, ovvero un dispositivo collegato al computer che riceve i segnali del mouse, può essere integrato nel computer nel caso di mouse Bluetooth
* ricaricatore (5, opzionale) il ricevitore può fungere anche da base di ricarica della batteria richiedendo un ulteriore cavo di alimentazione
La mancanza di un cavo e quindi di un legame fisico con il computer è un indiscutibile vantaggio in caso di ambienti di lavoro affollati, impossibilità di connettere tramite cavo il mouse al PC o in caso di utilizzo con computer portatili.
Spesso questi mouse vengono alimentati tramite pile usa e getta, che possono durare anche anni, mentre altri utilizzano batterie che possono essere ricaricate tramite una base separata o un cavo che spesso ne permette l'utilizzo come mouse cablato mentre si carica.
Alcuni svantaggi dei mouse wireless sono possibili interferenze con il segnale radio, maggiore latenza rispetto a un collegamento cablato e l'inconvenienza che è causata quando le batterie si scaricano.
Tuttavia lo scarso peso e frequenza degli svantaggi ha permesso una buona diffusione dei mouse senza filo.

### Pulsanti

I pulsanti sui mouse sono utilizzati per attivare determinate funzioni, alcune delle quali sono oramai diventate parte di uno standard de facto, come la singola pressione (clic) per la selezione o due rapide pressioni (doppio clic) per l'apertura e l'esecuzione. Più in generale la pressione di un pulsante del mouse permette di interagire con l'oggetto software dell'interfaccia grafica su cui si è posizionato il puntatore sullo schermo. Il tipo di interazione dipende sia dal pulsante premuto che dal software utilizzato.
Generalmente i software e i sistemi operativi permettono la piena configurazione e personalizzazione dei tasti.
Al contrario di ciò che è successo alle tecnologie per la rilevazione del movimento, i pulsanti del mouse non hanno subìto particolari innovazioni, a meno di qualche cambiamento nella forma per motivi di design, Ergonomia e nel numero dei pulsanti.
Prendendo come riferimento l'immagine del mouse a fianco, i vari pulsanti sono i basilari pulsante sinistro (1) e destro (2), la rotella di scorrimento (3) che è possibile premere come pulsante centrale ed eventuali pulsanti laterali (4) attivabili con il pollice o l'anulare. Quando ci si riferisce a pulsante destro e sinistro, ci si riferisce non alla loro collocazione fisica rispetto all'utilizzatore, ma alle funzioni che storicamente essi hanno assunto: è infatti possibile, in molti casi, invertire le funzioni assegnate ai pulsanti destro e sinistro per assicurare un utilizzo comodo sia ai destri sia ai mancini, che possono così utilizzare l'indice per il tasto sinistro, nonostante esso sia posizionato a destra.
Mentre i pulsanti sinistro e destro sono presenti fin dai primi mouse, la rotella di scorrimento ha avuto ampia diffusione di pari passo con il diffondersi di Internet e del World Wide Web perché permette di scorrere i contenuti dei siti con più facilità rispetto all'uso della classica barra di scorrimento delle finestre.
I primi mouse avevano, oltre ai tasti destro e sinistro, un tasto centrale posizionato tra i due, probabilmente predisposto per funzioni che non vennero mai abilitate; questo tasto è gradualmente scomparso e lo spazio a lui destinato è oggi occupato dalla "rotellina", che tuttavia mantiene la funzionalità essendo premibile e utilizzabile come terzo pulsante nella gran parte dei mouse moderni.
Alcuni mouse inoltre offrono la funzionalità di scorrimento laterale, con una rotellina separata oppure mediante il movimento laterale della classica rotellina centrale, tuttavia entrambi sono piuttosto rari e trovano poco utilizzo.
Mouse particolari, come quelli da gaming, possono avere numerosi pulsanti addizionali spesso messi sulla facciata sinistra del mouse, che possono essere impostati dall'utente per varie azioni nei giochi.

#### Utilizzi comuni

Nonostante sia possibile personalizzare il comportamento del mouse, con il tempo si è creata un'implicita semantica gestuale associata agli utilizzi più comuni. Gli sviluppatori di software in generale cercano di rispettare questi significati per permettere all'utente un utilizzo coerente e intuitivo del software attraverso il mouse.

##### Clic

Una breve pressione di un pulsante con immediato rilascio è detta clic o fare clic o, in inglese, to click.
Un clic con il tasto sinistro (nei mouse a due pulsanti) serve tipicamente a selezionare un oggetto come un'icona o un comando da un menu, mentre un clic con il tasto destro richiama solitamente un menu contestuale.
Un clic con il tasto centrale, o l'equivalente pressione della rotella di scorrimento, non ha un significato comune ben definito, ma dipende dal contesto e dall'applicativo. In Mozilla Firefox, Internet Explorer e Google Chrome, per esempio, cliccare con mouse3 su un collegamento permette di aprirlo direttamente in una nuova scheda, mentre cliccare con il tasto centrale in una qualunque altra parte della pagina lega lo scorrimento della pagina direttamente al movimento del mouse fino a un nuovo clic (funzionante solo su sistema operativo Microsoft).
I tasti addizionali a volte sono utilizzati nella consultazione di ipertesti replicando il comportamento dei pulsanti Avanti e Indietro dell'interfaccia grafica, ma in linea di massima la loro configurazione è lasciata alle necessità e al gusto dell'utente.

##### Doppio clic

Due clic in rapida successione a mouse fermo sono detti doppio clic. Nonostante sia possibile eseguire un doppio clic con qualsiasi pulsante del mouse, l'utilizzo preponderante, se non esclusivo, riguarda il tasto sinistro. Nell'ambito dei sistemi Microsoft Windows esiste a fini pratici solo il doppio clic con il tasto di sinistra.
Nei programmi applicativi il doppio clic assume significati diversi, ma nei sistemi operativi dotati di interfaccia grafica a icone il doppio clic è da sempre sinonimo di esecuzione dell'azione predefinita associata all'oggetto, ovvero al punto sensibile sul quale il doppio clic viene eseguito. Nell'ambito dei sistemi Microsoft Windows il significato implicito principale è l'esecuzione del comando Apri (Open), tuttavia eseguendo il doppio clic sull'icona in alto a sinistra in corrispondenza della barra del titolo della finestra il significato implicito, ovvero l'azione predefinita associata al doppio clic, è Chiudi (Close). Tale significato predefinito può essere modificato ovvero personalizzato, per esempio, per associare il doppio clic all'esecuzione del comando Stampa (Print). In Microsoft Windows e nei sistemi operativi Apple già dal System 6 eseguire un doppio clic su un'icona poteva avere i seguenti significati:
* esegui il programma associato all'icona
* apri il documento associato all'icona eseguendo il programma associato al tipo di file da aprire
* apri la cartella associata all'icona
Tutti e tre adattano il concetto di esecuzione all'oggetto coinvolto.
L'associazione doppio clic-esecuzione non è però universale: KDE per esempio esegue con un singolo clic e per selezionare un'icona è necessaria un'operazione di trascinamento.
Non tutti gli elementi di un'interfaccia grafica sono suscettibili a un doppio clic. I menu e i pulsanti tipicamente rispondono ai singoli clic e interpretano un doppio clic come due clic distinti.

##### Triplo e quadruplo clic

Il triplo e il quadruplo clic sono utilizzati in alcuni word processor per selezionare parti di testo. Ad esempio, in Microsoft Word il triplo click seleziona l'intero paragrafo; in LibreOffice Writer, invece, il triplo clic seleziona una intera frase (dalla prima lettera maiuscola precedente al primo segno di interpunzione o punto), mentre il quadruplo clic seleziona un intero paragrafo (tutto il testo tra un carattere di Invio e l'altro).

##### Trascinamento e drag and drop

Premere un pulsante e muovere il mouse tenendo il pulsante premuto è detto trascinare. Se non è esplicitamente specificato quale sia il pulsante in questione, si intende quello sinistro.
Il significato comune dell'azione è la selezione multipla di oggetti:
* in un sistema operativo con interfaccia grafica si possono selezionare più icone racchiudendole nel rettangolo avente come diagonale il segmento che ha per estremi il punto in cui si è premuto inizialmente il pulsante e il punto in cui si trascina il cursore
* in un elaboratore testi si può trascinare da un punto del testo a un altro, selezionando tutti i caratteri compresi
* trascinando in un programma di grafica computerizzata si può selezionare parte dell'immagine, disegnare o deformare una figura, ridimensionare un livello ecc.
Il drag and drop (letteralmente trascina e lascia) è il trascinamento applicato a un oggetto, spesso utilizzato per un'operazione di spostamento in memoria. Effettuare un drag & drop è simile all'afferrare qualcosa, trasportarlo altrove e poi appoggiarlo. Applicato alle interfacce grafiche viene usato per spostare o copiare file e directory dentro un'altra directory o per spostare finestre trascinandole per la barra del titolo. L'utilizzo negli applicativi è molto vario, ma comunque coerente con l'idea di base di movimento.

##### Mouse gestures

Alcuni programmi permettono un utilizzo più avanzato del mouse con le cosiddette mouse gestures ovvero una serie di movimenti e di pressioni che vengono interpretati come comandi di vario genere, permettendo teoricamente un'infinita gamma di comandi via mouse.
La prima gesture fu introdotta dalla Apple e fu il trascinamento (drag), che ebbe così successo che oggi è uno dei requisiti base di un'interfaccia grafica. Nessun'altra gesture ha mai avuto la stessa sorte e sono rimaste relegate nei confini dei rispettivi applicativi di appartenenza.
Programmi che utilizzano gesture sono i browser Opera e Firefox, quest'ultimo mediante un'estensione, mentre programmi come Sensiva e StrokeIt (per Microsoft Windows) permettono di utilizzare le gesture in ogni applicazione. In ambienti UNIX compatibili, il supporto a diverse combinazioni gestuali è disponibile in numerosi ambienti desktop, come GNOME o Plasma o fvwm2, e in alcuni gestori di finestre, come FVWM.
Alcuni videogiochi che fanno uso di gesture sono Black & White, Myth e Darwinia.