Სარჩევი:
- ნაბიჯი 1: დისტანციური მართვა
- ნაბიჯი 2: პროგრამული უზრუნველყოფა
- ნაბიჯი 3: IR მიმღების მოდული
- ნაბიჯი 4: როგორ გამოვიყენოთ მოწყობილობა
ვიდეო: კომპიუტერის IR დისტანციური მართვა: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
მრავალი სხვა მიზნის გარდა, მე ვიყენებ ჩემს კომპიუტერს, როგორც მულტიმედიურ ცენტრს. არის შემთხვევები, როცა დივანზე ვისვენებ მუსიკას ვუსმენ, ფილმს ან ტელევიზორს ვუყურებ და არ მაქვს სურვილი ავდგე ხმის შესაცვლელად ან შეცვალო სატელევიზიო არხი ყოველ ჯერზე სულელური რეკლამების გამოჩენისას ან მეძინება და ვუსურვებ დუმილი. ასე რომ, მე გადავწყვიტე, რომ ჩემი კომპიუტერი დისტანციურად კონტროლდებოდეს სტანდარტული IR დისტანციური მართვის საშუალებით, ასე რომ მე შემეძლო მყისიერად დააჭირეთ ღილაკს ნაცვლად იმისა, რომ მძვინვარედ დამეჭირა მაუსი ან კლავიატურაზე მდუმარე ღილაკი.
პროექტი შედგება რამდენიმე ნაწილისგან:
- დისტანციური მართვა
- კომპიუტერული პროგრამული უზრუნველყოფა
- 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 მიმღები სიგნალს გადასცემს 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 მიმღების მოდული, როგორც სურათებში ჩანს:
- შეაერთეთ USB სათაური ან შიდა USB სლოტზე დედაპლატის კომპიუტერის შიგნით, შესაბამისი 4 მავთულიანი კაბელით ან გარედან USB სლოტთან სტანდარტული USB კაბელით. მეორე შემთხვევაში თქვენ უნდა დაეხმაროთ საკუთარ თავს რაღაცნაირად, მაგ. როგორც ჩანს მე -3 სურათზე შთაგონების მიზნით.
- მიამაგრეთ 5 ვ დენის კაბელი კომპიუტერის კორპუსში არსებული ენერგიის წყაროს 4-პინიან სათაურთან. ან ჩართეთ მოდული სხვა გზით გარე გამოყენების შემთხვევაში.
გადახედეთ დედაპლატის USB სოკეტის ქინძისთავების აღწერას. მე არ ვარ დარწმუნებული, შეესაბამება თუ არა გაყვანილობა რაიმე სახის სტანდარტს, ამიტომ უმჯობესია დავრწმუნდეთ. ჩემს შემთხვევაში არის ორი პინიანი მწკრივი, რომელსაც აქვს 5 ქინძისთავი ზედა რიგში და 4 ქინძისთავი ქვედაში. მარცხნიდან მარჯვნივ ქინძისთავებია + 5 V, D-, D +, Gnd. პირველი რიგის მე -5 პინი არ არის დაკავშირებული. მე დავამატე კაბელი, როგორც ჩანს მეორე სურათზე.
პროგრამული უზრუნველყოფა
გაუშვით პროგრამა ტერმინალში. თუ ყველაფერი სწორად მიდის, პროგრამის ბოლო შეტყობინება არის "ელოდება მონაცემებს …". როდესაც დისტანციური მართვის ღილაკს დააჭერთ, მიღებული კოდი გამოჩნდება ტერმინალში. ამ გზით თქვენ იცით, რომელი ღილაკი რომელი კოდს ასხივებს.
ახლა პროგრამირების რაღაცეები გელოდებათ, მაგრამ არ ინერვიულოთ. პროგრამის წყაროს კოდში მხოლოდ რამდენიმე რამ უნდა შეიცვალოს, რათა პროგრამა რეაგირებდეს თქვენს დისტანციურ მართვაზე. გახსენით ფაილი remotePC.c ტექსტურ რედაქტორში ან რაიმე IDE- ში, თუ მოგწონთ და შეცვალეთ ჩემი კოდები თქვენით. უბრალოდ დააჭირეთ ღილაკებს, რომელთა გამოყენებასაც აპირებთ თითოეული მოქმედებისათვის სათითაოდ. უბრალოდ დააკოპირეთ ტერმინალში ნაჩვენები კოდები და ჩასვით წყაროს კოდში შესაბამისი მოქმედებით.
როდესაც დაასრულებთ, შეწყვიტეთ პროგრამა და გადააკეთეთ კოდი ბრძანებით gcc -o remotePC remotePC.c. ხელახლა გაუშვით პროგრამა და ამიერიდან ის რეაგირებს თქვენს დისტანციურ კონტროლზე.
მე ვიყენებ ამ გზას პროგრამის მყარად კოდირებული მოქმედებებით, რადგან მე ვგულისხმობ უაზროდ დროის დაკარგვას პროექტის შემდგომი განვითარებისათვის სახელმწიფოში, როდესაც შესაძლებელია კოდების/მოქმედებების დამატება/შეცვლა მომხმარებლისთვის მოსახერხებელ გრაფიკულ გარემოში. მაგრამ თუ გსურთ ამის გაკეთება ან კიდევ უფრო მეტი შეგიძლიათ.
გირჩევთ:
LED RF დისტანციური მართვის დისტანციური მართვა "არაფრის"!: 5 ნაბიჯი
LED RF დისტანციური მართვის დისტანციური მართვა "არაფრის"!: ამ პროექტში მე გაჩვენებთ თუ როგორ უნდა გამოიყენოთ LED RF დისტანციური მართვის პულტი იმისათვის, რომ გააკონტროლოთ თითქმის ყველაფერი რაც გსურთ. ეს ნიშნავს, რომ ჩვენ უფრო ახლოს შევხედავთ RF დისტანციური გადაცემის პროცესს, წაიკითხავთ გაგზავნილ მონაცემებს Arduino µC– ით
დისტანციური Arduino დისტანციური მართვა: 5 ნაბიჯი
უსაფრთხო Arduino დისტანციური: ეს არის მაგალითი იმისა, თუ როგორ უნდა გააკეთოთ ულტრა უსაფრთხო უკაბელო (ავტოფარეხი) დისტანციური. ჩვეულებრივ დისტანციურ დისკებს აქვს მოძრავი კოდის ტიპის უსაფრთხოება, რომლის გვერდის ავლით ნებისმიერი მოწინავე ქურდი შეძლებს. ეს დისტანციური სისტემა ეყრდნობა 16 ბაიტიანი ღილაკის გამოყენებას, ასე რომ მისი გატეხვა იქნება
კომპიუტერის დისტანციური მართვა: 7 ნაბიჯი (სურათებით)
კომპიუტერის დისტანციური მართვა: შენიშვნა: ეს პროექტი გამოქვეყნდა 2006 წელს. გთხოვთ, ნახოთ ის მხოლოდ როგორც LEGACY პროექტი. იმის გამო, რომ არსებული პროგრამული უზრუნველყოფა მკვეთრად შეიცვალა, ახალი კომპიუტერების უმეტესობას აღარ აქვს COM პორტები. ეს პროექტი შეიცავს ყველაფერს იმის შესახებ, თუ როგორ უნდა მოხდეს ჩიპის კონფიგურაცია
დისტანციური დისტანციური მართვა: 11 ნაბიჯი (სურათებით)
დისტანციური მართვა: მე მყავს ახალშობილი ბავშვი და ის არ ფიქრობს, რომ მან უნდა დაიძინოს მანამ, სანამ მე და ჩემმა ცოლმა მასაც ვუსურვოთ. ერთი რამ, რაც მას ბედნიერს ხდის თავის საწოლში არის მობილური, რომელიც მის თავზეა ჩამოკიდებული. ასე რომ, როდესაც ის გაიღვიძებს, თუ ჩვენ გვჭირდება კიდევ 25 წუთი ან მეტი
კომპიუტერის დინამიკები: სადენიანი ხმის დისტანციური მართვა პარფიუმერული ხუფით: 19 ნაბიჯი
კომპიუტერის დინამიკები: სადენიანი ხმის დისტანციური მართვა პარფიუმერული ხუფით: (უპირველეს ყოვლისა: ბოდიში ჩემო ინგლისური მე ბრაზილიიდან …) გამარჯობა, დედაჩემმა იყიდა edifier 2.1 კომპიუტერის დინამიკი სადენიანი დისტანციური მართვის საშუალებით. (ფოტო 1) ეს არის ძალიან ლამაზი და მარტივი გამოსაყენებელი … მაგრამ ძვირი და ღილაკის მოცულობა ცოტა მცირეა … მე მომწონს დიდი მოცულობის სახელურები, როგორიცაა