Sommario:

Il telecomando IR del computer: 4 passaggi
Il telecomando IR del computer: 4 passaggi

Video: Il telecomando IR del computer: 4 passaggi

Video: Il telecomando IR del computer: 4 passaggi
Video: Installazione telecomando universale 2024, Dicembre
Anonim
Il computer Controllo remoto IR
Il computer Controllo remoto IR

Oltre a tanti altri scopi, sto usando il mio PC come centro multimediale. Ci sono volte in cui mi rilasso sul divano ascoltando la musica o guardando un film o la TV e non ho voglia di alzarmi per regolare il volume o cambiare canale TV ogni volta che compaiono pubblicità stupide o mi addormento e desidero il silenzio. Quindi ho deciso di controllare a distanza il mio PC con un telecomando IR standard in modo da poter premere istantaneamente il pulsante invece di afferrare furiosamente il mouse o il tasto muto sulla tastiera.

Il progetto si compone delle diverse parti:

  1. Telecomando
  2. Software per PC
  3. Modulo ricevitore IR

Passaggio 1: il telecomando

Il controllo remoto
Il controllo remoto

Il primo elemento - il telecomando - è banale da fare. Basta usare qualsiasi controllo IR che ti piace. Ho usato quello che è in vendita come set insieme al ricevitore IR - vedi l'immagine. L'unico motivo per cui ho deciso per questo tipo è solo perché ce l'avevo già in casa.

Passaggio 2: software

Ho creato il programma per il sistema operativo GNU/Linux che viene eseguito in un terminale. Il codice sorgente può essere scaricato/utilizzato/condiviso/modificato gratuitamente. Per compilare il codice basta lanciare il comando come gcc -o remotePC remotePC.c nel terminale. Per eseguire il programma digitare./remotePC.

Le seguenti informazioni in questo passaggio sono rivolte a coloro che sono interessati a come funzionano le cose.

La descrizione del programma

Il programma prima verifica se il file /dev/ttyACM0 o ttyACM1 esiste. In tal caso, l'ID gruppo del file viene verificato per essere diverso da zero. Ciò significa che la porta seriale può essere letta e scritta dall'utente comune. Due byte con valori 0xAA 0x55 vengono quindi scritti sulla porta per segnalare che il programma è pronto a ricevere i dati. I dati in ingresso vengono confrontati con i valori memorizzati. Se viene trovata la corrispondenza, viene eseguita l'azione predefinita.

Il controllo del volume

Il programma è in grado di attivare/disattivare l'audio, aumentare/diminuire il livello del volume a livello di sistema. Ciò si ottiene con l'uso del programma pactl. I comandi quindi assomigliano a questo:

pactl set-sink-mute 0 interruttore

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

Se necessario installare i pacchetti richiesti.

Il controllo di VLC Media Player

Il programma può anche avviare/mettere in pausa l'audio/video e cambiare la traccia alla precedente/successiva nella playlist di VLC Media Player. In questo caso viene utilizzato il bus desktop. I comandi:

dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Previous

Passaggio 3: modulo ricevitore IR

Modulo ricevitore IR
Modulo ricevitore IR
Modulo ricevitore IR
Modulo ricevitore IR
Modulo ricevitore IR
Modulo ricevitore IR

La terza parte del progetto è la più complessa ma ancora piuttosto semplice. L'idea è che il ricevitore IR emetterà il segnale all'MCU che lo trasformerà nel numero univoco. Questo numero verrà quindi trasmesso al PC tramite USB.

Il modulo è pensato per essere montato all'interno del case del PC e collegato allo slot USB sulla scheda madre con il cavo. Nel caso in cui si preferisca la connessione esterna all'USB sarà necessario apportare piccole modifiche.

MCU

Ho costruito il modulo sul microcontrollore PIC16F1829. La scelta dell'MCU non è critica, puoi utilizzare qualsiasi altro MCU se sei in grado di regolare il codice sorgente. Ho scelto questa foto per due motivi. In primo luogo l'ho avuto a disposizione e in secondo luogo i suoi pin sono stati parzialmente danneggiati dall'uso intensivo nei diversi progetti di test. Quindi volevo usarlo nel progetto permanente prima che diventasse totalmente inutilizzabile.:-)

Ricevitore IR

La seconda parte su cui si basa il modulo è il ricevitore IR VS1838B, quello menzionato nel primo passaggio.

Convertitore UART/USB

La terza parte è l'MCP2221 che è il convertitore UART/I2C/USB.

Il compito è combinare queste 3 parti per costruire il modulo che sarà in grado di ricevere i segnali dal telecomando IR e consegnarli al PC.

Il cablaggio

Nella prima immagine c'è il circuito di test sulla breadboard. Nella seconda c'è lo schema elettrico.

L'elenco delle parti

1 pz PIC16F1829 (o qualsiasi altro MCU)

1 pz VS1838B (o qualsiasi altro ricevitore IR)

1 pz MCP2221 (o qualsiasi altro convertitore UART/USB)

2 connettori a 4 pin

1 pz intestazione a 6 pin

1 pz resistenza 100R

2 resistenze da 10K

Resistore da 2 pezzi 330R

1 pz condensatore 470 nF

Condensatore elettrolitico da 2 pezzi 4,7 uF

1 pz interruttore (opzionale)

Assemblaggio PCB

Metti insieme il modulo con l'uso dello schema. Puoi utilizzare la scheda universale o creare il PCB personalizzato. In quest'ultimo caso ho fornito i file KiCad nell'archivio sottostante.

Il firmware

Il codice sorgente per il PIC scritto con l'uso dell'IDE MPLAB X e del compilatore XC8 è disponibile per il download di seguito.

Le note sul codice sorgente

Per coloro che desiderano sapere esattamente cosa sta facendo il programma sono le seguenti righe.

Dopo che tutte le impostazioni sono state eseguite, il LED rosso è acceso e l'MCU è in attesa dei dati 0x55AA. Dopodiché il LED diventa verde e l'MCU inizia a rilevare il segnale dal ricevitore IR con l'uso degli interrupt. Misura e registra gli intervalli di tempo in cui il segnale si trova nei livelli Alto e Basso. Questi tempi vengono poi trasformati nel numero a 32 bit che viene inviato al PC.

Il rapporto tra i tempi e il numero finale è dato dal protocollo NEC.

Passaggio 4: come utilizzare il dispositivo

Come utilizzare il dispositivo
Come utilizzare il dispositivo
Come utilizzare il dispositivo
Come utilizzare il dispositivo
Come utilizzare il dispositivo
Come utilizzare il dispositivo

Firmware

Carica il firmware sul PIC. Uso il programmatore PICkit 3.

Hardware

Installare il modulo ricevitore IR come mostrato nelle immagini:

  1. Collega l'intestazione USB allo slot USB interno sulla scheda madre all'interno del case del PC con un cavo a 4 fili appropriato o esternamente allo slot USB con il cavo USB standard. Nel secondo caso devi aiutarti in qualche modo, ad es. come si vede nella terza foto per ispirazione.
  2. Collegare il cavo di alimentazione da 5 V dalla fonte di alimentazione all'interno del case del PC all'intestazione a 4 pin. Oppure alimentare il modulo in altro modo in caso di utilizzo esterno.

Cerca la descrizione dei pin della presa USB della scheda madre. Non sono sicuro che il cablaggio segua una sorta di standard, quindi è meglio assicurarsi. Nel mio caso ci sono due file di pin con 5 pin nella riga superiore e 4 pin in quella inferiore. Da sinistra a destra i pin sono + 5 V, D-, D+, Gnd. Il quinto pin della prima riga non è collegato. Ho attaccato il cavo come si vede nella seconda foto.

Software

Esegui il programma nel terminale. Se tutto va bene l'ultimo messaggio del programma è "in attesa di dati…". Ora quando premi il pulsante sul telecomando il codice ricevuto apparirà nel terminale. In questo modo saprai quale pulsante emette quale codice.

Ora alcune cose di programmazione ti stanno aspettando, ma non preoccuparti. Solo alcune cose devono essere cambiate nel codice sorgente del programma in modo che il programma risponda al tuo telecomando. Apri il file remotePC.c nell'editor di testo o in qualche IDE se vuoi e sostituisci i miei codici con i tuoi. Basta premere uno per uno i pulsanti che si intende utilizzare per ogni azione. Basta copiare i codici che appaiono nel terminale e incollarli nel codice sorgente nel luogo con l'azione corrispondente.

Al termine terminare il programma e ricompilare il codice con il comando gcc -o remotePC remotePC.c. Esegui di nuovo il programma e d'ora in poi risponderà al tuo telecomando.

Uso questo modo con le azioni hardcoded nel programma poiché trovo inutile sprecare il mio tempo con l'ulteriore sviluppo del progetto allo stato in cui è possibile aggiungere/modificare codici/azioni nell'ambiente grafico intuitivo, ad esempio. Ma se vuoi fare questo o anche di più puoi farlo.

Consigliato: