Სარჩევი:

კომპიუტერის IR დისტანციური მართვა: 4 ნაბიჯი
კომპიუტერის IR დისტანციური მართვა: 4 ნაბიჯი

ვიდეო: კომპიუტერის IR დისტანციური მართვა: 4 ნაბიჯი

ვიდეო: კომპიუტერის IR დისტანციური მართვა: 4 ნაბიჯი
ვიდეო: POE ვიდეო თვალთვალის ნაკრები მუშაობს ერთ კაბელზე!!! 2024, ივნისი
Anonim
კომპიუტერული IR დისტანციური მართვა
კომპიუტერული IR დისტანციური მართვა

მრავალი სხვა მიზნის გარდა, მე ვიყენებ ჩემს კომპიუტერს, როგორც მულტიმედიურ ცენტრს. არის შემთხვევები, როცა დივანზე ვისვენებ მუსიკას ვუსმენ, ფილმს ან ტელევიზორს ვუყურებ და არ მაქვს სურვილი ავდგე ხმის შესაცვლელად ან შეცვალო სატელევიზიო არხი ყოველ ჯერზე სულელური რეკლამების გამოჩენისას ან მეძინება და ვუსურვებ დუმილი. ასე რომ, მე გადავწყვიტე, რომ ჩემი კომპიუტერი დისტანციურად კონტროლდებოდეს სტანდარტული IR დისტანციური მართვის საშუალებით, ასე რომ მე შემეძლო მყისიერად დააჭირეთ ღილაკს ნაცვლად იმისა, რომ მძვინვარედ დამეჭირა მაუსი ან კლავიატურაზე მდუმარე ღილაკი.

პროექტი შედგება რამდენიმე ნაწილისგან:

  1. დისტანციური მართვა
  2. კომპიუტერული პროგრამული უზრუნველყოფა
  3. IR მიმღების მოდული

ნაბიჯი 1: დისტანციური მართვა

დისტანციური მართვა
დისტანციური მართვა

პირველი პუნქტი - დისტანციური მართვა - უმნიშვნელოა დასასრულებლად. უბრალოდ გამოიყენეთ ნებისმიერი IR კონტროლი, რომელიც მოგწონთ. მე გამოვიყენე ის, რაც იყიდება როგორც კომპლექტი IR მიმღებთან ერთად - იხილეთ სურათი. ერთადერთი მიზეზი, რაც მე გადავწყვიტე ამ ტიპისთვის არის მხოლოდ ის, რომ მე უკვე მქონდა იგი სახლში.

ნაბიჯი 2: პროგრამული უზრუნველყოფა

მე შევქმენი პროგრამა GNU/Linux OS– ისთვის, რომელიც მუშაობს ტერმინალში. კოდის ჩამოტვირთვა უფასოა/გამოყენება/გაზიარება/შეცვლა. კოდის შესადგენად უბრალოდ გაუშვით ბრძანება, როგორიცაა gcc -o remotePC remotePC.c ტერმინალში. პროგრამის ტიპის გასაშვებად./remotePC.

ამ საფეხურის შემდეგი ინფორმაცია მიმართულია მათთვის, ვინც დაინტერესებულია როგორ მუშაობს საგნები.

პროგრამის აღწერა

პროგრამა ჯერ ამოწმებს არსებობს თუ არა ფაილი /dev /ttyACM0 ან ttyACM1. თუ ასეა, ფაილის ჯგუფის ID შემოწმებულია, რომ განსხვავდება ნულისგან. ეს ნიშნავს, რომ სერიული პორტი შეიძლება წაიკითხოს და დაწეროს ჩვეულებრივმა მომხმარებელმა. ორი ბაიტი 0xAA 0x55 მნიშვნელობებით შემდეგ იწერება პორტში იმის სიგნალისთვის, რომ პროგრამა მზადაა მონაცემების მისაღებად. შემოსული მონაცემები შედარებულია შენახულ მნიშვნელობებთან. თუ შესატყვისი მოიძებნება, წინასწარ განსაზღვრული მოქმედება შესრულდება.

ხმის კონტროლი

პროგრამას შეუძლია ჩართოს/გამორთოს ხმა, გაზარდოს/შეამციროს ხმის დონე სისტემის დონეზე. ეს მიიღწევა პაქტლ პროგრამის გამოყენებით. შემდეგ ბრძანებები ასე გამოიყურება:

pactl set-sink-mute 0 გადართვა

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

საჭიროების შემთხვევაში დააინსტალირეთ მოთხოვნილი პაკეტები.

VLC Media Player კონტროლი

პროგრამას ასევე შეუძლია აუდიო/ვიდეოს დაწყება/პაუზა და VLC Media Player– ის დასაკრავ სიაში წინა/მომდევნო სიმღერის შეცვლა. ამ შემთხვევაში გამოიყენება Desktop Bus. ბრძანებები:

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. წინა

ნაბიჯი 3: IR მიმღების მოდული

IR მიმღების მოდული
IR მიმღების მოდული
IR მიმღების მოდული
IR მიმღების მოდული
IR მიმღების მოდული
IR მიმღების მოდული

პროექტის მესამე ნაწილი არის ყველაზე რთული, მაგრამ ჯერ კიდევ საკმაოდ მარტივი. იდეა ისაა, რომ IR მიმღები სიგნალს გადასცემს MCU- ს, რომელიც გარდაქმნის მას უნიკალურ რიცხვზე. ეს რიცხვი შემდეგ გადაეცემა კომპიუტერს USB- ის საშუალებით.

მოდული განკუთვნილია კომპიუტერის ყუთში ჩასასმელად და კაბელთან დაკავშირებული დედაპლატის USB სლოტთან. იმ შემთხვევაში, თუ თქვენ გირჩევნიათ გარე კავშირი USB– სთან, მოგიწევთ მცირე კორექტირების გაკეთება.

MCU

მე ავაშენე მოდული PIC16F1829 მიკროკონტროლერზე. MCU– ს არჩევანი არ არის კრიტიკული, შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა MCU, თუ შეძლებთ წყაროს კოდის მორგებას. მე ავირჩიე ეს PIC ორი მიზეზის გამო. ჯერ მე მქონდა ხელმისაწვდომი და მეორეც, რომ მისი ქინძისთავები ნაწილობრივ დაზიანდა სხვადასხვა სატესტო პროექტებში ინტენსიური გამოყენების შედეგად. ამიტომ მინდოდა გამომეყენებინა იგი მუდმივ პროექტში, სანამ ის სრულიად გამოუსადეგარი გახდებოდა.:-)

IR მიმღები

მეორე ნაწილი, რომელიც ემყარება მოდულს, არის IR მიმღები VS1838B - ის, რაც აღნიშნულია პირველ საფეხურზე.

UART/USB კონვერტორი

მესამე ნაწილი არის MCP2221, რომელიც არის UART/I2C/USB გადამყვანი.

ამოცანაა გავაერთიანოთ ეს 3 ნაწილი მოდულის შესაქმნელად, რომელიც შეძლებს მიიღოს სიგნალები IR დისტანციური მართვისგან და გადასცეს მათ კომპიუტერს.

გაყვანილობა

პირველ სურათზე არის საცდელი წრე პურის დაფაზე. მეორეში არის გაყვანილობის სქემა.

ნაწილების სია

1 ცალი PIC16F1829 (ან ნებისმიერი სხვა MCU)

1 ცალი VS1838B (ან ნებისმიერი სხვა IR მიმღები)

1 ცალი MCP2221 (ან ნებისმიერი სხვა UART/USB გადამყვანი)

2 ცალი 4 პინიანი სათაური

1 ცალი 6 პინიანი სათაური

1 ც რეზისტორი 100R

2 ცალი რეზისტორი 10K

2 ცალი რეზისტორი 330R

1 ც კონდენსატორი 470 nF

2 ცალი ელექტროლიტური კონდენსატორი 4.7 uF

1 კომპიუტერის გადამრთველი (სურვილისამებრ)

PCB ასამბლეა

შეაერთეთ მოდული სქემატური გამოყენებით. თქვენ შეგიძლიათ გამოიყენოთ უნივერსალური დაფა ან შექმნათ პერსონალური PCB. თუ ეს უკანასკნელი ასეა, მე მივაწოდე KiCad ფაილები ქვემოთ მოცემულ არქივში.

Firmware

MPLAB X IDE და XC8 შემდგენლის გამოყენებით დაწერილი PIC– ის წყაროს კოდი ხელმისაწვდომია ქვემოთ ჩამოსატვირთად.

წყაროს კოდი აღნიშნავს

მათთვის, ვისაც სურს იცოდეს რას აკეთებს პროგრამა, არის შემდეგი ხაზები.

ყველა პარამეტრის დასრულების შემდეგ წითელი LED არის ჩართული და MCU ელოდება 0x55AA მონაცემებს. ამის შემდეგ LED ნათდება მწვანე და MCU იწყებს სიგნალის გამოვლენას IR მიმღებიდან შეფერხებების გამოყენებით. ის ზომავს და აფიქსირებს დროის ინტერვალებს სიგნალის მაღალ და დაბალ დონეზე. ეს დრო შემდეგ გარდაიქმნება 32-ბიტიან ნომრად, რომელიც იგზავნება კომპიუტერში.

დროსა და საბოლოო რიცხვს შორის კავშირი მოცემულია NEC პროტოკოლით.

ნაბიჯი 4: როგორ გამოვიყენოთ მოწყობილობა

როგორ გამოვიყენოთ მოწყობილობა
როგორ გამოვიყენოთ მოწყობილობა
როგორ გამოვიყენოთ მოწყობილობა
როგორ გამოვიყენოთ მოწყობილობა
როგორ გამოვიყენოთ მოწყობილობა
როგორ გამოვიყენოთ მოწყობილობა

Firmware

ატვირთეთ firmware PIC- ში. მე ვიყენებ PICkit 3 პროგრამისტს.

ტექნიკა

დააინსტალირეთ IR მიმღების მოდული, როგორც სურათებში ჩანს:

  1. შეაერთეთ USB სათაური ან შიდა USB სლოტზე დედაპლატის კომპიუტერის შიგნით, შესაბამისი 4 მავთულიანი კაბელით ან გარედან USB სლოტთან სტანდარტული USB კაბელით. მეორე შემთხვევაში თქვენ უნდა დაეხმაროთ საკუთარ თავს რაღაცნაირად, მაგ. როგორც ჩანს მე -3 სურათზე შთაგონების მიზნით.
  2. მიამაგრეთ 5 ვ დენის კაბელი კომპიუტერის კორპუსში არსებული ენერგიის წყაროს 4-პინიან სათაურთან. ან ჩართეთ მოდული სხვა გზით გარე გამოყენების შემთხვევაში.

გადახედეთ დედაპლატის USB სოკეტის ქინძისთავების აღწერას. მე არ ვარ დარწმუნებული, შეესაბამება თუ არა გაყვანილობა რაიმე სახის სტანდარტს, ამიტომ უმჯობესია დავრწმუნდეთ. ჩემს შემთხვევაში არის ორი პინიანი მწკრივი, რომელსაც აქვს 5 ქინძისთავი ზედა რიგში და 4 ქინძისთავი ქვედაში. მარცხნიდან მარჯვნივ ქინძისთავებია + 5 V, D-, D +, Gnd. პირველი რიგის მე -5 პინი არ არის დაკავშირებული. მე დავამატე კაბელი, როგორც ჩანს მეორე სურათზე.

პროგრამული უზრუნველყოფა

გაუშვით პროგრამა ტერმინალში. თუ ყველაფერი სწორად მიდის, პროგრამის ბოლო შეტყობინება არის "ელოდება მონაცემებს …". როდესაც დისტანციური მართვის ღილაკს დააჭერთ, მიღებული კოდი გამოჩნდება ტერმინალში. ამ გზით თქვენ იცით, რომელი ღილაკი რომელი კოდს ასხივებს.

ახლა პროგრამირების რაღაცეები გელოდებათ, მაგრამ არ ინერვიულოთ. პროგრამის წყაროს კოდში მხოლოდ რამდენიმე რამ უნდა შეიცვალოს, რათა პროგრამა რეაგირებდეს თქვენს დისტანციურ მართვაზე. გახსენით ფაილი remotePC.c ტექსტურ რედაქტორში ან რაიმე IDE- ში, თუ მოგწონთ და შეცვალეთ ჩემი კოდები თქვენით. უბრალოდ დააჭირეთ ღილაკებს, რომელთა გამოყენებასაც აპირებთ თითოეული მოქმედებისათვის სათითაოდ. უბრალოდ დააკოპირეთ ტერმინალში ნაჩვენები კოდები და ჩასვით წყაროს კოდში შესაბამისი მოქმედებით.

როდესაც დაასრულებთ, შეწყვიტეთ პროგრამა და გადააკეთეთ კოდი ბრძანებით gcc -o remotePC remotePC.c. ხელახლა გაუშვით პროგრამა და ამიერიდან ის რეაგირებს თქვენს დისტანციურ კონტროლზე.

მე ვიყენებ ამ გზას პროგრამის მყარად კოდირებული მოქმედებებით, რადგან მე ვგულისხმობ უაზროდ დროის დაკარგვას პროექტის შემდგომი განვითარებისათვის სახელმწიფოში, როდესაც შესაძლებელია კოდების/მოქმედებების დამატება/შეცვლა მომხმარებლისთვის მოსახერხებელ გრაფიკულ გარემოში. მაგრამ თუ გსურთ ამის გაკეთება ან კიდევ უფრო მეტი შეგიძლიათ.

გირჩევთ: