Abbassare, alzare il volume del computer con arduino

Buongiorno a tutti.

Il mio progetto è rivolto ad una persona con disabilità. Ho bisogno di consentirle di modulare il volume del PC utilizzando i movimenti della mano.
Ho pensato di utilizzare un arduino uno collegato al pc con cavo usb e un sensore di prossimità ad ultrasuoni.
Sono capace di scrivere un loop nel quale verifico la distanza della mano dal sensore di prossimità; vorrei capire se è possibile (e con quale codice) abbassare/alzare il volume, mettere in muto, impostare il volume ad un certo livello, utilizzando la porta seriale.

Grazie
Marcello

La cosa a mio avviso più semplice è usare un Arduino Leonardo (o Micro), che può funzionare da tastiera USB. A quel punto ti basta inviare la pressione dei tasti volume up/down.

Non sono però sicuro che la libreria Keyboard di default permetta l'invio di questi tasti, a giudicare da questo articolo si direbbe di no: http://stefanjones.ca/blog/arduino-leonardo-remote-multimedia-keys/. Però è vecchiotto.

Cielo75:
Ho bisogno di consentirle di modulare il volume del PC

PC intendi con Windows ?
In teoria dovrebbero esserci delle API che permettono di manipolare il volume, penso a un codice VB.net o C#.Net creando un programmino che riceve da seriale e manipola il volume.
Ovviamente questo programmino deve sempre stare in esecuzione.

Nel caso seguissi la strada suggerita da nid69ita, c'è già pronta una classe in C#

Il tuo software non farebbe altro che monitorare la porta seriale e agire di conseguenza con essa.

Puoi creare un windows service con avvio automatico e non ci pensi più.

Grazie!

@Sukko: ho acquistato un Arduino Leonardo. Spero di riuscire a trovare una libreria che implementi i tasti di controllo volume.

@nid69ita, @silvioz: i vostri consigli sono un po' oltre le mie competenze informatiche.

Cielo75:
Grazie!

@Sukko: ho acquistato un Arduino Leonardo. Spero di riuscire a trovare una libreria che implementi i tasti di controllo volume.

Ho molti dubbi esista. I tasti di alcune tastiere pilotano l'audio, ma dietro ci sono il driver della specifica tastiera.
Ovvero ogni tastiera ha il suo driver specifico. Non credo sia una caratteristica "comune" a tutte le tastiere.
Quindi Arduino Leonardo, essendo vista come una generica tastiera, secondo me non può simulare tasti non previsti in una comune tastiera.

nid69ita:
Quindi Arduino Leonardo, essendo vista come una generica tastiera, secondo me non può simulare tasti non previsti in una comune tastiera.

Infatti NON sembra proprio, basta leggere QUI :wink:

Guglielmo

P.S.: Salvo non si possa poi mappare qualche tasto funzione (... tra quelli emulati) per fare la regolazione del volume ...

Io sono abbastanza convinto che si possa anche se, ripeto, forse non con la libreria originale. Farò qualche test appena possibile. Intanto puoi iniziare a fare inviare altri tasti :).

SukkoPera:
Io sono abbastanza convinto che si possa anche se, ripeto, forse non con la libreria originale.

... quello è probabile, ma ... librerie alternative ? Cielo75 non mi sembra, per sua stessa ammissione, in grado di mettere le mani in una libreria come quella e modificarla ... ::slight_smile:

Guglielmo

... però QUI leggo di possibili tweaks :smiley: :smiley: :smiley:

Guglielmo

Edit: ... il riferimento più interessante è forse QUESTO :wink:

La mia speranza è di poter fare qualche truschino con la libreria originale. Quando avevo lavorato al LeoBraille l'avevo studiata in profondità e mi pare di ricordare qualcosa...

PS: È lo stesso link che avevo postato io ;).

SukkoPera:
La mia speranza è di poter fare qualche truschino con la libreria originale.

Vd. mio post #9 :wink:

Guglielmo

Ma quindi di base i pacchetti USB hid tra le varie cose già prevede i tasti controllo volume (e molto altro) se ho capito bene. Interessante.
http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
Effettivamente tastiere con tasti volume, etc. (tasti particolari) non richiedono driver specifici.

Grazie per i link!
che ne dite di questo?
http://www.loiph.in/2014/09/arduino-leonardo-atmega32u4-based-usb.html

È proprio quel che serve a te!