نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی
  • خانه
  • جالب هست
  • طرحی برای خواندن سیگنال مادون قرمز به کامپیوتر. کنترل آردوینو با کنترل از راه دور IR

طرحی برای خواندن سیگنال مادون قرمز به کامپیوتر. کنترل آردوینو با کنترل از راه دور IR

مقالات زیادی در اینترنت در مورد نحوه ساخت ریموت کنترل تلویزیون در آردوینو وجود دارد، اما من برای کنترل تلویزیون و پخش کننده رسانه خود به یک کنترل از راه دور جهانی نیاز داشتم. مزیت اصلی کنترل از راه دور جهانی من این است که دکمه های برنامه برای تلفن اندرویدی دو منظوره هستند، اما اتفاقاً به ویدیو نگاه کنید.



کنترل از راه دور بسیار راحت است زیرا روی صفحه نمایش تقریباً از همان دکمه ها برای کنترل تلویزیون و پخش کننده استفاده می شود. یک تفاوت این است که " AV"در حالت کنترل تلویزیون، دکمه تغییر می کند" "(توقف) هنگام تغییر به حالت کنترل پخش کننده. تصاویر دو حالت را نشان می دهند، در سمت چپ حالت کنترل تلویزیون، در سمت راست حالت کنترل پخش کننده است.

خوب، حالا من کمی در مورد ایجاد چنین کنترل از راه دور به شما خواهم گفت. برای دستگاه از یک کنترل از راه دور تلویزیون ERGO و یک کنترل از راه دور پخش کننده رسانه DUNE HD TV101W استفاده کردم.

برای دریافت اطلاعات از کنسول ها، از سنسور مادون قرمز TSOP1138 (آنالوگ TSOP4838) با فرکانس کاری 38 کیلوهرتز استفاده کردم و آن را به صورت زیر به برد آردوینو متصل کردم:

این طرح برای تعیین رمزگذاری انتقال داده ها و خواندن کد دکمه های کنترل از راه دور مورد نیاز است.

در طرح، در خط int RECV_PIN = 11; پین خود را در شماره 4 نشان می دهیم

پس از پر کردن طرح، "پورت مانیتور" را باز کرده و با فشار دادن دکمه های روی ریموت، به داده های دریافتی نگاه کنید.

تصویر نمونه ای از اسکن دکمه پاور از ریموت کنترل تلویزیون و ریموت پخش کننده را نشان می دهد. حالا یک جدول برای کدهای دکمه ایجاد می کنیم.

من این کار را مانند عکس بالا انجام دادم. زیر کتیبه تلویزیونکدهای دکمه کنترل از راه دور تلویزیون؛ زیر کتیبه بازیکن- کدهای کنترل از راه دور پخش کننده رسانه.

حالا گیرنده سیگنال های مادون قرمز خود را از برد آردوینو جدا می کنیم و ماژول بلوتوث HC-05 و LED مادون قرمز را مطابق نمودار عکس به آن وصل می کنیم.

پس از آن، مستقیماً به طرح بروید.

طرح

#عبارتند از IRsend irsend; int y = 1; تنظیم void () (Serial.begin (9600)؛) حلقه خالی () (اگر (Serial.available ()> 0) (int x = Serial.read ()؛ if (x == 49) (y = 1; ) if (x == 50) (y = 2;) if (y == 1) (// کدهای دکمه برای کنترل تلویزیون اگر (x == 97) (irsend.sendNEC (0x807F08F7, 32)؛ تاخیر (40 )) if (x == 98) (irsend.sendNEC (0x807FA857, 32)؛ تأخیر (40);) if (x == 99) (irsend.sendNEC (0x807F708F, 32); تأخیر (40);) اگر (x == 100) (irsend.sendNEC (0x807FF00F, 32); تأخیر (40)؛) اگر (x == 101) (irsend.sendNEC (0x807F30CF, 32)؛ تأخیر (40);) اگر (x == 102) (irsend.sendNEC (0x807FB04F, 32); تاخیر (40)؛) اگر (x == 103) (irsend.sendNEC (0x807F9867, 32)؛ تاخیر (40)؛) اگر (x == 104) (irsend .sendNEC (0x807F58A7, 32)؛ تاخیر (40)؛) if (x == 105) (irsend.sendNEC (0x807FD827, 32)؛ تاخیر (40)؛) اگر (x == 106) (irsend.sendNEC (0x807F) ، 32؛ تاخیر (40)؛) اگر (x == 107) (irsend.sendNEC (0x807F48B7, 32)؛ تاخیر (40)؛) اگر (x == 108) (irsend.sendNEC (0x807FB847, 32); تاخیر (40)؛) اگر (x == 109) (irsend.sendNEC (0x807F6897, 32)؛ تاخیر (40); )) if (y == 2) (// کدهای دکمه های کنترل از راه دور از پخش کننده رسانه if (x == 97) (irsend.sendNEC (0xFDC23D, 32)؛ تاخیر (40)؛) اگر (x == 98) (irsend. sendNEC (0xFDE01F, 32)؛ تاخیر (40)؛) if (x == 99) (irsend.sendNEC (0xFD18E7, 32); تاخیر (40);) if (x == 100) (irsend .sendNEC (0xFDE817, 32); تاخیر (40)؛) اگر (x == 101) (irsend.sendNEC (0xFDA857, 32)؛ تاخیر (40)؛) اگر (x == 102) (irsend.sendNEC (0xFD6897 ، 32؛ تاخیر (40)؛) اگر (x == 103) (irsend.sendNEC (0xFDA857, 32)؛ تاخیر (40)؛) اگر (x == 104) (irsend.sendNEC (0xFD6897, 32); تأخیر (40)؛ ) اگر (x == 105) (irsend.sendNEC (0xFDE817, 32)؛ تأخیر (40);) اگر (x == 106) (irsend.sendNEC (0xFD18E7, 32)؛ تأخیر (40) ؛) if (x == 107) (irsend.sendNEC (0xFD9867, 32)؛ تاخیر (40)؛) if (x == 108) (irsend.sendNEC (0xFD28D7, 32)؛ تاخیر (40)؛) اگر ( x == 109) (irsend.sendNEC (0xFD20DF, 32)؛ تاخیر (40)؛))))


در طرح، باید کدهای دکمه ها را ویرایش کنید، یعنی در خطوط:

اگر (x == 97) (irsend.sendNEC (0x807F08F7, 32)؛ تاخیر (40);
مقدار 807F08F7 را به:

اگر (y == 1) (// کدهای دکمه برای کنترل از راه دور تلویزیون if (x == 97) (irsend.sendNEC (0x12345678, 32)؛ تاخیر (40)؛)
جایی که 12345678 کد دکمه شماست.

پس از ویرایش طرح با استفاده از کدهای دکمه ای خود، طرح را در برد آردوینو آپلود کرده و به نصب اپلیکیشن روی گوشی ادامه دهید.

ما بلوتوث را در گوشی روشن می کنیم، به دنبال دستگاه خود می گردیم، یک جفت ایجاد می کنیم، سپس برنامه را اجرا می کنیم Pultروی تلفن

هنگامی که راه اندازی شد، یک صفحه نمایش با نماد بلوتوث قرمز در گوشه سمت راست پایین خواهیم داشت که نشان می دهد ما به دستگاه خود متصل نیستیم.

پس از آن بر روی این نماد کلیک کنید. ما باید یک پنجره با لیستی از تمام دستگاه های بلوتوث موجود داشته باشیم، جایی که دستگاه خود را برای اتصال انتخاب می کنیم.

اکنون به صفحه اصلی بازگشته ایم و می توانیم تلویزیون را کنترل کنیم:

برای جابجایی به حالت کنترل، باید دکمه با کتیبه را فشار دهیم "بازیکن"... همانطور که قبلاً گفتم، دکمه ما با عنوان "AV" به " ":

برای قطع ارتباط با دستگاه ما، کافی است دکمه «Power» را برای چند ثانیه نگه دارید.

خوب، چند عکس از دستگاه تمام شده من.

معلوم شد، به نظر می رسد، بد نیست. منتظر نظرات در مورد مقاله هستم.

گیرنده IR و کنترل از راه دور مادون قرمز رایج ترین و ساده ترین راه برای کنترل تجهیزات الکترونیکی هستند. طیف مادون قرمز تابش با چشم انسان قابل مشاهده نیست، اما گیرنده های IR که در دستگاه های الکترونیکی تعبیه شده اند به خوبی دریافت می شود. ماژول های راه دور Arduino ir برای کنترل تجهیزات مختلف در خط دید استفاده می شوند.

استفاده گسترده از فرستنده های IR به دلیل هزینه کم، سادگی و سهولت استفاده امکان پذیر شده است. تابش IR در محدوده 750 تا 1000 میکرون قرار دارد - این نزدیکترین بخش طیف به نور مرئی است. در ناحیه مادون قرمز، خواص نوری مواد مختلف می تواند تغییر کند. به عنوان مثال، برخی از شیشه ها در برابر اشعه IR مات می شوند، در حالی که پارافین، برعکس، در طیف IR شفاف است.

تشعشعات با کمک مواد عکاسی خاص ثبت می شود که بر اساس آن گیرنده ها ساخته می شوند. منبع تابش مادون قرمز، علاوه بر اجسام گرم شده (خورشید، لامپ های رشته ای یا شمع ها)، می تواند دستگاه های حالت جامد - LED های IR، لیزرها باشد. تابش در محدوده مادون قرمز دارای تعدادی ویژگی است که به لطف آنها استفاده از آنها در کنترل از راه دور راحت است:

  • ساطع کننده های حالت جامد (IR LED) ارزان و جمع و جور هستند.
  • اشعه مادون قرمز توسط چشم انسان درک یا ثبت نمی شود.
  • گیرنده های IR نیز ارزان و کوچک هستند.
  • تداخل کم به عنوان فرستنده و گیرنده بر روی یک فرکانس تنظیم می شوند.
  • هیچ تاثیر منفی بر سلامت انسان ندارد.
  • بازتاب بالا از اکثر مواد.
  • فرستنده های IR بر عملکرد دستگاه های دیگر تأثیر نمی گذارد.

عملیات کنترل از راه دور به شرح زیر انجام می شود. هنگامی که دکمه فشار داده می شود، سیگنال در نور مادون قرمز کدگذاری می شود، گیرنده آن را دریافت می کند و عمل مورد نیاز را انجام می دهد. اطلاعات به عنوان یک دنباله منطقی از انفجارهای پالس با فرکانس معین کدگذاری می شود. گیرنده این توالی را دریافت می کند و داده ها را تغییر شکل می دهد. برای دریافت سیگنال، از یک ریزمدار استفاده می شود که شامل یک آشکارساز نوری (فتودیود)، تقویت کننده ها، یک فیلتر گذر باند، یک دمودولاتور (یک آشکارساز که به شما امکان می دهد پوشش سیگنال را انتخاب کنید) و یک ترانزیستور خروجی است. همچنین دارای فیلترهای الکتریکی و نوری است. چنین دستگاه هایی تا فاصله 40 متری کار می کنند. روش IR برای انتقال داده ها در بسیاری از دستگاه ها وجود دارد: در لوازم خانگی، تجهیزات صنعتی، کامپیوترها، خطوط فیبر نوری.

گیرنده آردوینو IR

برای خواندن سیگنال IR، به خود برد آردوینو، تخته نان برد، گیرنده سیگنال IR و جامپرها نیاز دارید. گیرنده های مختلف زیادی وجود دارد، اما بهتر است از TSOP312 یا دیگر مناسب برای آردوینو استفاده کنید. داده ها از کنسول به گیرنده می توانند با استفاده از پروتکل RC5 یا NEC منتقل شوند.

برای تعیین اینکه کدام پا متعلق به کدام پا است، باید از سمت گیرنده به سنسور نگاه کنید. سپس روی گیرنده کنتاکت مرکزی زمین است، در سمت چپ خروجی به میکروکنترلر، در سمت راست منبع تغذیه است.

برای راحتی، می توان از ماژول های آماده گیرنده IR استفاده کرد.

اتصال گیرنده IR به آردوینو

خروجی های IR گیرنده به آردوینو به پورت های GND، 5 ولت و ورودی دیجیتال متصل می شوند. نمودار اتصال سنسور به یازدهمین پایه دیجیتال در زیر نشان داده شده است.

مدار با ماژول گیرنده مادون قرمز به این صورت است:


کتابخانه هایی برای کار با IR

برای کار با دستگاه های IR می توانید از کتابخانه IRremote استفاده کنید که ساخت سیستم های کنترل را ساده می کند. می توانید کتابخانه را دانلود کنید. پس از دانلود، فایل ها را در پوشه \ arduino \ libraries کپی کنید. برای اتصال به طرح کتابخانه خود، باید فایل هدر #include را اضافه کنید .

برای خواندن اطلاعات، از مثال IRrecvDumpV2 از کتابخانه استفاده می شود. اگر کنترل از راه دور قبلاً در لیست شناسایی شده وجود داشته باشد، اسکن لازم نیست. برای خواندن کدها، باید ARDuino IDE را راه اندازی کنید و نمونه IRrecvDemo را از IRremote باز کنید.

همچنین یک کتابخانه دوم برای کار با سیگنال های IR وجود دارد - IRlib. از نظر عملکرد مشابه قبلی است. در مقایسه با IRremote، IRlib مثالی برای تعیین فرکانس سنسور IR دارد. اما استفاده از کتابخانه اول ساده‌تر و راحت‌تر است.

پس از بارگذاری کتابخانه، می توانید شروع به خواندن سیگنال های دریافتی کنید. برای این کار از کد زیر استفاده می شود.

دستور decode_results برای نامگذاری سیگنال حاصل به متغیر نتایج استفاده می شود.

در کد، باید "HEX" را به "DEC" بازنویسی کنید.

سپس پس از بارگذاری برنامه، باید مانیتور سریال را باز کرده و دکمه های ریموت را فشار دهید. کدهای مختلفی روی صفحه ظاهر می شوند. باید یادداشت کنید کد دریافتی با کدام دکمه مطابقت دارد. نوشتن داده های به دست آمده در یک جدول راحت تر است. سپس این کد را می توان در برنامه نوشت تا بتوانید دستگاه را کنترل کنید. کدها در حافظه خود برد arduino EEPROM نوشته می شوند که بسیار راحت است، زیرا لازم نیست هر بار که کنترل از راه دور را روشن می کنید دکمه ها را برنامه ریزی کنید.

این اتفاق می افتد که هنگام بارگیری یک برنامه، خطای "TDK2 was notified in his scope" صادر می شود. برای رفع آن، باید به اکسپلورر بروید، به پوشه ای که برنامه Arduino IDE در آن نصب شده است بروید و فایل های IRremoteTools.cpp و IRremoteTools.h را حذف کنید. پس از آن، باید برنامه را دوباره در میکروکنترلر بارگذاری کنید.

نتیجه

استفاده از ریموت آردوینو ir زندگی را برای کاربر آسان تر می کند. یک تلفن همراه، تبلت یا رایانه می تواند به عنوان یک کنترل از راه دور عمل کند - تنها چیزی که نیاز دارید نرم افزار خاصی است. با کمک آردوینو می توانید تمام کنترل ها را متمرکز کنید. شما می توانید چندین عمل را همزمان با یک دکمه روی کنترل از راه دور انجام دهید - به عنوان مثال، تلویزیون و Blu-Ray را همزمان روشن کنید.

هنگام ایجاد دستگاه هایی برای کار با ریموت های IR، ابزاری برای ضبط و تجزیه و تحلیل سیگنال های IR بسیار ضروری است. در حالت ایده‌آل، چنین ابزاری می‌تواند یک اسیلوسکوپ دیجیتال یا یک تحلیلگر منطقی باشد، اما همه این دستگاه‌ها را ندارند و خرید ویژه آن گران است. چگونه بودن؟ یک راه حل بسیار ساده وجود دارد - کارت صدای کامپیوتر! ما سیگنال را با کمک آن ضبط خواهیم کرد.

علاوه بر کارت صدا (که امیدوارم در کامپیوتر خود داشته باشید) به یک گیرنده IR نیاز داریم. درست تر است که یک مدار گیرنده تمام عیار را با TSOP جمع آوری کنیم، اما ما به سادگی ممکن عمل می کنیم - به عنوان یک گیرنده IR، معمولی ترین LED مادون قرمز (که در کنترل از راه دور شما است) را می گیریم. البته می‌توانید یک فتودیود IR بگیرید، اما دریافت یک LED IR آسان‌تر است. LED IR باید مستقیماً به ورودی میکروفون کارت صدا وصل شود. برای انجام این کار، به یک دوشاخه 3.5 میلی متری و یک تکه سیم محافظ نیاز دارید (من سیم را با کانکتور از میکروفون قدیمی که کار نمی کند قطع کردم).

LED به صورت زیر متصل می شود:

در نتیجه دستگاه زیر را دریافت می کنیم:

دوشاخه را وارد ورودی میکروفون می کنیم (صورتی است). در تنظیمات کارت صدا، میکروفون را به عنوان دستگاه ورودی انتخاب کنید، کنترل گین را تا حداکثر باز کنید و چک باکس بهره اضافی را علامت بزنید. برای بررسی، کنترل از راه دور را به گیرنده LED هدایت می کنیم (لازم است تا حد امکان آن را به کنترل از راه دور نزدیک کنید)، کلید را فشار دهید - کلیک ها باید در بلندگوها شنیده شوند.

اگر به هر دلیلی ورودی میکروفون ندارید (مثلاً در لپ تاپ) - گیرنده را به خط ورودی کارت صدا وصل کنید - همه چیز یکسان کار می کند ، فقط دامنه سیگنال ضبط شده تبدیل می شود. بسیار کوچکتر.


اکنون به برنامه ای برای ضبط صدا نیاز داریم.
برای این منظور، هر برنامه ای که دارید مناسب است. اگر برنامه مورد علاقه ای برای کار با صدا ندارید، من یک برنامه کوچک و رایگان را پیشنهاد می کنم - Wavosaur (http://www.wavosaur.com/) این برنامه بدون نصب کار می کند و اندازه کوچکی دارد - همانطور که من دوست دارم :) .

برنامه ای برای کار با صدا.

پس از شروع برنامه، نشانگر سطح (خط کش سمت راست پنجره) را روشن کرده و واکنش به سیگنال های کنترل از راه دور را بررسی کنید. به طور پیش فرض، همه چیز باید کار کند - خط کش از سیگنال های دریافتی از مقیاس خارج می شود (اگر واکنشی وجود نداشته باشد، ما به تنظیمات صعود می کنیم پیکربندی صدا / ورودی صوتی). بعد، نماد ضبط را فشار می دهیم، کنترل از راه دور را تا حد امکان به LED دریافت کننده نزدیک می کنیم، کلید کنترل از راه دور را فشار می دهیم و آن را برای چند ثانیه نگه می داریم. غیرفعال کردن ضبط - انجام شد! در پنجره ما اسکن سیگنال IR دریافتی را خواهیم دید. جالب است که سیگنال قبلاً شناسایی می شود - ما فرکانس حامل را نخواهیم دید، بلکه فقط سیگنال مفید را خواهیم دید. این به این دلیل است که ظرفیت های ورودی ورودی میکروفون زمان لازم برای شارژ مجدد را ندارد.

سیگنال دریافتی را می توان در زمان، دامنه مقیاس کرد و، که بسیار راحت است، با برجسته کردن یک بازه مشخص، می توانید بلافاصله مدت زمان آن را مشاهده کنید. سیگنال دریافتی را می توان ذخیره کرد (بهتر در فرمت wav - هیچ اعوجاجی وجود نخواهد داشت) یا به MP3، متن، فایل باینری (چیزی مفید!) صادر می شود.

مثلا، سیگنال کنترل از راه دور من از تلویزیون (فرمت NEC):

تمام فواصل زمانی را می توان از تصویر مشاهده کرد، حتی می توانید آدرس کنترل از راه دور و کد فرمان دکمه را محاسبه کنید - همه چیز واضح و قابل درک است.

P.S.
درخواست بزرگ! اگر چنین گیرنده ای را مونتاژ می کنید، بسته های کنترل از راه دور خود را ذخیره کنید و آنها را برای صابون برای من ارسال کنید (در برگه "درباره پروژه") - این به بهبود الگوریتم گیرنده جهانی کمک زیادی می کند. در نام فایل از چه چیزی ریموت کنترل و شرکت سازنده را مشخص کنید (مثلا: tv-sony.wav).


بیشتر در مورد کار با ریموت های IR!
من ساده ترین راه را برای "احساس" سیگنال از کنترل از راه دور IR پیشنهاد کردم، اما راه حل های زیادی وجود دارد که می تواند خیلی بیشتر انجام دهد! دریافت سیگنال IR، تجزیه و تحلیل، ذخیره، پخش، برنامه ریزی کنترل از راه دور، کنترل کامپیوتر... این بخش حاوی پیوندهایی به چنین راه حل هایی است.

1. DvzRcEditor
برنامه اول خواهد رفت. ویرایشگر DvzRcکه پرت کردم mobiبرنامه توسط شخص خاصی ساخته شده است Dvz 2010(متاسفانه هیچ مختصاتی وجود ندارد، شاید چه کسی می داند؟).


- برنامه ای برای تجزیه و تحلیل و تکرار سیگنال های IR.
این برنامه اجازه می دهد تا از ورودی میکروفون و خروجی صدا برای ضبط و پخش پیام های IR استفاده کنید. ابزارهایی برای تجزیه و تحلیل پیام IR و ایجاد یک پایگاه داده از ارسال های کنسول ها وجود دارد (پایه کوچکی برای کنسول های مختلف وجود دارد). یک راه حل جالب، پشتیبانی از کنترل از راه دور ساخته شده در ATtiny2313 است.


ریموت کنترل دارای 7 کلید است که می توانید هر دستوری را از آنالیز شده ها تنظیم کنید و خود برنامه می تواند سیگنال های این دکمه ها را روی میکروکنترلر بنویسد (به شرطی که برای اولین بار بوت لودر را در آنجا فلش کنید).

همه چیز ساده و واضح است - من آن را دوست داشتم!


2. SlyControl.
http://slydiman.narod.ru/scr/index.htm
این حتی یک برنامه نیست - این یک منبع اینترنتی کامل است که به ریموت های IR اختصاص داده شده است. حاوی اطلاعات مفید، راه حل های سخت افزاری و نرم افزاری برای همه موارد است. در اینجا چیزی است که نویسندگان در مورد SlyControl می نویسند:
یک برنامه جهانی برای مدیریت همه چیز با رایانه است.

برای چه مواردی می توان از آن استفاده کرد:
- کنترل هر برنامه از هر کنترل از راه دور (RC)، از صفحه کلید، کلیدهای چند رسانه ای یا جوی استیک
- شبیه سازی صفحه کلید و ماوس از هر کنترل از راه دور
- زمانبندی (نه تنها برنامه را به موقع اجرا کنید، بلکه برخی اقدامات را نیز با آن انجام دهید)
- خاموش شدن کامپیوتر توسط تایمر یا رویداد
- شما همچنین می توانید چراغ آپارتمان را از طریق کنترل از راه دور روشن کنید، فقط باید پلاگین مناسب را اضافه کنید.

و همچنین یک برنامه در مورد منبع وجود دارد RCExplorer 2.1- پایگاه داده روی ریموت های IR (پایگاه داده شامل بیش از 200 رکورد است).


این برنامه به شما اجازه می دهد:
- دریافت سیگنال از کنسول ها با استفاده از کارت صدا، پورت COM، IgorPlug-USB یا IgorPlug2
- سیگنال را با جزئیات تجزیه و تحلیل کنید - (مدولاسیون، زمان بندی، ویژگی های کدگذاری، تکرار کدها و غیره، تمام پروتکل هایی که در حال حاضر برای من شناخته شده است پشتیبانی می شوند، برنامه می تواند با پروتکل های ناشناخته کار کند.
- نمایش گرافیکی سیگنال در زمان واقعی و بر اساس داده های پایگاه داده
- یک کنترل از راه دور مشابه را در پایگاه داده جستجو کنید
- فرمان کنترل از راه دور را با توجه به داده های پایگاه از طریق پورت COM تکرار کنید

به طور کلی، حتما از منبع بازدید کنید - جالب خواهد بود.

(بازدید شده 20 417 بار، 9 بازدید امروز)

مقالات زیادی در اینترنت در مورد نحوه ساخت ریموت کنترل تلویزیون در آردوینو وجود دارد، اما من برای کنترل تلویزیون و پخش کننده رسانه خود به یک کنترل از راه دور جهانی نیاز داشتم. مزیت اصلی کنترل از راه دور جهانی من این است که دکمه های برنامه برای تلفن اندرویدی دو منظوره هستند، اما اتفاقاً به ویدیو نگاه کنید.



کنترل از راه دور بسیار راحت است زیرا روی صفحه نمایش تقریباً از همان دکمه ها برای کنترل تلویزیون و پخش کننده استفاده می شود. یک تفاوت این است که " AV"در حالت کنترل تلویزیون، دکمه تغییر می کند" "(توقف) هنگام تغییر به حالت کنترل پخش کننده. تصاویر دو حالت را نشان می دهند، در سمت چپ حالت کنترل تلویزیون، در سمت راست حالت کنترل پخش کننده است.

خوب، حالا من کمی در مورد ایجاد چنین کنترل از راه دور به شما خواهم گفت. برای دستگاه از یک کنترل از راه دور تلویزیون ERGO و یک کنترل از راه دور پخش کننده رسانه DUNE HD TV101W استفاده کردم.

برای دریافت اطلاعات از کنسول ها، از سنسور مادون قرمز TSOP1138 (آنالوگ TSOP4838) با فرکانس کاری 38 کیلوهرتز استفاده کردم و آن را به صورت زیر به برد آردوینو متصل کردم:

این طرح برای تعیین رمزگذاری انتقال داده ها و خواندن کد دکمه های کنترل از راه دور مورد نیاز است.

در طرح، در خط int RECV_PIN = 11; پین خود را در شماره 4 نشان می دهیم

پس از پر کردن طرح، "پورت مانیتور" را باز کرده و با فشار دادن دکمه های روی ریموت، به داده های دریافتی نگاه کنید.

تصویر نمونه ای از اسکن دکمه پاور از ریموت کنترل تلویزیون و ریموت پخش کننده را نشان می دهد. حالا یک جدول برای کدهای دکمه ایجاد می کنیم.

من این کار را مانند عکس بالا انجام دادم. زیر کتیبه تلویزیونکدهای دکمه کنترل از راه دور تلویزیون؛ زیر کتیبه بازیکن- کدهای کنترل از راه دور پخش کننده رسانه.

حالا گیرنده سیگنال های مادون قرمز خود را از برد آردوینو جدا می کنیم و ماژول بلوتوث HC-05 و LED مادون قرمز را مطابق نمودار عکس به آن وصل می کنیم.

پس از آن، مستقیماً به طرح بروید.

طرح

#عبارتند از IRsend irsend; int y = 1; تنظیم void () (Serial.begin (9600)؛) حلقه خالی () (اگر (Serial.available ()> 0) (int x = Serial.read ()؛ if (x == 49) (y = 1; ) if (x == 50) (y = 2;) if (y == 1) (// کدهای دکمه برای کنترل تلویزیون اگر (x == 97) (irsend.sendNEC (0x807F08F7, 32)؛ تاخیر (40 )) if (x == 98) (irsend.sendNEC (0x807FA857, 32)؛ تأخیر (40);) if (x == 99) (irsend.sendNEC (0x807F708F, 32); تأخیر (40);) اگر (x == 100) (irsend.sendNEC (0x807FF00F, 32); تأخیر (40)؛) اگر (x == 101) (irsend.sendNEC (0x807F30CF, 32)؛ تأخیر (40);) اگر (x == 102) (irsend.sendNEC (0x807FB04F, 32); تاخیر (40)؛) اگر (x == 103) (irsend.sendNEC (0x807F9867, 32)؛ تاخیر (40)؛) اگر (x == 104) (irsend .sendNEC (0x807F58A7, 32)؛ تاخیر (40)؛) if (x == 105) (irsend.sendNEC (0x807FD827, 32)؛ تاخیر (40)؛) اگر (x == 106) (irsend.sendNEC (0x807F) ، 32؛ تاخیر (40)؛) اگر (x == 107) (irsend.sendNEC (0x807F48B7, 32)؛ تاخیر (40)؛) اگر (x == 108) (irsend.sendNEC (0x807FB847, 32); تاخیر (40)؛) اگر (x == 109) (irsend.sendNEC (0x807F6897, 32)؛ تاخیر (40); )) if (y == 2) (// کدهای دکمه های کنترل از راه دور از پخش کننده رسانه if (x == 97) (irsend.sendNEC (0xFDC23D, 32)؛ تاخیر (40)؛) اگر (x == 98) (irsend. sendNEC (0xFDE01F, 32)؛ تاخیر (40)؛) if (x == 99) (irsend.sendNEC (0xFD18E7, 32); تاخیر (40);) if (x == 100) (irsend .sendNEC (0xFDE817, 32); تاخیر (40)؛) اگر (x == 101) (irsend.sendNEC (0xFDA857, 32)؛ تاخیر (40)؛) اگر (x == 102) (irsend.sendNEC (0xFD6897 ، 32؛ تاخیر (40)؛) اگر (x == 103) (irsend.sendNEC (0xFDA857, 32)؛ تاخیر (40)؛) اگر (x == 104) (irsend.sendNEC (0xFD6897, 32); تأخیر (40)؛ ) اگر (x == 105) (irsend.sendNEC (0xFDE817, 32)؛ تأخیر (40);) اگر (x == 106) (irsend.sendNEC (0xFD18E7, 32)؛ تأخیر (40) ؛) if (x == 107) (irsend.sendNEC (0xFD9867, 32)؛ تاخیر (40)؛) if (x == 108) (irsend.sendNEC (0xFD28D7, 32)؛ تاخیر (40)؛) اگر ( x == 109) (irsend.sendNEC (0xFD20DF, 32)؛ تاخیر (40)؛))))


در طرح، باید کدهای دکمه ها را ویرایش کنید، یعنی در خطوط:

اگر (x == 97) (irsend.sendNEC (0x807F08F7, 32)؛ تاخیر (40);
مقدار 807F08F7 را به:

اگر (y == 1) (// کدهای دکمه برای کنترل از راه دور تلویزیون if (x == 97) (irsend.sendNEC (0x12345678, 32)؛ تاخیر (40)؛)
جایی که 12345678 کد دکمه شماست.

پس از ویرایش طرح با استفاده از کدهای دکمه ای خود، طرح را در برد آردوینو آپلود کرده و به نصب اپلیکیشن روی گوشی ادامه دهید.

ما بلوتوث را در گوشی روشن می کنیم، به دنبال دستگاه خود می گردیم، یک جفت ایجاد می کنیم، سپس برنامه را اجرا می کنیم Pultروی تلفن

هنگامی که راه اندازی شد، یک صفحه نمایش با نماد بلوتوث قرمز در گوشه سمت راست پایین خواهیم داشت که نشان می دهد ما به دستگاه خود متصل نیستیم.

پس از آن بر روی این نماد کلیک کنید. ما باید یک پنجره با لیستی از تمام دستگاه های بلوتوث موجود داشته باشیم، جایی که دستگاه خود را برای اتصال انتخاب می کنیم.

اکنون به صفحه اصلی بازگشته ایم و می توانیم تلویزیون را کنترل کنیم:

برای جابجایی به حالت کنترل، باید دکمه با کتیبه را فشار دهیم "بازیکن"... همانطور که قبلاً گفتم، دکمه ما با عنوان "AV" به " ":

برای قطع ارتباط با دستگاه ما، کافی است دکمه «Power» را برای چند ثانیه نگه دارید.

خوب، چند عکس از دستگاه تمام شده من.

معلوم شد، به نظر می رسد، بد نیست. منتظر نظرات در مورد مقاله هستم.

در این درس، اتصال گیرنده IR به آردوینو را در نظر بگیرید. ما به شما می گوییم که از کدام کتابخانه باید برای گیرنده IR استفاده شود، طرحی را برای آزمایش عملکرد گیرنده مادون قرمز از کنترل از راه دور نشان می دهیم و دستورات در C ++ را برای دریافت سیگنال تجزیه و تحلیل می کنیم. بلافاصله توجه می کنیم که سنسور IR آردوینو برای هر کنترل از راه دور مناسب نیست، فرکانس سیگنال ممکن است متفاوت باشد.

دستگاه گیرنده IR. اصل عملیات

گیرنده های مادون قرمز به دلیل قیمت مقرون به صرفه، سادگی و سهولت استفاده امروزه به طور گسترده در لوازم خانگی مورد استفاده قرار می گیرند. این دستگاه ها به شما امکان کنترل دستگاه ها را با استفاده از یک کنترل از راه دور می دهند و تقریباً در هر نوع فناوری یافت می شوند. اما، با وجود این، به تدریج ماژول بلوتوث محبوبیت بیشتری پیدا می کند.

اصل عملکرد گیرنده IR. پردازش سیگنال کنترل از راه دور

گیرنده IR در آردوینو قادر به دریافت و پردازش سیگنال مادون قرمز، به شکل پالس هایی با مدت زمان و فرکانس معین است. مورد استفاده در ساخت سنسور مانع و مسافت یاب برای آردوینو. به طور معمول، یک گیرنده IR دارای سه پایه است و از عناصر زیر تشکیل شده است: دیود نوری پین، تقویت کننده، فیلتر باند گذر، آشکارساز دامنه، فیلتر یکپارچه و ترانزیستور خروجی.

تحت تأثیر تابش مادون قرمز در یک فوتودیود، که در آن بین پو nنواحی یک ناحیه اضافی از نیمه هادی ایجاد کردند ( من-area)، یک جریان شروع به جریان می کند. سیگنال به تقویت کننده و سپس به فیلتر باند گذر می رود که روی یک فرکانس ثابت تنظیم شده است: 30; 33; 36; 38; 40 و 56 کیلوهرتز و از گیرنده در برابر تداخل محافظت می کند. هر گونه لوازم خانگی می تواند باعث تداخل شود.

برای اینکه سیگنال ریموت کنترل توسط گیرنده IR آردوینو دریافت شود، ریموت کنترل باید در همان فرکانسی باشد که فیلتر موجود در گیرنده IR روی آن تنظیم شده است. بنابراین، هر کنترل از راه دور برای این کار مناسب نیست. گیرنده IR و فرستنده IR را با فرکانس یکسان مطابقت دهید. پس از فیلتر، سیگنال به یک آشکارساز دامنه، یک فیلتر یکپارچه و یک ترانزیستور خروجی می رود.

نحوه اتصال گیرنده IR به آردوینو

محفظه گیرنده های مادون قرمز حاوی یک فیلتر نوری برای محافظت از دستگاه در برابر میدان های الکترومغناطیسی خارجی است؛ آنها از شکل خاصی ساخته شده اند تا تابش دریافتی را بر روی دیود نوری متمرکز کنند. برای اتصال گیرنده IR به آردوینو UNO از سه پایه استفاده می شود که به GND، 5 ولت و A0 متصل می شوند. ما به شما توصیه می کنیم که استفاده از ولتاژ 3.3 ولت را شروع کنید تا هنگام تنظیم سنسور IR نسوزد.

برای درس به جزئیات زیر نیاز داریم:

  • آردوینو اونو / آردوینو نانو / آردوینو مگا برد;
  • تخته نان;
  • گیرنده IR;
  • کنترل از راه دور؛
  • 1 LED و مقاومت 220 اهم؛
  • سیم های بابا و بابا و مامان.

نمودار اتصال گیرنده IR به پورت آنالوگ آردوینو

گیرنده IR را مطابق شکل بالا وصل کنید و LED ها را به 12 و 13 پین وصل کنید. قبل از دانلود برنامه، اگر هنوز نصب نشده است، باید کتابخانه IRremote.h را نصب کنید. این کتابخانه متعلق به کتابخانه های استاندارد محیط برنامه نویسی Arduino IDE نیست. می توانید کتابخانه IRremote.h و طرح تمام شده را در یک آرشیو از Google Drive با استفاده از پیوند دانلود کنید.

طرحی برای گیرنده آردوینو IR:

#عبارتند از // کتابخانه را برای گیرنده IR وصل کنید IRrecv irecv (A0); // پینی که گیرنده IR به آن متصل است را مشخص کنیدنتایج decode_results. void setup () // رویه راه اندازی (irrecv.enableIRIn (); // شروع به دریافت سیگنال مادون قرمز کنید pinMode (13، OUTPUT)؛ // پین 13 خروجی خواهد بود pinMode (12، OUTPUT)؛ // پین 12 خروجی خواهد بود pinMode (A0، INPUT)؛ // پین A0 ورودی خواهد بود (به انگلیسی "input")سریال .begin (9600); // مانیتور پورت را وصل کنید) حلقه خالی () // حلقه رویه (اگر (irrecv.decode (& نتایج)) // اگر داده آمد، دستورات را اجرا کنید(Serial .println (results.value); // داده های دریافتی را به پورت ارسال کنید // بسته به سیگنال دریافتی، LED ها را روشن و خاموش کنید if (results.value == 16754775) (digitalWrite (13, HIGH);) if (results.value == 16769055) (digitalWrite (13, LOW);) if (results.value == 16718055) (digitalWrite (12, HIGH)؛) if (results.value == 16724175) (digitalWrite (12, LOW);) irrecv.resume (); // سیگنال بعدی را روی گیرنده IR دریافت کنید } }

توضیحات برای کد:

  1. کتابخانه IRremote.h شامل مجموعه ای از دستورات است و به شما امکان می دهد طرح خود را ساده کنید.
  2. دستور decode_results نام نتایج متغیر را به سیگنال های دریافتی از کنترل از راه دور اختصاص می دهد.

سنسور IR را می توان در بسیاری از دستگاه های موجود در میکروکنترلر آردوینو استفاده کرد، از جمله کنترل از راه دور سروو درایو آردوینو از گیرنده IR. هنگام تنظیم، باید مانیتور پورت Arduino IDE را روشن کنید و متوجه شوید که چه سیگنالی توسط این یا آن دکمه روی کنترل از راه دور ارسال می شود. کدهای به دست آمده باید در طرح بعد از علامت مساوی دوگانه در شرایط if () استفاده شوند.

همچنین اغلب بخوانید:

مقالات مرتبط برتر