Съдържание:

Компютърното IR дистанционно управление: 4 стъпки
Компютърното IR дистанционно управление: 4 стъпки

Видео: Компютърното IR дистанционно управление: 4 стъпки

Видео: Компютърното IR дистанционно управление: 4 стъпки
Видео: wifi пульт для IR и RF кодов Broadlink RM4C Pro, работа в Home Assistant - управляем кондиционером 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. Ако е така, груповият идентификатор на файла се проверява за различен от нула. Това означава, че серийният порт може да бъде прочетен и записан от обикновения потребител. След това два байта със стойности 0xAA 0x55 се записват на порта, за да сигнализират, че програмата е готова да получи данните. Входящите данни се сравняват със съхранените стойности. Ако съвпадението е намерено, предварително дефинираното действие се изпълнява.

Контрол на силата на звука

Програмата е в състояние да включи/изключи звука, да увеличи/намали силата на звука на системно ниво. Това се постига с използването на програмата pactl. След това командите изглеждат така:

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. Previous

Стъпка 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 превключвател за компютър (по избор)

Монтаж на печатни платки

Съберете модула с помощта на схемата. Можете да използвате универсалната платка или да създадете персонализирана печатна платка. Ако последното е така, предоставих KiCad файловете в архива по -долу.

Фърмуерът

Изходният код за PIC, написан с използването на MPLAB X IDE и компилатора XC8, е достъпен за изтегляне по -долу.

Бележките на изходния код

Следните редове са за тези, които биха искали да знаят какво точно прави програмата.

След като всички настройки са направени, червеният светодиод свети и MCU чака данните 0x55AA. След това светодиодът става зелен и MCU започва да открива сигнала от IR приемника с помощта на прекъсванията. Той измерва и записва времевите интервали, в които сигналът е във високи и ниски нива. След това тези времена се трансформират в 32-битовия номер, който се изпраща на компютъра.

Връзката между времената и крайното число е дадена от протокола NEC.

Стъпка 4: Как да използвате устройството

Как да използвате устройството
Как да използвате устройството
Как да използвате устройството
Как да използвате устройството
Как да използвате устройството
Как да използвате устройството

Фърмуер

Качете фърмуера на PIC. Използвам програмист PICkit 3.

Хардуер

Инсталирайте модула на IR приемника, както се вижда на снимките:

  1. Свържете USB заглавката или към вътрешния USB слот на дънната платка в кутията на компютъра с подходящ 4-жилен кабел или външно към USB слота със стандартния USB кабел. Във втория случай трябва да си помогнете по някакъв начин, напр. както се вижда на третата снимка за вдъхновение.
  2. Прикрепете 5 V захранващия кабел от източника на захранване вътре в кутията на компютъра към 4-пиновия хедър. Или захранвайте модула по друг начин в случай на външна употреба.

Потърсете описанието на пиновете на USB гнездото на дънната платка. Не съм сигурен дали окабеляването следва някакъв стандарт, така че е по -добре да се уверите. В моя случай има два щифтови реда с 5 щифта в горния ред и 4 щифта в долния. Отляво надясно щифтовете са + 5 V, D-, D +, Gnd. Петият извод в първия ред не е свързан. Прикрепих кабела, както се вижда на втората снимка.

Софтуер

Стартирайте програмата в терминала. Ако всичко върви както трябва, последното съобщение на програмата е „чакане на данни …“. Сега, когато натиснете бутона на дистанционното управление, полученият код ще се появи в терминала. По този начин ще знаете кой бутон излъчва кой код.

Сега ви очаква програмиране, но не се притеснявайте. Само няколко неща трябва да бъдат променени в изходния код на програмата, така че програмата да реагира на вашето дистанционно управление. Отворете файла remotePC.c в текстовия редактор или в някоя IDE, ако желаете и заменете моите кодове с вашите. Просто натиснете бутоните, които възнамерявате да използвате за всяко действие един по един. Просто копирайте кодовете, които се появяват в терминала и ги поставете в изходния код на мястото със съответното действие.

Когато приключите, прекратете програмата и прекомпилирайте кода с команда gcc -o remotePC remotePC.c. Стартирайте програмата отново и тя ще отговаря на вашето дистанционно управление отсега нататък.

Използвам този начин с твърдо кодирани действия в програмата, тъй като намирам за безсмислено да губя времето си с по -нататъшно развитие на проекта до състоянието, когато е възможно да се добавят/променят кодове/действия например в удобната за потребителя графична среда. Но ако искате да направите това или дори повече, можете.

Препоръчано: