Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:agrigore:remote-pc-control [2021/05/24 21:08]
silviu.stefan1201 [Cod PC]
pm:prj2021:agrigore:remote-pc-control [2021/05/25 19:55] (current)
silviu.stefan1201 [Bibliografie/Resurse]
Line 30: Line 30:
 {{:​pm:​prj2021:​agrigore:​remote-pc-control:​schema_v2.png?​800|}} {{:​pm:​prj2021:​agrigore:​remote-pc-control:​schema_v2.png?​800|}}
  
-Initial am vrut sa folosesc un NPN in loc de MOSFET, dar ledurile au 300mA si nu se aprindeau cum trebuie. ​La fel, voiam sa folosesc un ATTiny85 in loc de ditamai Mega-ul, ca folosesc ​doar 3 pini digitali. Problema e ca tiny-ul nu are hardware pentru seriala.+Motivatii pentru piese: 
 + 
 +Initial am vrut sa folosesc un NPN in loc de MOSFET, dar ledurile au 300mA si nu se aprindeau cum trebuie. 
 + 
 +Tot initial ​voiam sa folosesc un ATTiny85 in loc de ditamai Mega-ul, ca am nevoie ​doar de 3 pini digitali. Problema e ca tiny-ul nu are hardware pentru seriala, si software serial nu prea mergea. 
 + 
 +Optocuplor - nu vreau sa leg arduino care costa ''​%%$%%''​ direct la PC care costa ''​%%$$$$%%'',​ deci tranzistor nu merge. Cealalta optiune e un releu, dar are 2 dezavantaje,​ anume ca e foarte mare (optocuplorul este mult mai mic), si ca am doar unul singur (optocuploare am o punguta). Una sau mai multe diode din optoculoare au fost arse pana sa-mi aduc aminte de ce nu legi diode direct la VCC.
  
 Asa arata construita: Asa arata construita:
  
 {{:​pm:​prj2021:​agrigore:​remote-pc-control:​hardware.jpg?​800|}} {{:​pm:​prj2021:​agrigore:​remote-pc-control:​hardware.jpg?​800|}}
 +
 +Cele 2 fire pentru LED strip actioneaza ca un intrerupator,​ strip-ul fiind alimentat separat.
 +
 +Firele pentru power switch sunt legate direct la pinii de pe motherboard din fpanel. Similar, sunt capetele unui intrerupator.
 ===== Software Design ===== ===== Software Design =====
  
Line 106: Line 116:
 ==== Cod PC ==== ==== Cod PC ====
  
-Command runner-ul de pe PC foloseste Typescript/​Node.+Command runner-ul de pe PC foloseste Typescript/​Node.
  
 Link git: https://​github.com/​slak44/​proiect-pm Link git: https://​github.com/​slak44/​proiect-pm
Line 114: Line 124:
 Avand eventuri cu comenzi de la arduino, partea de rulat este simpla. Un switch pe lista de comenzi posibile + actiunea relevanta (''​%%handleSerialData%%''​ in ''​%%index.ts%%''​). Avand eventuri cu comenzi de la arduino, partea de rulat este simpla. Un switch pe lista de comenzi posibile + actiunea relevanta (''​%%handleSerialData%%''​ in ''​%%index.ts%%''​).
  
-Pentru controalele de media, am implementat ​standardul MPRIS, care specifica un API standard pe Linux pentru playere de audio/​video. MPRIS este implementat pe DBus. Fiecare player expune un serviciu DBus care implementeaza metodele si proprietatile din standard. Command runner-ul listeaza toate serviciile din session bus, si le alege pe cele de tip MPRIS. De asemenea, asculta schimbari pe DBus, si isi modifica lista interna de playere (daca se deschide un player nou, sau daca se inchide unul existent). Runnerul permite controlul a mai multor playere simultan, in mod dinamic.+Pentru controalele de media, am folosit ​standardul MPRIS, care specifica un API standard pe Linux pentru playere de audio/​video. MPRIS este implementat pe DBus. Fiecare player expune un serviciu DBus care implementeaza metodele si proprietatile din standard. Command runner-ul listeaza toate serviciile din session bus, si le alege pe cele de tip MPRIS. De asemenea, asculta schimbari pe DBus, si isi modifica lista interna de playere (daca se deschide un player nou, sau daca se inchide unul existent). Runnerul permite controlul a mai multor playere simultan, in mod dinamic.
  
 DBus este relativ low-level, chiar si folosind un library care se ocupa de conexiunea cu el. Am scris un mic wrapper peste o fractiune din MPRIS (play, pause, volume, comenzi de baza). Se poate gasi in ''​%%mpris-proxy.ts%%''​. Codul principal doar foloseste acest wrapper direct, de exemplu: DBus este relativ low-level, chiar si folosind un library care se ocupa de conexiunea cu el. Am scris un mic wrapper peste o fractiune din MPRIS (play, pause, volume, comenzi de baza). Se poate gasi in ''​%%mpris-proxy.ts%%''​. Codul principal doar foloseste acest wrapper direct, de exemplu:
Line 125: Line 135:
 In afara de comenzile media, runner-ul accepta si scripturi custom. Butoanele 0..9 de pe telecomanda sunt mapate la 10 scripturi din folder-ul runnerului, ''​%%script${nr}.sh%%''​. Astfel se pot executa comenzi arbitrare folosind telecomanda. In afara de comenzile media, runner-ul accepta si scripturi custom. Butoanele 0..9 de pe telecomanda sunt mapate la 10 scripturi din folder-ul runnerului, ''​%%script${nr}.sh%%''​. Astfel se pot executa comenzi arbitrare folosind telecomanda.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +
 +https://​www.youtube.com/​watch?​v=AwqmG-MQQOQ
 +
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +Proiectul e destul de fun, si are potential sa-mi fie chiar util. O posibila miniaturizare + imbunatatirea distantei la care merge telecomanda l-ar face mai practic si mai usor de utilizat. Chiar si in starea lui curenta, merge lasat legat la PC :)
 ===== Download ===== ===== Download =====
  
 +Cod: https://​github.com/​slak44/​proiect-pm/​archive/​refs/​heads/​master.zip
 ===== Jurnal ===== ===== Jurnal =====
  
Line 136: Line 151:
   * 23 mai - schema v2   * 23 mai - schema v2
   * 24 mai - documentatie finala   * 24 mai - documentatie finala
 +  * 25 mai - video cu rezultat + concluzie
   * zile random din mai - implementarea in sine   * zile random din mai - implementarea in sine
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
Line 147: Line 163:
   * https://​www.electronics-tutorials.ws/​transistor/​tran_7.html   * https://​www.electronics-tutorials.ws/​transistor/​tran_7.html
   * https://​www.onsemi.com/​pdf/​datasheet/​nds7002a-d.pdf   * https://​www.onsemi.com/​pdf/​datasheet/​nds7002a-d.pdf
 +  * https://​datasheetspdf.com/​pdf/​701590/​LEN/​VS1838/​1
 +  * https://​learnabout-electronics.org/​Downloads/​PC817%20optocoupler.pdf
   * https://​ocw.cs.pub.ro/​courses/​icalc,​ bine ca am ales ic pt eagle   * https://​ocw.cs.pub.ro/​courses/​icalc,​ bine ca am ales ic pt eagle
  
pm/prj2021/agrigore/remote-pc-control.1621879692.txt.gz · Last modified: 2021/05/24 21:08 by silviu.stefan1201
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0