Мазмұны:

Компьютердің ИҚ қашықтан басқару пульті: 4 қадам
Компьютердің ИҚ қашықтан басқару пульті: 4 қадам

Бейне: Компьютердің ИҚ қашықтан басқару пульті: 4 қадам

Бейне: Компьютердің ИҚ қашықтан басқару пульті: 4 қадам
Бейне: Arduino ҚАЗАҚША [25] ИҚ қабылдағыш (ПУЛЬТ) 2024, Маусым
Anonim
Компьютердің ИҚ қашықтан басқару құралы
Компьютердің ИҚ қашықтан басқару құралы

Көптеген басқа мақсаттардан басқа мен компьютерімді мультимедиялық орталық ретінде қолданамын. Кейде мен диванға жатып музыка тыңдаймын, кино немесе теледидар көремін, бірақ ақымақ жарнамалар шыққанда, мен ұйықтап жатып, дыбыс деңгейін реттеуге немесе телеарнаны өзгертуге ұйқым келмейді. тыныштық. Сондықтан мен компьютерді қашықтан басқару пультінің стандартты инфрақызыл пультімен басқаруға шешім қабылдадым, сондықтан мен тінтуірді немесе пернетақтаның дыбыссыз пернесін ашудың орнына батырманы бірден баса аламын.

Жоба бірнеше бөліктен тұрады:

  1. Қашықтықтан басқару
  2. ДК бағдарламалық қамтамасыз ету
  3. IR қабылдағыш модулі

1 -қадам: Қашықтан басқару құралы

Қашықтан басқару құралы
Қашықтан басқару құралы

Бірінші элемент - қашықтан басқару құралы - бұл маңызды емес. Сізге ұнайтын кез келген IR бақылауын қолданыңыз. Мен IR қабылдағышпен бірге жиынтық ретінде сатылатынды қолдандым - суретті қараңыз. Мен бұл түрді таңдағанымның жалғыз себебі - менде үйде болғандықтан.

2 -қадам: Бағдарламалық қамтамасыз ету

Мен терминалда жұмыс істейтін GNU/Linux ОЖ үшін бағдарлама жасадым. Бастапқы кодты жүктеу/пайдалану/бөлісу/өзгерту тегін. Кодты құрастыру үшін терминалда gcc -o remotePC remotePC.c сияқты пәрменді шығарыңыз. Бағдарламаны іске қосу үшін./remotePC.

Бұл қадамдағы келесі ақпарат заттардың қалай жұмыс істейтініне қызығушылық танытқандарға арналған.

Бағдарламаның сипаттамасы

Бағдарлама алдымен /dev /ttyACM0 немесе ttyACM1 файлының бар -жоғын тексереді. Олай болса, файлдың топ идентификаторы нөлден өзгеше екендігі тексеріледі. Бұл сериялық портты қарапайым пайдаланушыдан оқи алатынын және жазатындығын білдіреді. Бағдарлама деректерді қабылдауға дайын екенін білдіру үшін портқа 0xAA 0x55 мәндері бар екі байт жазылады, кіріс деректері сақталған мәндермен салыстырылады. Егер сәйкестік табылса, алдын ала анықталған әрекет орындалады.

Дыбыс деңгейін бақылау

Бағдарлама дыбысты қосуға/өшіруге, жүйе деңгейінде дыбыс деңгейін жоғарылатуға/төмендетуге қабілетті. Бұл pactl бағдарламасының көмегімен жүзеге асады. Содан кейін командалар келесідей болады:

pactl set-sink-mute 0 ауыстыру

пакет-раковина-көлемі 0 +10%

пакет-раковина-көлемі 0 -10%

Қажет болса, қажетті пакеттерді орнатыңыз.

VLC медиа ойнатқышын басқару

Бағдарлама сонымен қатар аудионы/бейнені бастауға/кідіртуге және VLC Media Player ойнату тізіміндегі жолды алдыңғы/келесіге өзгертуге мүмкіндік береді. Бұл жағдайда жұмыс үстелі шинасы қолданылады. Командалар:

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. Келесі

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

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Плейер. Алдыңғы

3 -қадам: IR қабылдағыш модулі

IR қабылдағыш модулі
IR қабылдағыш модулі
IR қабылдағыш модулі
IR қабылдағыш модулі
IR қабылдағыш модулі
IR қабылдағыш модулі

Жобаның үшінші бөлігі - ең күрделі, бірақ өте қарапайым. ИД қабылдағыш MCU сигналын шығарады, бұл оны бірегей санға айналдырады. Бұл нөмір компьютерге USB арқылы жіберіледі.

Модуль дербес корпустың ішіне орнатылады және кабель арқылы аналық платадағы USB ұясына қосылады. Егер сіз USB -ге сыртқы қосылуды қаласаңыз, сізге кішкене түзетулер енгізу қажет болады.

MCU

Мен модульді PIC16F1829 микроконтроллеріне салдым. MCU таңдау маңызды емес, егер сіз бастапқы кодты реттей алсаңыз, кез келген басқа MCU қолдана аласыз. Мен бұл суретті екі себеп бойынша таңдадым. Біріншіден, менде қол жетімді болды, екіншіден, түйреуіштер әртүрлі тестілеу жобаларында қарқынды қолданудан ішінара зақымдалды. Сондықтан мен оны мүлде жарамсыз болғанша тұрақты жобада қолданғым келді.:-)

IR қабылдағыш

Модульге негізделген екінші бөлім - VS1838B инфрақызыл қабылдағышы - 1 -қадамда айтылған.

UART/USB түрлендіргіші

Үшінші бөлім - UCP/I2C/USB түрлендіргіші болып табылатын MCP2221.

Міндет - осы 3 бөлікті біріктіріп, IR қашықтан басқару пультінен сигналдарды қабылдай алатын және оларды компьютерге тапсыратын модульді құру.

Сымдар

Бірінші суретте нан тақтасында сынақ схемасы бар. Екіншісінде сымдардың схемасы бар.

Бөлшектердің тізімі

1 дана PIC16F1829 (немесе кез келген басқа MCU)

1 дана VS1838B (немесе кез келген басқа IR қабылдағыш)

1 дана MCP2221 (немесе кез келген басқа UART/USB түрлендіргіші)

2 дана 4 істікшелі тақырып

1 дана 6 істікшелі тақырып

1 дана резистор 100R

2 дана резистор 10К

2 дана резистор 330R

1 дана конденсатор 470 нФ

2 дана электролиттік конденсатор 4,7 uF

1 дана қосқыш (міндетті емес)

ПХД құрастыру

Схеманы қолдана отырып, модульді біріктіріңіз. Сіз әмбебап тақтаны қолдана аласыз немесе теңшелетін ПХД жасай аласыз. Егер соңғы жағдай болса, мен төмендегі мұрағатта KiCad файлдарын ұсындым.

Микробағдарлама

MPLAB X IDE мен XC8 компиляторының көмегімен жазылған PIC бастапқы коды төменде жүктеу үшін қол жетімді.

Бастапқы код ескертеді

Бағдарламаның нақты не істейтінін білгісі келетіндер үшін келесі жолдар.

Барлық параметрлер орнатылғаннан кейін қызыл жарық диоды қосылады және MCU 0x55AA деректерін күтеді. Осыдан кейін жарық диоды жасыл түске боялады және MCU үзіліс көмегімен IR қабылдағыштан сигналды анықтай бастайды. Ол сигналдың жоғарғы және төменгі деңгейдегі уақыт аралығын өлшейді және жазады. Бұл уақыттар ДК-ге жіберілетін 32 биттік нөмірге айналады.

Уақыт пен соңғы сан арасындағы байланыс NEC хаттамасымен берілген.

4 -қадам: құрылғыны пайдалану әдісі

Құрылғыны пайдалану әдісі
Құрылғыны пайдалану әдісі
Құрылғыны пайдалану әдісі
Құрылғыны пайдалану әдісі
Құрылғыны пайдалану әдісі
Құрылғыны пайдалану әдісі

Микробағдарлама

Микробағдарламаны PIC -ге жүктеңіз. Мен PICkit 3 бағдарламашысын қолданамын.

Аппараттық құрал

Суретте көрсетілгендей IR қабылдағыш модулін орнатыңыз:

  1. USB тақырыбын 4-сымды кабельмен ДК корпусындағы аналық платаның ішкі USB ұяшығына немесе стандартты USB кабелі бар USB ұясына жалғаңыз. Екінші жағдайда сіз өзіңізге қандай да бір түрде көмектесуіңіз керек, мысалы. шабыт алу үшін 3 -суретте көрсетілгендей.
  2. 5 В қуат кабелін компьютер корпусының ішіндегі қуат көзінен 4 істікшеге қосыңыз. Немесе сырттан қолданылған жағдайда модульді басқа жолмен қосыңыз.

Аналық платаның USB ұясының түйреуіштерінің сипаттамасын қараңыз. Мен сымдардың қандай да бір стандартқа сәйкес келетініне сенімді емеспін, сондықтан сенімді болу керек. Менің жағдайда, жоғарғы жолда 5 түйреуіш пен төменгі жағында 4 түйреуіш бар екі түйреуіш бар. Солдан оңға қарай түйреуіштер + 5 V, D-, D +, Gnd. Бірінші қатардағы 5 -ші түйреуіш қосылмаған. Мен кабельді екінші суретте көрсетілгендей жалғадым.

Бағдарламалық қамтамасыз ету

Бағдарламаны терминалда іске қосыңыз. Егер бәрі дұрыс болса, бағдарламаның соңғы хабарламасы - «деректерді күту …». Енді сіз қашықтан басқару пультіндегі түймені басқанда, қабылданған код терминалда пайда болады. Осылайша сіз қай батырманың қай кодты шығаратынын білесіз.

Енді сізді бағдарламалық жасақтама күтеді, бірақ алаңдамаңыз. Бағдарламаның қашықтан басқару пультіне жауап беру үшін бағдарламаның бастапқы кодында бірнеше нәрсені өзгерту қажет. Егер сізге ұнайтын болса және кодты өзіңіздікімен алмастырсаңыз, remotePC.c файлын мәтіндік редакторда немесе IDE -де ашыңыз. Әр әрекет үшін пайдаланғыңыз келетін түймелерді бір -бірден басыңыз. Терминалда пайда болатын кодтарды көшіріп, оларды бастапқы кодқа сәйкес әрекеті бар жерге қойыңыз.

Аяқтағаннан кейін бағдарламаны тоқтатыңыз және gcc -o remotePC remotePC.c пәрменімен кодты қайта құрастырыңыз. Бағдарламаны қайтадан іске қосыңыз және ол сіздің қашықтан басқару пультіне жауап береді.

Мен бұл әдісті бағдарламадағы кодталған әрекеттермен қолданамын, өйткені, мысалы, пайдаланушыға ыңғайлы графикалық ортада кодтарды/әрекеттерді қосу/өзгерту мүмкін болған жағдайда, жобаны әрі қарай дамытуға уақыт жоғалтудың мағынасы жоқ деп ойлаймын. Бірақ егер сіз мұны істегіңіз келсе немесе одан да көп жасай аласыз.

Ұсынылған: