سبد خرید

 
0 مورد

ارائه کنندگان

اخبار و اطلاعیه‌های سایت
راهنمای محصول ریموت کنترل لینوکس   تاریخ: پنجشنبه، 03 فروردين، 1391
خلاصه خبر:


متن کامل خبر:

این پروژه هدفش کنترل برنامه‌های مختلف از طریق ریموت کنترل‌های مختلف هست.مثل تقریبا تمام پروژه‌های آزاد، بصورت فوق‌العاده انعطاف پذیری ساخته شده!اولا که دستتون در ساختن گیرندهٔ مادون قرمز (برای دریافت کدهای ریموت کنترل) باز هست.شما میتونید در سمت چپ وبسایت پروژه و در قسمت Supported Hardware یک دوجین سخت افزار مختلف رو ببینید که میتونید ازشون استفاده کنید که میتونن به پورتهای مختلف سیستم شما از قبیل پورت سریال، پارالل، USB و یا حتی کارت صوت متصل بشن!ثانیا اینکه شما میتونید از هر ریموت کنترلی استفاده کنید! این خیلی جالبه.مثلا شما می‌تونید از ریموت تلویزیون، ویدیو‌سی‌دی و یا هر وسیلهٔ ریموت دار دیگری که در خانه دارید برای کنترل برنامه‌های کامپیوتری خود نیز استفاده کنید.LIRC ابزاری برای ضبط و ذخیرهٔ کدهای ریموت کنترل دارد و ثالثا اینکه LIRC برنامه‌های مختلفی رو میتونه تحت کنترل داشته باشه.اصولا برنامه‌های کامپیوتری به سه بخش تقسیم میشن ۱. برنامه‌های که بصورت داخلی از LIRC پشتیبانی می‌کنند.۲. برنامه‌هایی که از LIRC پشتیبانی می‌کنند، ولی بصورت پیش‌فرش با این قابلیت کامپایل نشده‌اند.۳. و دستهٔ سوم برنامه‌هایی که کلا از LIRC پشتیبانی نمی‌کنند!معمولا تمام پلیرها، برنامه‌های پخش تلویزیون و رادیوها از این پروژه پشتیبانی می‌کنند. همچنین بسیاری از برنامه‌ها راهی را برای استفاده از این برنامه مثل پلاگین‌ها یا برنامه‌های کمکی در اختیار کاربر قرار می‌دهند.LIRC برنامه‌ای بنام irexec را ارائه کرده که می‌تواند هر فرمانی که شما بخواهید را با زدن کلیدهای ریموت کنترل اجرا کند.ساختار LIRC بصورت سرور/کلاینت طراحی شده است.یک سرور بنام lircd وجود دارد که بصورت دایمون اجرا می‌شود و با سخت‌افزار ارتباط برقرار می‌کند.سپس کلاینتها که همان برنامه‌های پلیر یا پلاگینهای آنها هستند می‌توانند توسط سوکت‌های ارايه شده توسط سرور به آن متصل شوند و اطلاعات را بگیرند.----------خب حالا کار یک کاربر به دو بخش تقسیم می‌شود :۱. تهیه و یا ساخت گیرندهٔ مادون قرمز۲. راه اندازی و پیکره‌بندی قسمت نرم‌افزاری پروژهدر پست اولم سعی دارم در مورد سخت افزار که بخش راحت! قضیه است صحبت کنم.بحث در مورد نرم‌افزار و پیکره‌بندی و نحوهٔ استفاده از آن مفصل است که آنرا به پست‌های بعدی موکول می‌کنم.سخت‌افزارمن بدلیل اینکه لپ‌تاپم پورت سریال نداشت و اینکه تجربهٔ کار با میکروکنترلر AVR را داشتم، سخت افزار USBTiny را انتخاب کردم.سخت‌افزار بسیار ساده و کم‌هزینه‌ای دارد و براحتی توانستم آنرا بسازم.البته نه ساده‌تر از مدارهایی که برای پورت سریال ارايه شده است!سخت‌افزار و نرم‌افزار این پروژه در سایت زیر قابل دسترس است :http://www.xs4all.nl/~dicks/avr/usbtinyشماتیک و برنامهٔ میکروکنترلر آن بصورت آزاد در اختیار عموم قرار داده شده است و براحتی میشود آنرا ساخت.من تصمیم گرفتم برای اینکه کار تمیزی انجام دهم برای آن یک مدار چاپی نیز طراحی کنم و البته من هم آنرا بصورت آزاد در اختیار دوستان علاقه‌مند قرار خواهم داد.مدار چاپی را توسط نرم‌افزار gEDA/PCB کشیدم که از این لینک قابل دریافت است.

قطعهٔ مهم بعدی گیرندهٔ مادون قرمز است که در اصل گیرنده و تقویت کننده در یک پکیج است. در بازار آنرا بنام چشمی تلویزیون پارس! میشناسند که نام اصلی آن TSOP17xx است که بجای xx اعدادی بعنوان فرکانس کاریر آن قرار می‌گیرد.برای اطلاعات بیشتر میتوانید دیتاشیتش را از اینجا دانلود کنید. شکل این قطعه را هم در زیر مشاهده می‌کنید :

قطعات دیگر هم که معلومند و زیاد نیازی به توضیح ندارند. البته اگر سوالی هست خوشحال می‌شوم پاسخ دهم.بعد از اینکه مدار مونتاژ شد و همه قطعات بر روی آن قرار گرفت، باید میکروکنترلر آنرا در اصطلاح پروگرام کرد. همانطور که در بالاتر عرض کردم برنامهٔ این میکروکنترلر بصورت نرم‌افزار آزاد ارائه شده است که باید آنرا کامپایل کنیم و توسط دستگاه پروگرامر در میکروکنترلر پروگرام کنیم.که ترجیح میدهم توضیح این بخش را به پست بعدی موکول کنم.فعلا تا اینجا اگر سوالی هست یا اشکال و ابهامی در مطالب ارایه شده وجود دارد خوشحال میشوم پاسخ دهم
---------------------
قسمت دوم :‌ پروگرام کردن میکروکنترلر
در سخت افزاری که در پست اولم اشاره کردم، از یک میکروکنترلر ATTiny2313 محصول شرکت ATMEL استفاده شده بود.طبیعتا باید برنامه‌ای بر روی این آی‌سی پروگرام شود تا بتواند کاری انجام دهد.البته شما برای انجام اینکار به :۱. پروگرامر AVR احتیاج دارید که انواع مختلفی از آن موجود است که هرکدام می‌توانند به پورتهای مختلف سیستم متصل شوند. از چند مدل رایج این پروگرامرها میتوان به STK200/300 برای پورت پرینتر و USBASP برای پورت usb اشاره کرد.مدار STK200/300 بسیار ساده است و چیزی جز یک آی‌سی بافر احتیاج ندارد.پروگرامر USBASP هم یک پروژهٔ آزاد است که اطلاعات آن در این آدرس قرار دارد.من خودم چند سالی است از همین مدل استفاده می‌کنم و کاملا راضیم.در این پست فرض من بر این است که شما هم از پروگرامر usbasp استفاده می‌کنید و دستوراتی هم که ارائه می‌دهم برای این پروگرامر است.۲. نرم‌افزار avrdude نیز باید بر روی سیستم شما نصب باشد. این نرم‌افزار برای ارتباط با پروگرامرهای مختلف است که رابط خط فرمانی دارد. پس میشود براحتی از آن در Makefile هایی که می‌نویسیم استفاده کنیم این نرم‌افزار در مخازن دبیان و اوبونتو موجود است و براحتی با یک دستور قابل نصب است :
sudo apt-get install avrdude
برای دریافت سورس کد این نرم‌افزار و نصب از روی سورس هم میتوانید به این آدرس مراجعه کنید.
------------
بعد از آماده کردن ملزومات، ابتدا برنامهٔ میکروکنترلر را از این آدرس دانلود کنید.حال آی‌سی خام را بر روی پروگرامر قرار داده و پروگرامر را به کامپیوتر متصل کنید.سپس فایل دانلود شده را از حالت فشرده خارج کرده و به دایرکتوری ir موجود در آن بروید و دستورات زیر را اجرا کنید :
sudo avrdude -cusbasp -pt2313 -U flash:w:main.hexsudo avrdude -cusbasp -pt2313 -U hfuse:w:0xdb:m -U lfuse:w:0xef:m
*دستور اول برای پروگرام کردن فایل main.hex بر روی حافظهٔ Flash میکروکنترلر است.*دستور دوم نیز برای تنظیم فیوزبیتهای میکروکنترلر است. فیوزبیتها برای تنظیمات سخت‌افزاری قسمتهای مختلف چیپ هستند. مانند منبع کلاک، فعال یا غیرفعال کردن Watchdog و ...*سوییچ c- برای تعیین مدل پروگرامر مورد استفاده است که در اینجا usbasp قید شده است.*سوییچ p- هم برای تعیین میکروکنترلر است که در اینجا از 2313 که مخفف attiny2313 است استفاده شده.------------خب حالا میکروکنترلر ما آماده است آنرا بر روی مدار قرار داده و مدار را به کامپیوتر متصل کنید و دستور زیر را اجرا کنید. باید قسمتی از خروجی‌ مشابه چیزی باشد که در زیر نشان داده شده است :
dmesg | tail[10982.559660] usb 2-1: New USB device found, idVendor=03eb, idProduct=0002[10982.559667] usb 2-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[10982.559672] usb 2-1: Product: USBtiny IR/LCD
برای اطمینان بیشتر از صحت عملکرد سخت‌افزار خود، یک کنترل  را بطرف چشمی آن بگیرید و کلیدی را فشار دهید. LED تعبیه شده بر روی مدارتان باید چشمک بزند اگر از این ۲ آزمایش سربلند بیرون آمدید پس سخت‌افزار شما آماده است و منتظر پست بعد باشید
------------------
قسمت سوم: نصب نرم‌افزار LIRC
خب، در این مرحله از کار باید مجموعه‌نرم افزارهایی رو برای کار با ریموت کنترل نصب کنیم.چون خودم از توزیع دبیان استفاده می‌کنم، در اینجا در مورد نصب LIRC بر روی توزیعهای دبیان‌بیس توضیح می‌دهم.-- نصب از مخازن --ابتدا پکیج lirc و lirc-modules-source را از مخازن نصب می‌کنیم:
sudo aptitude install lirc lirc-modules-source
سپس باید ماژولهای مورد نیاز را برای کرنل لینوکس خود کامپایل و نصب کنیم.برای این کار لازم است module-assistant را نصب داشته باشید و سپس دستورات زیر را در ترمینال وارد کنید :
m-a preparem-a a-i lirc
m-a نام کوتاهی برای برنامهٔ module-assistant و a-i نیز نام کوتاه‌شده‌ای برای auto-install است.البته راه‌های دیگری نیز برای کامپایل و نصب این ماژولها وجود داردکه می‌توانید پس از نصب بستهٔ lirc-modules-source آنهارا در مسیر usr/share/doc/lirc-modules-source/README.Debian مطالعه کنید.-- نصب از سورس‌کد --برای نصب از سورس‌کد ابتدا آخرین ورژن LIRC را از این آدرس دانلود کنید :http://sourceforge.net/projects/lirc/filesسپس طبق این دستورالعمل آنرا کامپایل و نصب کنید.بسیار خب، الان نرم‌افزارهای مورد نیاز را هم بر روی سیستم خود نصب کرده‌ایم و باید سراغ مرحلهٔ بعدی که پیکره‌بندی LIRC است برویم که در پست بعدی در مورد آن توضیح خواهم داد ----------------
قسمت چهارم: پیکره‌بندی LIRC

به مرحلهٔ پیکره‌بندی رسیدیم. LIRC نیز مانند اکثر نرم‌افزارهای دیگر تحت لینوکس، فایلهای پیکره‌بندی خود را در مسیر etc/ نگهداری می‌کند.مهمترین فایل پیکره‌بندی etc/lirc/lircd.conf/ است.در این فایل اطلاعات مربوط به ریموت کنترلهایی که به LIRC معرفی شده‌اند قرار دارد.نکتهٔ جالبی که در مورد LIRC وجود دارد و قبلا هم به آن اشاره کردم، این است که می‌تواند با انواع مختلفی از ریموت‌ها کار کند.لیست بلندبالایی از ریموت کنترلهای پشتیبانی شده را می‌توانید در اینجا ببینید. ( منظورم عکس پایین نیست، روی کلمه اینجا کلیک کنید! )[align=center][img]http://forum.sito.ir/imgup/2/1290678531_2_83cc4eb233.JPG[/img][/align]دو احتمال وجود دارد :۱. ریموت کنترل مورد نظر شما از قبل پشتیبانی شده است.۲. ریموت کنترل مورد نظر شما از قبل پشتیبانی نشده است!اگر در لینک داده شده ریموت مورد نظر خود را یافتید که خوش بحالتان، وارد مرجلهٔ تست ریموت کنترل شوید و از تیتر بعدی بگذرید.در غیر اینصورت خودتان یک فایل پیکره‌بندی بسازید.
-- ساخت فایل پیکره‌بندی برای ریموت کنترل خاص خودتان --
در اینجا شما یاد می‌گیرید چگونه ریموت کنترل خاص خودتان را به LIRC معرفی کنید.بطور مثال شما می‌توانید از کنترل تلویزیون، ویدئو، کولر و ... استفاده کنید!خب، ابتدا دستگاه گیرنده‌ای که طرز ساختش در چند پست قبل بود را به پورت USB سیستم متصل کنید.بعد از اتصال، در خروجی دستور dmesg | tail باید چیزی مانند این را ببینید :
$ dmesg |il

usb 1-1: New USB device found, idVendor=03eb, idProduct=0002

usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0

usb 1-1: Product: USBtiny IR/LCD

lirc_dev: IR Remote Control driver registered, major 61



lirc_igorplugusb: USB remote driver for LIRC v0.1

lirc_igorplugusb: Jan M. Hochstein

lirc_dev: lirc_register_plugin: sample_rate: 100

lirc_igorplugusb[2]:  USBtiny IR/LCD on usb1:2

usbcore: registered new interface driver lirc_igorplu tagusb
همچنین در دایرکتوری dev/ باید دو وسیله بنامهای lircd و lirc0 ساخته شود. با دستور زیر مطمئن شوید که این دیوایسها ساخته شده‌اند :
$ ls -l /dev/lirc*crw-rw---- 1 root video 61, 0 2010-09-23 18:13 /dev/lirc0srw-rw-rw- 1 root root      0 2010-09-23 17:38 /dev/lircd
همانطور که در خروجی ls مشخص است،  lircd از نوع سوکت است و lirc0 نیز از نوع Character special (ستون اول خروجی ls را ببینید)همه چی آماده است برای ساخت یک فایل پیکره‌بندی ابتدا لازم است تمام پروسه‌ها و دایمونهایی که به آن دو دیوایس گفته شده متصل هستند از کار بیافتند.بدین صورت اینکار را انجام می‌دهیم :
sudo /etc/init.d/lirc stop
سپس از برنامه‌ی irrecord برای ساخت فایل پیکره‌بندی کمک می‌گیریم.همانطور که از نام این برنامه مشخص است، کار این برنامه خواندن و ضبط کردن سیگنالهایی است که توسط دستگاه گیرندهٔ متصل به سیستم دریافت می‌شوند.بدین صورت این برنامه را اجرا میکنیم :
sudo irrecord -d /dev/lirc0 lircd.conf
بعد از شروع این برنامه، با متون زیادی که در ترمینال شما ظاهر می‌شوند روبرو می‌شوید.که در مورد قابلیتهای برنامه توضیح می‌دهد، پیشنهاد می‌کند از ریموت کنترلهای از قبل پشتیبانی شده کمک بگیرید و یا اگر خودتان فایل پیکره‌بندی برای یک ریموت پشتیبانی نشده ساختید آنرا به آدرس ایمیل lirc [AT] bartelmus [DOT] de ارسال کنید.حالا شما وارد ویزارد معرفی ریموت کنترل خود می‌شوید.در انتهای این نوشته‌ها باید با این دستورالعمل مواجه شوید :
Now start pressing buttons on your remote control.It is very important that you press many different buttons and hold themdown for approximately one second. Each button should generate at least onedot but in no case more than ten dots of output.Don't stop pressing buttons until two lines of dots (2x80) have beengenerated.Press RETURN now to start recording.
برنامه از ما می‌خواهد که اگر مایل به ادامه دادن هستیم کلید اینتر را بزنیم.سپس ریموت کنترل را بسمت گیرنده گرفته و سعی کنیم تمام دکمه‌های موجود در آنرا حداقل یکبار و بمدت حدودا یک ثانیه نگه داریم. توجه داشته باشید که با دریافت هر کد از ریموت کنترل شما، LED تعبیه شده در مدار چشمک می‌زند و همچنین نقطه‌ای بر روی صفحه ترمینال چاپ می‌شود.بطور کلی باید دو سطر ۸۰ تایی از این نقطه‌ها تشکیل شود تا این مرجله بپایان برسد.پس تا سعی دارید بیشترین تعداد دکمه‌ها را بزنید.بعد از پایان این مرحله پیغامهایی مانند زیر را مشاهده می‌کنید :
Found const length: 108000Please keep on pressing buttons like described above.................................................................................RC-5 remote control found.Found possible header: 938 768Found hidden lead pulse: 938No repeat code found.Signals are biphase encoded.Removed header.Signal length is 13Now enter the names for the buttons.Please enter the name for the next button (press to finish recording)
این اطلاعاتی تخصصی در مورد ریموت کنترل مورد استفاده است که برای هر مدل ریموت فرق می‌کند.در این مرجله از ما می‌خواهد بصورت تک تک برای هر کلید نامی را انتخاب کنیم و سپس یک لحظه کلید مورد نظرمان را روبروی گیرنده فشار دهیم.مثلا ما می‌توانیم کلید روشن/خاموش کردن را با نام power معرفی کنیم.برای اینکار ابتدا کلمهٔ power را تایپ می‌کنیم، سپس اینتر می‌زنیم و همزمان یک لحظه کلید مورد نظر بر روی ریموت را فشار می‌دهیم.اینکار را برای همهٔ کلیدهای مورد نیاز تکرار کرده و در انتها بدون تایپ کلمه‌ای اینتر را می‌زنیم.میدانم، کار خسته‌کننده‌ای بود. یک مرحله بیشتر باقی نمانده و در مرحلهٔ آخر برنامه نیاز دارد تا مولفه‌ای بنام Toggle bit mask را بدست آورد.
Checking for toggle bit mask.Please press an arbitrary button repeatedly as fast as possible.Make sure you keep pressing the SAME button and that you DON'T HOLDthe button down!.If you can't see any dots appear, then wait a bit between button presses.Press RETURN to continue.
راستش من دقیقا نمی‌دانم این مولفه چیست و به چه معناست، فقط می‌دانم برای  دادن این مولفه به برنامه باید یک کلید را به سریعترین حالتی که می‌توانید کلیدزنی کنید.برای شروع عملیات کلید اینتر را بزنید، سپس فقط یک کلید از روی ریموت کنترل را بزنید و آنرا فقط یک لحظه نگه دارید و سریع ول کنید و بسرعت اینکار را تکرار نمایید.مانند قبل با هربار زدن کلید یک نقطه در صفحه چاپ می‌شود.بعد از پایان این مرحله، عدد Toggle bit mask ریموت کنترل ما نمایش داده می‌شود و تمام اطلاعات مورد نیاز در فایل پیکره‌بندی نوشته می‌شود و برنامهٔ irrecord پایان می‌یابد.
..............................Toggle bit mask is 0x819.Successfully written config file.
خب، حالا باید فایل پیکره‌بندی ساخته شده را در مسیر درست خود قرار دهیم.نامی که برای فایل پیکره‌بندی به برنامهٔ irrecord داده بودیم lircd.conf بود، پس فقط کافیست آنرا به مکان درست خود انتقال دهیم :
sudo mv lircd.conf /etc/lirc
پیکره‌بندی ریموت کنترل نیز به پایان رسید، پست بعدی در مورد تست ریموت کنترل است
------------
قسمت پنجم: تست و استفاده از ریموت کنترل
قبل از استفاده از ریموت کنترل خود، بهتر است آنرا تست کنیم و از صحت فایل پیکره‌بندی‌ای که برای آن تشکیل دادم آگاه شویم.برای اینکار از برنامهٔ irw استفاده می‌کنیم :
sudo /etc/init.d/lirc startirw
سپس ریموت کنترل را بسمت گیرنده گرفته و کلیدی را میفشاریم.و باید نام ریموت کنترل خود و همچنین نامی که برای آن کلید خاص اختصاص داده‌ایم را ببینیم.اگر این اتفاق نیافتاد یا کلید دیگری تشخصی داده شد، فایل پیکره‌بندی مشکل دارد.دوباره سعی کنید فایل پیکره‌بندی بسازید، در یک محیط تاریک و بدور از نور شدید لامپ، مهتابی، آفتاب یا کلا هر ساطع کنندهٔ نور مادون قرمزبعد از تست موفق ریموت خود، وارد خان بعدی می‌شویم -- استفاده از ریموت کنترل برای نرم‌افزارها --برای اینکه بتوان نرم‌افزاری را تحت کنترل ریموت کنترل در آورد، بهمراه بستهٔ LIRC برنامه‌ای بنام [b]irexec[/b] قرار دارد.این برنامه بر اساس کدهای ریموت کنترلی که توسط دایمون lircd شناسایی می‌شوند، کار خاصی را انجام می‌دهد.ورودی این برنامه فایل پیکره‌بندی است که بفرمت خاصی نوشته شده است.اگر در هنگام اجرای این برنامه، فایل پیکره‌بندی خاصی را برای آن مشخص نکنیم، در مسیر lircrc./~  بدنبال آن می‌گردد (~ مسیر پوشهٔ‌ خانگی کاربر است)در اینجا من فایل پیکره‌بندی نمونه‌ای برای کنترل نرم‌افزار mplayer ارائه می‌کنم و فایل‌های پیکره‌بندی برای کنترل نرم‌افزارهای دیگر را شما می‌توانید در وب جستجو کنید و براحتی بیایید.
-- فایل پیکره‌بندی برای mplayer --
ایتدا توسط ادیتور متن محبوب خو فایل متنی lircrc./~ را ایجاد می‌کنیم.
emacs -nw ~/.lircrc
سپس خطوط زیر را در آن قرار می‌دهیم :
# .lircrc - MPLAYER sample testbegin    prog = mplayer    remote = samsung    button = OK    config = pause    repeat = 0endbegin     button = right     prog = mplayer     config = volume 1     repeat = 1endbegin    button = left    prog = mplayer    config = volume -1    repeat = 1endbegin    button = mute    prog = mplayer    config = mute    repeat = 1endbegin    button = power    prog = mplayer    config = quit    repeat = 1endbegin    button = up    prog = mplayer    config = seek +15 0    repeat = 1endbegin    button = down    prog = mplayer    config = seek -15 0    repeat = 1endbegin    button = 7    prog = mplayer    config = vo_fullscreen    repeat = 0end
در این فایل پیکره‌بندی:- button برای معرفی نمودن کلید مورد نظر است- prog نام برنامه‌ایست که باید متن پیکره‌بندی به آن ارسال شود- remote نام کنترلیست که کلید مربوط به آن معرفی شده است. این نام باید در فایل پیکره‌بندی etc/lirc/lircd.con/ موجود باشد- config متن پیکره‌بندی خاصی است که در صورت تشخیص button معرفی شده به برنامهٔ مورد نظر فرستاده می‌شود- repeat معین می‌کند اگر کلید تشخصی داده شده سریعا تکرار شد چه اتفاقی بیافتاد. عدد صفر به معنای این است که متن پیکره‌بندی مکررا ارسال نشود.تگهای دیگری نیز در این فایل پیکره‌بندی مورد استفاده قرار می‌گیرند که شما می‌توانید آنهارا بهمراه توضیحات کامل در این جا مطالعه کنید.اکنون فایل پیکره‌بندی را ذخیره نمایید و از کنترل نمودن mplayer با ریموت کنترل خود لذت ببرید.
توجه داشته باشید که شما ممکن است نیاز داشته باشید تگهای button و remote را مطابق با فایل پیکره‌بندی ریموت کنترل خود ویرایش کنید.
------------
توضیحاتی در مورد چندین فایل پیکره‌بندی دیگر :
http://www.g-loaded.eu/2006/01/10/how-to-configure-and-use-lirc
http://ubuntuforums.org/showthread.php?t=158952

آمار مربوط به این مطلب:
تعداد بازدید:55766
تعداد نظرات: 0
نوشتن نظر  نظرات بازگشتادامه
به لینوکس سی‌دی امتیاز دهید

به اين صفحه امتياز دهيد