یکی از قابلیت های بالای سیستم هوشمند، امکان تلفیق کدهای IR و همچنین استفاده از این کدها در اجرای سناریوهای مختلف می باشد. برای مثال در یکی از سناریوها می خواهیم DVD Player را همراه با سایر دستورات روشن نماییم. جهت انجام این کار باید کد IR مخصوص روشن شدن تجهیز را به گیرنده IR دستگاه ارسال نمود. جهت ارسال این کد از ماژول IR Emitter استفاده می شود.
شکل 1:ماژول IR Emitter
پایه های ماژول
این ماژول دارای 3 پورت است:
> پورت ورودی HDL-BUS جهت اتصال به شبکه باس دارای 4 پین
> پورت خروجی IR جهت اتصال به LED برای ارسال IR
> پورت ورودی ترانس جریان، جهت اتصال در مسیر جریان ورودی یک تجهیز
در شکل زیر دیاگرام پایه ها و نحوی اتصال آنها در ماژول را مشاهده می کنید.
شکل 3:دیاگرام اتصالات ماژول IR Emitter
برنامه نویسی ماژول IR Emitter
برای برنامه نویسی ماژول IR Emitter روی ماژول Online در نرم افزار HDL-BUS کلیک نمایید تا پنجره برنامه نویسی آن باز شود. پنجره برنامه نویسی این ماژول دارای 2 تب است.
الف) Basic Information
در این تب مشخصات ماژول اعم از آدرس و اسم ماژول را می توانید مشاهده و تغییر دهید.
شکل 4:پنجره اول IR Emitter’
ب) Transmitter
در این تب کدهای IR مورد نیاز را به ترتیب از کد 1تا 249 می¬توانید تعیین کنید. برای تعیین این کدها ابتدا باید کدهای IR مربوط به ریموت تجهیزات مورد نیاز به صورت کامل لرن شوند و در دیتا بیس نرم افزار قرار داده شوند. نحوی لرن کردن کدهای IR به صورت کامل در زیر توضیح داده شده است.
شکل 5:پنجره دوم IR Emitter
برای آپلود کد مورد نظر به صورت زیر عمل نمایید: > روی شماره مورد نظر در جدول سمت چپ کلیک نمایید. > از دیتا بیس نرم افزار، قسمت سمت راست، تجهیز و کد مورد نظر را که قبلاً در آن ذخیره نموده اید انتخاب کنید. > روی گزینه Upload جهت بارگذاری کد در ماژول و تخصیص شماره تعیین شده به آن کد کلیک نمایید. > بعد از انتخاب کد مورد نظر با کلیک روی گزینه transmit می توانید کد IR مورد نظر را تست نمایید.
قابلیت استفاده از تمامی ریموت ها در سیستم باس HDL-BUS
یکی از قابلیت های بالای سیستم هوشمند؛ امکان استفاده از ریموت های IR تجهیزات؛ در سیستم هوشمند است. جهت انجام این مورد باید ابتدا تمامی کدهای ریموت شناسایی یا اصطلاحاً لرن شود. این کدها بعد از لرن شدن باید در نرم افزار HDL-BUS ذخیره شود و در مواقع نیاز به ارسال این کد ها توسط IR Transmitter و یا سنسورهایی که قسمت Transmitter دارند مورد استفاده قرار میگیرند.
نحوی لرن کردن کدهای IR مربوط به ریموت
نرم افزار HDL توانایی پشتیبانی از هر دو ورژن؛ جدید و یا قدیمی؛ IR Lerner را دارد. برای اینکار در قسمت Toolbar نرم افزار دو گزینه برای انتخاب IR Lerner تعیین شده است که به صورت زیر عمل می کنیم.
شکل 6:نحوه باز کردن پنجره لرن کردن IR Emitter
جهت لرن کردن کدهای IR باید ابتدا ماژول IR Lerner از طریق پورت USB به کامپیوتر وصل کرد و ریموت را در جلوی آن قرار داد؛ همانطور که در شکل زیر مشاهده می کنید.
شکل 7:اتصال IR Learner به رایانه
نرم افزار HDL_BUS را باز کنید روی قسمت IR Lerner آن کلیک نمایید.
سپس روی قسمت ready for learning the code کلیک نمایید تا آماده دریافت کد IR شود. با کلیک روی کلید مورد نظر کد IR آن کلید لرن می شود این کد را با Remark مشخص در گروه مشخص قرار دهید تا در مواقع ضروری از آن استفاده کنید. اما در صورت استفاده از سایر موارد نرم افزار در قسمت IR Lerner باید بحث را به دو قسمت کار با IR Lerner قدیمی و جدیدی جدا کرد.
ماژول قدیمی IR Lerner
صفحه ی موجود در نرم افزار که جهت لرن کردن کدهای IR مورد استفاده قرار می گیرد به صورت زیر است.
شکل 8:پنجره IR Learner
در قسمت step 2 کد لرن شده مورد نظر نشان دادخ می شود که این کد را می¬توان نحوی اجرای آن را به 3 صورت:
1- Single press 2- Hold 3- Consecutive press
تعریف کرد. این مورد در قسمت step 3 تعیین می شود. برای مثال با انتخاب حالت Hold؛ یعنی این کد زمانی فعال می¬شود که کلید مورد نظر برای ارسال آن کد باید فشار داده شود.
در قسمت step 4 این کد را با یک remark تعیین شده در یکی از بخش های موجود می¬گنجانیم. یا با کلیک روی Device setup یک گروه جدید ایجاد کنیم . کد را در این گروه جدید قرار دهیم.
و یا در قسمت آخر می توان کد ذخیره شده را از لحاظ طول کم کرد.
ماژول IR Lerner قدیمی از دو یارد جهت دریافت اطلاعات استفاده می کنند؛ در ضمن هر کدام از این یارد ها خود می توانند به صورت جداگانه این کار را انجام دهند. از این ویژگی می توان جهت مقایسه دو کد لرن شده استفاده کرد؛ طورییکه هر کدام از این یاردها یک کد لرن کنند و با هم مقایسه شوند این کار در تب Comparing Mode انجام می شود که نیاز به توضیح ندارد.
در تب Infrared tied code می توان یک کد را فراخوانی کرد و در ضمن آن را اصلاح هم کرد. تمامی این کدها در database نرم افزار ذخیره می شود. و در هر لحظه هنگام برنامه نویسی می توان آن را فراخوانی کرد. از تمامی این کدها می توان backup گرفت و در ضمن هنگام نیاز می توان آن را restore کرد. در تب Data backup and restore این قابلیت قرار داده شده است. این مورد همانند Backup و restore اطلاعات ماژولها است.
تنها تفاوت موجود در ماژول جدید و قدیم این است که در ماژول جدید قسمت مربوط به Compare کردن وجود ندارد؛ زیرا از یک یارد جهت دریافت کد IR استفاده می کند.
چگونه مشکل کدهای IR یکسان در ریموتها را حل کرد؟
بسیاری از تجهیزات وجود دارند که کدهای IR مشابه ای برای عملکردهای نقیض دارند. برای مثال بسیاری تلویزیون وجود دارند که کدهای IR مربوط به ON و OFF سیستم مشابه است. در این موارد ارسال کد به معنای تغییر وضعیت خواهد بود. برای مثال فرض کنید سناریو جهت خاموش شدن کل خانه تعریف شده است. در اجرای این سناریو قرار است کد OFF تلویزیون نیز فرستاده شود. فرض کنید اکنون تلویزیون خاموش است و شما کلید ی جهت اجرای سناریو همه خاموش را فشار می دهید. در اجرای این سناریو کد IR مورد نظر که جهت تغییر وضعیت مورد استفاده قرار می گیرد فرستاده می شود. و تلویزیون تغییر وضغیت پیدا کرده و روشن می شود. بنابراین در این مواقع سیستم هوشمند عملکرد نامطلوبی خواهد داشت. جهت رفع این مشکل شماتیک مداری زیر را پیاده سازی کنید.
شکل 9:شماتیک مداری جهت رفع مشکل
مراحل زیر را دنبال نمایید.
در تب Transmitter روی گزینه Set control Target کلیک نمایید. پنجره ای به صورت زیر باز میشود.
شکل 10:پنجره تنظیمات
در قسمت Keystroke Device روی گزینه Double Keystroke کلیک نمایید.
> در قسمت Set the information دو قسمت ظاهر خواهد شد.
> در قسمت (Keystroke (ON شماره کد ON تجهیز را وارد نمایید.
> در قسمت (Keystroke (OFF شماره کد OFF تجهیز را وارد نمایید.
> در قسمت Load of target Setup در قسمت Standby Current جریان حالت Standby تجهیز راوارد نمایید. جریانی که در حالت خاموشی تجهیز دارد را وارد نمایید.
منطق زیر برقرار است:
>> اگر جریان ورودی به ترانس جریان در لحضه ی ارسال IR ای که شماره آن در قسمت (keystroke (ON تعیین شده است از جریان Standby بیشتر باشد کد (keystroke (ON فرستاده نمی شود.
>> اگر جریان ورودی به ترانس جریان در لحضه ی ارسال IR ای که شماره آن در قسمت (keystroke (OFF تعیین شده است از جریان Standby کمتر باشد کد (keystroke (OFF فرستاده نمی شود.