Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    [C/ASM] Collegare interruttore al pc, forse con driver

    Ciao ragazzi, premetto che quello che voglio fare è ambizioso, e per farlo sono disposto a usare Assembly, C, qualsiasi sistema operativo serva e munirmi di qualsisi hardware.

    Quello che voglio fare è: attacco l'USB, quando premo un pulsante si accende una lampadina collegata al dispositivo USB, quando premo un altro si spegne.

    Penso che per fare ciò necessito di crearmi un driver, così mi sono scaricato il tool dall microsoft "Windows Driver Kit version 7.1.0", di cosa necessito ancora?, qualsiasi informazione è buona, rimandatemi anche ad altre guide.

    Ovviamente la parte della finestra sono capace! Quello che non so come fare...è creare la "funzione Accendi() e la funzione Spegni()"

    devo programmare a livello kernel? non penso, ma sono disposto anche a questo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    per fare

    per fare una soluzione rudimentale...potrei usare DevCon.exe e disablitare le periferiche USB, intendo proprio togliere alimentazione, ma non è una buona soluzione me ne rendo conto.

  3. #3
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Hai due strade.
    O crei un device driver per il kernel, che piloti un microcontrollore USB che accenda o spenga sta lampadina; oppure compri un'apposita scheda di pilotaggio e usi un'interfaccia USB seriale per pilotare la scheda tramite RS232.

    Il primo caso significa imparare come creare un kernel driver (che non mandi in crash l'intero sistema ovviamente), imparare bene il protocollo USB, l'ASM del microcontrollore, e dulcis in fundo tutta l'elettronica di pilotaggio per questa lamapadina.

    Il secondo caso significa aprire una connessione seriale verso la scheda pilota, leggere le specifiche della scheda, per sapere che comandi inviare al microcontrollore, e poi inviarli.

    Nel primo caso però, non te la cavi con qualche domanda su uno o più forum o guide online: servono libri e parecchio studio.
    E l'ultimissima cosa di cui hai bisogno e sapere come creare una finestra.

    Se comunque la cosa ti sta a cuore ti consiglio di postare qui:
    http://www.ioprogrammo.it/
    nella sezione C++ o Embedded
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  4. #4
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Un idea potrebbe essere usare il beep del pc.
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    mmm

    @linoma
    Il beep sarebbe una strada relativamente veloce! ma se devo collegare due lampadine sono fregato..

    @shodan
    In questi giorni analizzo entrambe le risposte...questa discussione potrebbe "morire" per un bel pezzo...ma spero di riuscire a farla resuscitare!

    Ovviamente si accettano altre idee

  6. #6
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Che so la butto li metti anche un multiplexer, tipo i vumeter (devi usare la frequenza invece del volume (VFO ?) )
    Per gli Spartani e Sparta usa spartan Il mio github

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    Esistono dei dispositivi già fatti che si interfacciano alla porta USB (ce ne sono anche per Ethernet) e permettono di gestire diverse uscite sia analogiche che digitali. I driver sono già forniti oltre alle librerie (solitamente per C/C++) per poter realizzare software personalizzati. Ne ho una della FTDI qui in studio, ma basta cercare su google ad esempio così: USB I/O module

    Un tempo si adoperava la porta parallela, almeno mi ricordo che dal DOS risultava relativamente facile accendere e spegnere un led collegato ai connettori della porta. Ovviamente le porte seriali non permettono questo funzionamento inoltre la USB è paticolarmente complessa da gestire. Si può fare qualcosa per accendere o spegnere il segnale di alimentazione supplementare della USB, ma per fare di più occorre collegare un dispositivo di interfaccia come quelli che dicevo prima.

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: mmm

    @kirakira93

    Usare il "beep" è un'idea semplicemente ridicola (confido quindi che il suggerimento di linoma con annesso sorrisone a 32 denti fosse ironico)
    Un PC non può pilotare dispositivi hardware con elevati consumi di corrente.
    Al massimo una seriale può fornire una tensione di 25V * 500mA come previsto dallo standard RS232
    http://www.giobe2000.it/HW/Seriale/Pag/RS232-12.asp
    e la parallela è anche messa peggio.
    http://www.giobe2000.it/HW/Parallela...facciaSPP1.asp

    Il "beep" (se piezoelettrico) non so nemmeno se regga un led.
    Certo puoi provare, ma te la senti di rischiare la motherboard?
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  9. #9

    Re: Re: mmm

    Originariamente inviato da shodan
    Certo puoi provare, ma te la senti di rischiare la motherboard?
    Motivo per cui, quando facevo gli esperimenti con la porta parallela, mi ero comprato per 5 € una scheda PCI per porta parallela aggiuntiva.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346

    Re: Re: mmm

    Originariamente inviato da shodan
    @kirakira93

    Usare il "beep" è un'idea semplicemente ridicola (confido quindi che il suggerimento di linoma con annesso sorrisone a 32 denti fosse ironico)
    Ridicola semplicemente xche ci sn hardware molto piu seri e completi di software anche avanzati. Cmq l'uscita è 5 V forse un led e la tecnologia CMOS li regge.
    Per gli Spartani e Sparta usa spartan Il mio github

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.