Come costruire un mouse

main-qimg-cd963832294f04cf71a19df7b636f43c

Un mouse per computer ha una componente software e una hardware. Il software dovrà comunicare attraverso la porta USB con il sistema operativo del computer, mentre l'hardware dovrà registrare comandi specifici e inviarli al computer. Una semplice scheda Arduino dovrebbe essere sufficiente come processore principale per il software del vostro mouse ed essere in grado di collegare l'hardware al sistema.

Su https://www.instructables.com/id/PC-Mouse-Made-With-Arduino-Uno-and-Joystick/ troverete alcuni esempi di come farlo funzionare ma ha un grave difetto in quanto dipende da un'applicazione Java aggiuntiva in esecuzione sul computer come "driver del mouse". Ma questo è soprattutto perché Arduino Uno manca di un buon supporto USB. Questa versione del mouse non è un vero mouse HID.

In Arduino - JoystickMouseControl troverete un esempio migliore che usa la scheda Arduino Leonardo, Micro o Due, che ha il supporto USB. Questi usano una libreria di mouse e puoi anche allegare una libreria di tastiera in modo che la tua scheda possa fingere di essere sia un mouse che una tastiera. Questi genererebbero mouse HID e quindi sarebbero riconosciuti senza alcun software extra sul tuo computer.

Se vuoi qualcosa di più piccolo di una scheda Arduino allora il più piccolo che potresti usare sarebbe un processore ATTiny85. E' solo un processore con 8 pin, quindi ci saranno delle sfide per collegarci l'hardware del vostro mouse. E poiché il processore manca del supporto USB, avresti bisogno di qualcosa come l'emulatore software V-USB nel processore per fingere che sia ancora un dispositivo USB. Ci sono componenti hardware che si possono aggiungere per aggiungere questo supporto USB, ma renderebbe l'intero schema hardware più complesso. Oppure usa invece il processore ATmega32U4, dato che ha il supporto USB integrato. (Attenzione, finisce con U4, perché ci sono molti diversi processori ATmega32 e non tutti supportano l'USB!)

Quando si usa un processore grezzo, è necessario usare anche un cristallo perché i processori grezzi sono lenti da soli. Questo non è molto pratico con un ATtiny perché ha solo 8 pin e l'alimentazione, il reset e il cristallo mangerebbero 5 pin. Anche la connessione USB avrebbe bisogno di 2 pin, quindi ti rimarrebbe solo un pin... Quindi ATmega32U4 è la scelta migliore con un cristallo a 16MHz, poiché ha 44 pin che puoi usare.

Oltre al software, avresti bisogno di hardware che possa rispondere alle azioni dell'utente. Avreste bisogno di qualcosa per i movimenti a sinistra e a destra del mouse e qualcosa per i movimenti su e giù, più i pulsanti del mouse. Aggiungere la funzionalità della rotella di scorrimento potrebbe anche essere piacevole, cosa che si fa con la funzione mouse.Move() dalla libreria Arduino Mouse.

Quindi, di che tipo di hardware avreste bisogno? Molti usano un semplice controller joystick e/o pulsanti. Si possono anche usare ruote rotanti e altre tecniche. Tutto dipende da come volete che l'utente interagisca con il mouse. Alcune tecniche saranno più complesse di altre, però.