Агуулгын хүснэгт:

Компьютерийн IR алсын удирдлага: 4 алхам
Компьютерийн IR алсын удирдлага: 4 алхам

Видео: Компьютерийн IR алсын удирдлага: 4 алхам

Видео: Компьютерийн IR алсын удирдлага: 4 алхам
Видео: Делаем вентиляцию и кондиционер в квартире. #19 2024, Оны зургадугаар сарын
Anonim
Компьютерийн IR алсын удирдлага
Компьютерийн IR алсын удирдлага

Бусад олон зорилгын хажуугаар би компьютерээ мультимедиа төв болгон ашиглаж байна. Заримдаа би буйдан дээр хөгжим сонсож, кино, зурагт үзэж байхдаа тэнэг реклам гарч ирэх бүртээ дууныхаа хэмжээг тохируулах эсвэл телевизийн сувгийг солихыг хүсдэггүй, эсвэл унтаж байх үед нь хүсдэг. чимээгүй байдал. Тиймээс би компьютераа алсын удирдлагатай стандарт удирдлагаар удирдахаар шийдсэн тул хулгана эсвэл гарны дуугүй товчлуурыг барьж авахын оронд товчлуурыг шууд дарах боломжтой боллоо.

Төсөл нь хэд хэдэн хэсгээс бүрдэнэ:

  1. Алсын удирдлага
  2. PC програм хангамж
  3. IR хүлээн авагч модуль

Алхам 1: Алсын удирдлага

Алсын удирдлага
Алсын удирдлага

Эхний зүйл - алсын удирдлага - үүнийг хийх нь тийм ч чухал биш юм. Өөрт таалагдсан IR хяналтыг ашиглаарай. Би зарж байгаа нэгийг IR хүлээн авагчийн хамт иж бүрдэл болгон ашигласан - зургийг үзнэ үү. Би энэ төрлийг сонгох цорын ганц шалтгаан бол үүнийг гэртээ аль хэдийн авсан байсантай холбоотой юм.

Алхам 2: Програм хангамж

Би терминал дээр ажилладаг GNU/Linux OS програмыг бүтээсэн. Эх кодыг үнэгүй татаж авах/ашиглах/хуваалцах/өөрчлөх боломжтой. Кодыг эмхэтгэхийн тулд терминал дахь gcc -o remotePC remotePC.c шиг командыг гаргана уу. Програмыг ажиллуулахын тулд./remotePC.

Энэхүү алхам дахь дараах мэдээллийг тухайн зүйл хэрхэн яаж ажиллахыг сонирхож буй хүмүүст зориулав.

Програмын тодорхойлолт

Програм нь эхлээд /dev /ttyACM0 эсвэл ttyACM1 файл байгаа эсэхийг шалгадаг. Хэрэв тийм бол файлын бүлгийн ID тэгээс ялгаатай эсэхийг шалгана. Энэ нь цуваа портыг энгийн хэрэглэгчээс уншиж, бичих боломжтой гэсэн үг юм. 0xAA 0x55 гэсэн утгатай хоёр байтыг порт өгөгдөл хүлээн авахад бэлэн байгаа гэж дохио өгч, ирж буй өгөгдлийг хадгалагдсан утгуудтай харьцуулдаг. Хэрэв тохирох нь олдвол урьдчилан тодорхойлсон үйлдлийг гүйцэтгэнэ.

Дууны түвшний хяналт

Хөтөлбөр нь дууг асаах/унтраах, системийн түвшинд дууны түвшинг нэмэгдүүлэх/бууруулах боломжтой. Энэ нь pactl програмыг ашигласнаар хэрэгждэг. Дараа нь тушаалууд дараах байдлаар харагдана.

pactl set-sink-mute 0 сэлгэх

pactl угаалтуур-эзэлхүүн 0 +10%

pactl угаалтуур-эзэлхүүн 0 -10%

Шаардлагатай бол шаардлагатай багцуудыг суулгана уу.

VLC медиа тоглуулагчийн хяналт

Хөтөлбөр нь аудио/видеог эхлүүлж/түр зогсоож, VLC медиа тоглуулагчийн тоглуулах жагсаалтад байгаа замыг өмнөх/дараагийн болгож өөрчлөх боломжтой. Энэ тохиолдолд ширээний автобусыг ашигладаг. Тушаалууд:

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. Player. Өмнөх

Алхам 3: IR хүлээн авагчийн модуль

IR хүлээн авагчийн модуль
IR хүлээн авагчийн модуль
IR хүлээн авагчийн модуль
IR хүлээн авагчийн модуль
IR хүлээн авагчийн модуль
IR хүлээн авагчийн модуль

Төслийн гурав дахь хэсэг нь хамгийн төвөгтэй боловч нэлээд энгийн хэсэг юм. Энэхүү санаа нь IR хүлээн авагч нь MCU руу дохио өгөх бөгөөд үүнийг өвөрмөц тоо болгон хувиргах болно. Дараа нь энэ дугаарыг USB -ээр дамжуулан компьютерт дамжуулах болно.

Модулийг компьютерийн хайрцагт суулгаж, эх хавтан дээрх USB үүрэнд кабелиар холбох зориулалттай. Хэрэв та USB -тэй гадаад холболтыг илүүд үзэж байгаа бол бага зэрэг тохируулга хийх шаардлагатай болно.

MCU

Би модулийг PIC16F1829 микроконтроллер дээр бүтээсэн. MCU -ийн сонголт тийм ч чухал биш бөгөөд хэрэв та эх кодыг тохируулах боломжтой бол өөр MCU ашиглаж болно. Би энэ PIC -ийг хоёр шалтгаанаар сонгосон. Нэгдүгээрт, би үүнийг бэлэн болгосон, хоёрдугаарт, янз бүрийн туршилтын төслүүдэд эрчимтэй ашигласнаас болж түүний тээглүүр хэсэгчлэн гэмтсэн байна. Тиймээс үүнийг бүрэн ашиглах боломжгүй болохоос нь өмнө байнгын төсөлд ашиглахыг хүссэн юм.:-)

IR хүлээн авагч

Модуль дээр суурилсан хоёрдахь хэсэг нь IR хүлээн авагч VS1838B бөгөөд эхний алхамд дурдсан хэсэг юм.

UART/USB хөрвүүлэгч

Гурав дахь хэсэг нь UCP/I2C/USB хөрвүүлэгч болох MCP2221 юм.

Даалгавар нь эдгээр 3 хэсгийг нэгтгэн IR алсын удирдлагаас дохиог хүлээн авч компьютерт шилжүүлэх модулийг бүтээх явдал юм.

Утас

Эхний зураг дээр талхны самбар дээр туршилтын хэлхээ байна. Хоёрдахь хэсэгт утаснуудын схем байна.

Бүрэлдэхүүн хэсгүүдийн жагсаалт

1 ширхэг PIC16F1829 (эсвэл өөр MCU)

1 ширхэг VS1838B (эсвэл бусад IR хүлээн авагч)

1 ширхэг MCP2221 (эсвэл бусад UART/USB хөрвүүлэгч)

2 ширхэг 4 зүү толгой

1 ширхэг 6 зүү толгой

1 PC эсэргүүцэл 100R

2 ширхэг резистор 10K

330R эсэргүүцэлтэй 2 ширхэг

1 pc конденсатор 470 nF

2 ширхэг электролитийн конденсатор 4.7 uF

1 pc унтраалга (заавал биш)

ПХБ -ийн угсралт

Схемийг ашиглан модулийг нэгтгэх. Та бүх нийтийн хавтанг ашиглах эсвэл захиалгат ПХБ үүсгэх боломжтой. Хэрэв ийм зүйл тохиолдвол би доорх архивт байгаа KiCad файлуудыг өгсөн болно.

Програм хангамж

MPLAB X IDE болон XC8 хөрвүүлэгчийг ашиглан бичсэн PIC -ийн эх кодыг доор татаж авах боломжтой.

Эх кодын тэмдэглэл

Хөтөлбөр яг юу хийж байгааг мэдэхийг хүсч буй хүмүүст дараах мөрүүд байна.

Бүх тохиргоог хийсний дараа улаан LED асаж, MCU нь 0x55AA өгөгдлийг хүлээж байна. Үүний дараа LED нь ногоон болж, MCU нь тасалдал ашиглан IR хүлээн авагчийн дохиог илрүүлж эхэлдэг. Энэ нь дохио өндөр ба доод түвшинд байх хугацааны интервалыг хэмжиж бүртгэдэг. Дараа нь эдгээр хугацааг компьютерт илгээдэг 32 битийн тоо болгон өөрчилдөг.

Цаг ба эцсийн дугаар хоорондын хамаарлыг NEC протоколоор тодорхойлно.

Алхам 4: Төхөөрөмжийг хэрхэн ашиглах талаар

Төхөөрөмжийг хэрхэн ашиглах талаар
Төхөөрөмжийг хэрхэн ашиглах талаар
Төхөөрөмжийг хэрхэн ашиглах талаар
Төхөөрөмжийг хэрхэн ашиглах талаар
Төхөөрөмжийг хэрхэн ашиглах талаар
Төхөөрөмжийг хэрхэн ашиглах талаар

Firmware

Програмыг PIC дээр байршуулна уу. Би PICkit 3 програмист ашигладаг.

Техник хангамж

Зураг дээр үзүүлсэн шиг IR хүлээн авагчийн модулийг суулгана уу.

  1. USB толгойг зохих 4 утастай компьютерын эх хавтан дээрх дотоод USB үүрэнд эсвэл стандарт USB кабель бүхий USB үүрэнд холбоно уу. Хоёрдахь тохиолдолд та ямар нэгэн байдлаар өөртөө туслах хэрэгтэй болно. урам зориг өгөхийн тулд 3 -р зурагт үзүүлсэн шиг.
  2. 5 вольтын цахилгаан кабелийг 4 хайрцагны толгой руу компьютерийн хайрцгийн дотор оруулдаг. Эсвэл гадны хэрэглээнд модулийг өөр аргаар асааж болно.

Эх хавтангийн USB залгуурын тайлбарыг үзнэ үү. Утас нь ямар нэгэн стандартад нийцэж байгаа эсэхийг би мэдэхгүй байна, тиймээс үүнийг шалгах нь дээр. Миний хувьд дээд эгнээнд 5, доод хэсэгт 4 голтой хоёр зүү мөр байна. Зүүнээс баруун тийш зүү нь + 5 V, D-, D +, Gnd байна. Эхний эгнээний 5 -р зүү холбогдоогүй байна. Би кабелийг хоёр дахь зурагт үзүүлсэн шиг холбосон.

Програм хангамж

Програмыг терминал дээр ажиллуулна уу. Хэрэв бүх зүйл зөв хийгдсэн бол програмын хамгийн сүүлийн мессеж бол "өгөгдлийг хүлээж байна …" гэсэн үг юм. Одоо та алсын удирдлага дээрх товчлуурыг дарахад хүлээн авсан код терминал дээр гарч ирнэ. Ингэснээр та аль товчлуур аль кодыг гаргадаг болохыг мэдэх болно.

Одоо програмчлалын зарим зүйл таныг хүлээж байгаа боловч санаа зовох хэрэггүй. Хөтөлбөр нь таны алсын удирдлагад хариу өгөхийн тулд програмын эх кодод хэдхэн зүйлийг өөрчлөх шаардлагатай байна. Хэрэв та дуртай бол миний кодыг өөрийн кодоор сольж, текст засварлагч эсвэл IDE дээр remotePC.c файлыг нээнэ үү. Үйлдэл бүрийн хувьд ашиглах гэж буй товчлууруудаа нэг нэгээр нь дарахад л хангалттай. Терминал дээр гарч ирсэн кодыг хуулж аваад холбогдох код бүхий эх код руу буулгана уу.

Та дууссаны дараа програмыг цуцалж, кодыг gcc -o remotePC remotePC.c тушаалаар дахин эмхэтгэнэ. Хөтөлбөрийг дахин ажиллуул, энэ нь одооноос таны алсын удирдлагад хариу өгөх болно.

Жишээлбэл, хэрэглэгчийн ээлтэй график орчинд код/үйлдлийг нэмэх/өөрчлөх боломжтой болсон тохиолдолд төслийг цаашид хөгжүүлэхэд цаг заваа үрэх нь утгагүй санагдаж байгаа тул би програмын хатуу кодчилсон үйлдлүүдийг ашигладаг. Гэхдээ хэрэв та үүнийг хийхийг хүсч байвал эсвэл бүр илүү ихийг хийж чадна.

Зөвлөмж болгож буй: