Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C] zelf USB device maken en volume enzo regelen?

Pagina: 1
Acties:
  • 302 views sinds 30-01-2008
  • Reageer

  • Xyzar_
  • Registratie: September 2007
  • Laatst online: 01-09-2014
Aloha!

Enige tijd geleden viel mijn oog op dit mooie speeltje: de Griffin Powermate.
Nou lijkt het me natuurlijk errug kewl en relaxed om gewoon een grote volumeknop op m'n bureau te hebben liggen, i.p.v. die up/down knopjes op m'n toetsenbord, maar deze is wel weer erg duur (40 euro)
Alternatieven zijn er eigenlijk ook niet..

maar, bedacht ik me ineens, ik heb nog een mooi ontwikkelbordje liggen met een microcontrollertje en wat i/o poorten en nou dacht ik, dat kan ik ongewtijfeld ook wel ff zelf bouwen.

De knop zelf lijkt me niet zo'n punt, kan in principe gewoon een potmetertje aan een A/D converter hangen en aan het bordje koppelen, volgens mij zit er zelf al een A/D converter op het bordje, dus dan is eht zelfs maar een kwestie van en een potmeter aanhangen.
Maar wat ik me nou afvraag is of het heel moeilijk is om het ding als USb apparaat aan m'n PC te hangen en er zaken als volume control mee te regelen.

Nou heeft het bordje al een USB interface, en hier heb ik al eerder mee gewerkt. (PS2 -> USB muis converter) Dit was volgens mij gewoon een kwestie van wat signaaltje omzetten en door de USB heen blaten. makkelijk was dat er gewoon een USB muis protocol is, dus Windows herkent het dan gewoon als USB muis.

Kan ik vanaf een USB apparaat het volume of andere dingen regelen? is daar een API ofzo voor? kan ik hem zichzelf bij Windows bekend laten maken als 'USB volume knop' of iets dergelijks?

Zou natuurlijk ook zelf ff een driver/progje kunnen bouwen die de signalen van de USB uitleest en zelf de boel regelt, maar dan zit ik weer onder windows te proggen en dat doe ik liever niet.
(ben een TI-er, en programmeer liever alles embedded. het bordje heeft zelf ook nog wat ledjes en knopjes, dus daar zou ik een boel leuks mee kunnen)


chippie op het bordje is trouwens een Texas Instruments TMS320Fxxx series chip

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Is het niet practischer om die potmeter (of eigenlijk een stereo potmeter) gewoon tussen je geluidskaart en je versterker/speakers/whatever te hangen? :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 11:20

voodooless

Sound is no voodoo!

Je zult er niet omheen komen om een driver te schrijven die de data van je USB device begrijpt en en er dingen mee doet. standaard api's voor dat soort dingen zijn er nu eenmaal niet.

Je kunt ook je toetsenbord emuleren en op die manier de driver van je toetsenbord gebruiken natuurlijk ;) Maar dat vergt weer wat extra reverse engeneering.

Een potmeter tussen PC en amp is echter een veel beter idee ;)

[ Voor 8% gewijzigd door voodooless op 22-11-2007 13:43 ]

Do diamonds shine on the dark side of the moon :?


  • unclero
  • Registratie: Juni 2001
  • Laatst online: 25-11 18:14

unclero

MB EQA ftw \o/

Zoveel werk is dat trouwens niet, ik heb ergens op mijn (thuis)pc nog wel wat code liggen daarvoor.

Ik kan die code natuurlijk opsnorren, maar ik herinner me opeens dat ik die van de elektuur site had gedownload, dus daar zou je ook even kunnen grasduinen ;).

Quelle chimère est-ce donc que l'homme? Quelle nouveauté, quel monstre, quel chaos, quel sujet de contradiction, quel prodige!


  • Xyzar_
  • Registratie: September 2007
  • Laatst online: 01-09-2014
alsof de code om een signaaltje van een A/D converter om te zetten zo ingewikkeld is :)
waar het mij om ging is of het mogelijk is omdat helemaal vanaf de USB device te doen, maar dat is dus (zoals te verwachten) niet zo.

Een potmeter tussen m'n geluidskaart en m'n speakerset hangen is ook niet zomaar een mogelijkheid, want het is een 5.1 set. dat vereist dan dus al meerdere potmeters. kan ik wel leuk m'n speakers individueel regelen, maar dat doet de software van m'n geludiskaart al prima voor me.
Wil gewoon 1 grote knop om m'n 'master volume' te regelen.

en sowieso ben ik niet bepaald goed in (analoge) electronica, dus als dat gedeelte beperkt kan blijven tot het aansluiten van een potmeter op m'n ontwikkelbordje dan is dat fijn. Heb geen zin om zelf een heel schema te moeten gaan bedenken. weet sowieso niet zeker of me dat zou lukken met mijn beperkte kennis, en das veel te veel gedoe voor zoiets simpels. en daarbij, als ik het via m'n bordje doe kan ik de boel zelf programmeren en erin bouwen wat ik maar wil, als ik een of andere schakeling maak en die tussen m'n PC en m'n speakers plak dan kan ik er nog niet veel mee, en het is dus een boel gepiel met electronica..

maargoed, dan weet ik waar ik aan toe ben :) dat wordt dus vrij eenvoudige firmware (signaal van a/d converter doorsturen via USB :P), met een windows progje die er wat bruikbaars van maakt.

nog een voordeel, als ik dat bordje aan m'n PC koppel en een mooi protocolletje bedenk om berichten heen en weer te sturen dan kan ik de firmware op het bordje uitbereiden met nog veel meer cools. Zo heeft hij bijvoorbeeld ook een LCD interface, die ik zou kunnen benutten :) kan ik m'n volume en dingetjes als CPU verbruik erop zetten :)


ter informatie: dat bordje is een dingetje wat ik via school heb moeten kopen voor een vak over microcontrollers. het is dus een vrij universeel chippie met heel wat handige mogelijkheden. en het ding is dus op een bordje geplaats met allerlei interfaces (USB, een LCD interface, seriëel, infrarood..) en daarbij zijn volgens mij zelfs alle pinnen direct verboden met een grote connector dus kan ermee doen wat ik wil, en erop aansluiten wat ik wil :)
dus om nog maar even verder te fantaseren: kan hem ook nog laten reageren op de afstandbediening van m'n TV-kaart en zo de volume knopjes daarop altijd laten werken, in plaats van alleen voor WinTV
Zou het hele zaakje ook in m'n kast kunnen inbouwen en een LCD in m'n frontje kunnen zetten :) zou zelfs m'n casefans eraan kunnen hangen en hem (o.a.) als fancontroller gebruiken :D

maargoed, ik dwaal af.. (raak wel enthousiast zo om eens wat cools te gaan ontwikkelen :) )
dan voor de info allen, als ik er wat moois van ga maken open ik er wellicht nog een mooi topic over :)

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 00:17
Als dat bord een Serial<->USB converter heeft worden er vaak drivers bijgeleverd die een COM poort emuleren ( FTDI chips doen dat bijvoorbeeld ) en soms zit er een libary bij die geen COM poort aanmaakt maar die je vanuit een DLL wel kunt openen ( FTDI chips bijvoorbeeld )

In beide gevallen hoef je dus niet zelf USB drivers te schrijven maar alleen de laag tussen de driver en je applicatie.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • MacWebber
  • Registratie: September 2000
  • Niet online
Of je koopt voor 19 euri een nieuw toetsenbord met wat volumeknoppen erop (en meteen een muteknop en nog 90 knoppen die je nooit van je leven meer gebruikt ;) )

Okee, zelf knutselen is absoluut leuker ;)

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 11:20

voodooless

Sound is no voodoo!

Er zijn ook gewoon potmeters voor meerdere kanalen hoor, alleen wordt het dan geen goedkoop geintje meer.

Zowiso heb je een potmeter voor je USB ding niet nodig: neem gewoon een rotary encoder, heb je niet zoveel analoog gepruts en maakt het geheel veel flexibeler.

Do diamonds shine on the dark side of the moon :?


Verwijderd

offtopic:
Niet USB, wel parallel.
Ik heb begrepen dat het onder Windows XP niet mogelijk is de parallele poort (dus de pinnetjes) aan te spreken, zou graag een aantal ledjes willen besturen middels deze poort (en dit later uit breiden naar iets zinnigers icm. externe voeding en wat relays).
Linux voor nodig dus?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:10

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op donderdag 22 november 2007 @ 16:11:
offtopic:
Niet USB, wel parallel.
Ik heb begrepen dat het onder Windows XP niet mogelijk is de parallele poort (dus de pinnetjes) aan te spreken, zou graag een aantal ledjes willen besturen middels deze poort (en dit later uit breiden naar iets zinnigers icm. externe voeding en wat relays).
Linux voor nodig dus?
offtopic:
Of gebruik even de GoT search en kom er achter dat je niet de enige bent geweest die dit wil doen en dat het prima kan ;) Hint: DLPortIO is redelijk wat gebruikt hiervoor.

En eigenlijk is dit gewoon topickaping. Open dan gewoon een eigen topic ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Xyzar_
  • Registratie: September 2007
  • Laatst online: 01-09-2014
@MacWebber: ik heb een prima toetsenbord, en inderdaad met volume en mute knopjes. Maar het gaat mij juist om het gevoel van een draaiknop. Voor dat soort functies (volume, balance, vroeger de tuner van de radio) vind ik het gewoon lekker om draaiknoppen te hebben.
en dát heeft dan weer geen enkel toetsenbord ;)

(ja, de MS Reclusa, maar ik hecht ook waarde aan m'n nachtrust (LED's die niet uit kunnen..) en aan m'n portomonnee :) met de spullen die ik in huis heb kan ik het ook realiseren voor een paar euro, met de mogelijkheden om er nog véél meer vette functionaliteit in te bouwen ;) )

@voodooless: heh, ja.. even googlen leert mij dat ik dan net zo goed die Griffin kan kopen :P rotary encoder is wel een goeie tip trouwens, tnx :) (bied ook meer mogelijkheden)

@die gasten boven mij:
is het niet makkelijker om dat via een seriële poort te doen? die kun je wel vrij eenvoudig aanspreken en de individuele pinnen besturen dacht ik. maar leds zo direct aan een poort hangen is ook niet alles hoor. bij een project voor school hebben we zo eens een interface voor een GPS systeem gebouwt aan een seriele poort. stuk of 15 leds en een knopje. (en daaronder? een berg weerstandjes, de nodige logica of het signaal te multiplexen naar alle leds, en een kilometer aan draadjes en soldeer :P die dude die het gemaakt heeft heeft er dagenlang op zitten solderen, en daarvoor waren we al een week of wat met het ontwerp bezig..)

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 11:20

voodooless

Sound is no voodoo!

Xyzar_ schreef op donderdag 22 november 2007 @ 16:27:
rotary encoder is wel een goeie tip trouwens, tnx :) (bied ook meer mogelijkheden)
Misschien nog een tip: van de motor van een harddisk kun je meestal ook een rotary encoder maken. Die dingen draaien lekker smooth en hebben een lekkere feel :) google maar eens, dan vind je wel wat.
@die gasten boven mij:
is het niet makkelijker om dat via een seriële poort te doen? die kun je wel vrij eenvoudig aanspreken en de individuele pinnen besturen dacht ik.
Serial port is natuurlijk 100x simpeler: je spreekt dan gewoon een cheap ass protocol met tussen uC en PC, en je hoeft alleen en client proggie te maken i.p.v een hele driver..

Do diamonds shine on the dark side of the moon :?


  • DukeBox
  • Registratie: April 2000
  • Laatst online: 19:46

DukeBox

loves wheat smoothies

Met het binnenwerk van een dell multimedia keyboard iets degelijks gemaakt. Daar zit al een potmeter op die via usb volume aanstuurd (evenals stop/play/pause/forward enz). Andere dop erop en je hebt een mega volume controller zoals de afbeelding.
De boel zit nu verwerkt in de voorkant van een lade blok.

Duct tape can't fix stupid, but it can muffle the sound.


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 18:53
voodooless schreef op donderdag 22 november 2007 @ 13:43:
Je zult er niet omheen komen om een driver te schrijven die de data van je USB device begrijpt en en er dingen mee doet. standaard api's voor dat soort dingen zijn er nu eenmaal niet.
Er zijn 3 standaarden van usb-apparaten die zeer geschikt zijn voor dit soort toepassingen. Ze vereisen nog wel het schrijven van een programmaatje op de pc om de verkregen info om te zetten in acties zoals het regelen van het volume, maar dat lijkt me eenvoudiger dan het schrijven van een driver (vooral als je het later ook op 64-bit of op een heel ander besturingssysteem wil kunnen gebruiken)

1) USB MIDI apparaat. MIDI is een standaard om muziekinstrumenten aan elkaar te hangen, en bevat behoorlijk wat flexibiliteit om ook te gebruiken met controllers.
Enige (kleine) nadeel is dat als je slechts 128 stappen hebt indien je van 1 midi message gebruikmaakt.
Voordeel van MIDI is dat het al door veel (voornamelijk muziek-) software ondersteund is, waardoor je zonder iets te programmeren er toch al beperkt gebruik van kunt maken.

2) USB HID apparaat (Human Interface Device). Deze standaard wordt gebruikt voor muis en toetsenbord, maar ook voor joysticks bijvoorbeeld. Ik geloof dat waardes hier in 16-bits worden uitgedrukt, dus in principe 65000 stappen.

3) Zoals al gezegd, een USB seriele com-poort. Nadeel is dan dat je een eigen communicatieprotocol moet verzinnen, wat bovendien met geen enkele andere applicatie compatibel zal zijn.

VirtualDJ 2024 - Fast Image Resizer - Instagram


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je kan ook gewoon een potmeter aan twee van de pinnetjes van je gameport hangen (wellicht met een bepaalde weerstand ertussen). Zo werkt een standaard joystick namelijk. Vervolgens kun je met de joy* functies van de win32 API de positie van de as opvragen.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 11:20

voodooless

Sound is no voodoo!

Inderdaad :)

Je kunt vier 100K pots aansluiten. zo kun je al een half mengpaneel maken ;)

Do diamonds shine on the dark side of the moon :?


  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

Ik heb toevallig dezelfde opdracht gedaan bij dezelfde studie als jij doet :)
Het doel ervan toen was toch wel om er iets moois van te maken, en dus lijken mij zoeizo alle niet-USB oplossingen afvallen. (met de seriele port communiceren is nou niet echt impressive).

Wat ik toen gemaakt heb is via de IR port signalen ontvangen op het bordje en die dan doorsturen via USB naar de PC. De uC (toen nog een TI USB 3210 chip) meldde zich aan als een HID keyboard device en kon dus in principe alle toetsen aan. HID keyboard heeft geloof ik wel mogelijkheden om het geluid muten, maar niet om volume aan te passen.
Ik heb toen nog wel gekeken naar de mogelijkheden om mijn multimedia keyboard na te bootsen, maar door gebrek aan tijd niet meer afgekregen. Wat je daarbij flink kan helpen zijn USB sniffers, ik geloof dat ik gebruik maakte van Snoopy.

Erg handige site verder: http://www.lvr.com/hidpage.htm, en nog een referentie project waar ik veel aan heb gehad: http://www.ime.jku.at/TUSB/

[ Voor 8% gewijzigd door cspare op 22-11-2007 21:24 ]

The one who says it cannot be done, should never interrupt the one who is doing it.


  • --WaaZaa--
  • Registratie: Oktober 2004
  • Laatst online: 28-11 19:03
Ben zelf ook bezig met een USB joystick te maken met een microcontroller, ben daar op deze 'library' uitgekomen voor atmel's. Wellicht dat je hier en daar wat info vandaan kan plukken daar ;)

prutsert


  • Xyzar_
  • Registratie: September 2007
  • Laatst online: 01-09-2014
@cspare: dat is dus hetzelfde chippie als wat ik heb liggen :) dan voor de links, was al die documententatie onderhand kwijt :P (heb het ding ook al een jaartje of wat liggen)

@alle andere suggesties: allemaal heel handig natuurlijk, maar feit blifjt dat het wel zoveel cooler is om zelf vette firmware te bouwen en alle mogelijkheden van het bordje te benutten ;)

anyway dank aan allen voor de info en de tips :) heb zo al een aantal goeie tips gehad, en het motiveerd om het ook te gaan doen er er wat moois van te maken :)

  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

Oh ik was in de veronderstelling dat je dit deed voor die studieopdracht. Neemt niet weg dat een stoere oplossing wel het leuksts is ja :) Maar in dat geval, als je nog wat code of voorbeelden wil hebben dan wil ik die evt. wel met je delen. Als je nog met je studie bezig bent kan je ook eens eea. aan Kroeske vragen, hij vind dat ook allemaal leuk.

Ik ben wel benieuwd wat je er van gaat maken, keep me up to date :)

The one who says it cannot be done, should never interrupt the one who is doing it.


  • Xyzar_
  • Registratie: September 2007
  • Laatst online: 01-09-2014
ja ga er wel een keer een cool projectje van maken en er een topicje over bijhouden. ook leuk voor de andere hobbyisten :)

en ja, kroeske is de embedded-man :)
(wat grappig trouwens, dat iemand die ik niet ken op een of andere forum aan de een of andere docent refereert, en dat ik die dan nog ken ook :) )

Ga er dit weekend serieus over nadenken.. dat TUSB bordje ligt nu al 2 jaar ofzo stof te happen en ik ben dus ook al die tijd al van plan om er 'ooit' eens 'iets' vets mee te doen.. :P
Pagina: 1