قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

hosam_eldin
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2008
المشاركات: 185
نشاط [ hosam_eldin ]
قوة السمعة:0
قديم 23-10-2009, 11:29 PM المشاركة 1   
افتراضي الجزء الأول: شرح عملى مفصل للتحكم بالأشعة تحت الحمراء Twitter FaceBook Google+



السادة أعضاء المنتدى,

كما وعدتكم بخصوص الأشعة تحت الحمراء , فى هذا الموضوع سنشرح إن شاء الله الجزء الأول وهو خاص بالإرسال و فهم طريقة عمل ريموت الأشعة تحت الحمراء. وعذرا للتأخير حيث أننى لا أكتفى بتشغيل الدائرة على Proteus وإنما أقوم ببناءها وتجربتها على أرض الواقع, بالذات فى هذا النوع من التطبيقات ( الأشعة تحت الحمراء واللاسلكى حيث أن التجربة على أرض الواقع قد تختلف عن برامج ال Simulation

رسالة للأخ مشرف المنتدى, إن رأيت أن هذا الموضوع هاما كما أعتقد فأرجو تثبيته لفترة لتعم الفائدة


ندخل مباشرة فى الموضوع , دعونى أحاول جمع الأفكار والعناوين الرئيسية:

1. شرح مبسط لشكل الموجة وهناك العديد من المواقع لمن يريد المزيد
2. كيفية قراءة الأكواد من الريموت كونترول
3. كيفية قياس ال Pulse Width أو عرض النبضة
4. كيفية كتابة برنامج الميكروسى لتوليد هذا الموجات



أولا: بخصوص الأشعة تحت الحمراء وشكل الموجات:

سأحاول التقليل من الكلام النظرى بقدر المستطاع حيث أن غالبية الأعضاء ممن يريدون عمل مشاريع من هذا النوع يفضلون الدوائر العملية وفهم الكود.

أود الإشارة إلى أن المقال الذى أرسله الأخ Robota جيد فعلا وبه أفكار جيدة لمن أراد توضيح أكثر

ياترى عندما أضغط على زر الريموت , ماذا يرسل ؟ وما شكل الموجة المرسلة وكيف أن مداه يصل لهذه المسافة باستخدام حجرين بطارية عاديين:

- الإشارات المرسلة من أى ريموت هى عبارة عن بيانات تسلسلية أو مجموعة من ال Bits يمكن أن يكون عددها كبير أو صغير كل شركة تقرر التصميم, فهى يمكن أن تبدأ من 12 كما هو الحال مع شركة Sony ويمكن أن تصل إلى أكثر من ذلك 32 أو 40 أو 60 بت.

- حتى الآن مفهوم أو كما يقول الإنجليز So Far So Good , هل ترسل هذه البيانات كما هى ؟ أى كأننى قمت بتوصيل ميكروكونترولر بليد أشعة تحت حمراء وأرسل مجموعة من البيانات؟ الإجابة لأ. لأن فى تطبيقات الأشعة تحت الحمراء لابد من عمل Modulation , وما معناه؟ , Modulation أو تعديل الموجة هو أن تولد موجة ذات تردد معين مثلا 40 كيلو هرتز كما هو الحال مع الأشعة تحت الحمراء فى تطبيقات الريموت, ثم تقوم بتعديل هذا الموجة باستخدام Square waves أو الموجات التى تعبر عن البيانات.

ببساطة : لما أريد أن أرسل إشارة منطقية واحد, معناها أن أرسل موجة عرضها مثلا 2 ميلى ثانية , ولما أريد أن أرسل إشارة منطقية "صفر" , أرسل موجة أو نبضة عرضها 1 ميلى ثانية.
ولكن هذه الموجة هى عبارة عن إخراج تردد 40 كيلو هرتز لمدة 1 ميلى ثانية أو 2 ميلى ثانية , أعتقد الآن قد فهمنا الفكرة.

- فالآن نتفق على أنه عند ذكر أننا نريد أن نرسل مجموعة من البيانات أو Serial Data نتذكر دائما أنها ليست اشارة ديجيتال عادية وانما هى نبضات مكونة من اشارة ترددها من 38 إلى 40 كيلو هرتز لمدة معينة.

الشكل الآتى يوضح الإشارة كما تم التقاطها بالأوسيلوسكوب الخاص بى, الإشارة ملتقطة من خرج الأى سى الموصل إلى الليد - بداخل ريموت سونى, أردت فقط أن أوضح أن البيانات معدلة وليست موجة مربعة عادية.



- كما ترون بل الشكل الأعلى , البينات مرسلة على هيئة نبضات لها عرض معين , تسمى هذه الطريقة Pulse Width Modulation أى طريقة ارسال البيانات عن طريق تغيير عرض النبضة وهى المستخدمة من قبل شركة سونى, ولكن هل كل الريموتات تستخدم هذه الطريقة؟
الإجابة كالعادة, لا, هناك عدة طرق , قد ذكرنا طريقة ال Pulse وهناك طريقتين أخريين سأذكرهما فى عجالة لأننا سوف لا نستخدمهم كثيرا فى مشروعاتنا نظرا لصوبة إعادة قرائتهم.

الأولى تسمى: Shift
وهى تعتمد على تغيير اتجاه النبضات, فمثلا " إشارة منطقية واحد" هى عبارة عن اشاءة تتغير من High إلى Low والعكس صحيح, ولكن عرض هذه النبضات ثابت

الثانية تسمة Space :
وفيها يتم ارسال البيانات على هيئة نبضات متساوية فى العرض ولكن يتم تمييز الصفر من الواحد عن طريق الوقت بين النبضات.

الشكل بالأسفل تم استعارته من المقالة التى ذكرتها :




نأتى الآن للجزء المهم, وهو كيف نقرأ هذه البيانات , وباالتالى ننتقل للنقطة التالية:

ثانيا: كيفية قراءة الأكواد من ريموت كونترول


لو تمتلك أوسيلوسكوب فالموضوع سهل جدا, ولكن هل أقوم بفتح الريموت وتوصيل الأوسيلوسكوب على طرف الليد ؟ الإجابة: أنت غير محتاج لذلك لسببين:
الأول: لأنك ستحصل على شكل الموجة المعدلة كما أوضحت سابقا, وسوف يكون قياس عرض النبضة صعبا
السبب الثانى: أنه من المستحيل الحصول على معلومات فى حالة عدم توافر جهاز أوسيلوسكوب. لأننا سنستخدم ال Sound Card الموجود بجهازك و من المعروف أن سرعة قراءة البيانات Sampling Rate هى حوالى 44 كيلوهرتز والموجة المعدلة ترددها 40 وباالتالى لا يمكن قراءتها.

كما تعرفون حسب قانوت Nyquist لقياس اشارة لابد أن يكون ال Sampling rate أعلى من ضعف أعلى تردد بالإشارة. عموما هذا موضوع نظرى ولمن يريد المزيد , راجع ويكيبيديا على هذا الرابط: http://en.wikipedia.org/wiki/Nyquist...mpling_theorem

- والآن كيف نقرأ بيانات الريموت؟ انت محتاج للآتى:

1. IR Receiver Module أو قطعة الكترونية المسؤلة عن استقبال الإشعة تحت الحمراء , طبعا السؤال , أين أجدها, هى متوافرة عند معظم محلات الإلكترونيات ولكن للأسف لو قلت لهم هذا الإسم كما فعلت أنا من قبل, ستسمع إجابات كثيرة "لا والله مفيش" , " إيه؟؟" وهكذا , مع أنها عندهم, المهم تقول مستقبل الأشعة تحت الحمراء الخاص بريسيفر أو تلفزيون وقول له "أبو ثلاث أرجل المعدنى" .

الشكل الآتى يوضه صورته:




2. جهاز أوسيلوسكوب, هناك نوع رخيص وعملى وأنا أستخدمه وهو PC Baed Oscilloscope ويتم توصيله بالكمبيوتر ولا يحتاج لأى Power إضافى وموجود عند رام , هناك 40MHZ و 60 MHZ

وفى حالة عدم وجود Oscilloscope إذن انت تحتاج استعمال كارت الصوت بجهازك والفكرة كالآتى:

- أحضر أى Jack كالخاص بسماعات ال Headphones ووصل به سلكان واحد أرضى والآخر يوصل بالإشارة وعند القياس ضعة بمدخل ال Line In وليس ال Mic لأن الجهد المراد قياسه كبير - 5 فولت وأنت غير محتاج للتكبير .

- لاحظ أنك ستحتاج إلى مقاومة متغيرة لتقليل الجهد وهذا ضرورى لأن 5 فولت هو جهد كبير بالنسبة لإشارة صوتية.
هذه الخطوة مهمة وانا غير مسؤول عن أى خسائر, اللهم بلغت اللهم فاشهد

الشكل الآتى يوضح الدائرة البسيطة:



وهذا شكل آخر لنفس الدائرة مع استخدام مكثف



ثالثا : كيف سنقيس عرض النبضة وكيف سنوصل مستقبل الأشعة تحت الحمراء:

هذه القطعة سهلة جدا ولا تحتاج إلى أى قطعة أخرى , فقط تحتاج 5 فولت , كما موضح بالصورة أعلى , وصل الأرضى على الطرف GND وال 5 فولت على VCC ثم خذ الإشارة من الطرف Vout

وابدأ بتوجيه الريموت على هذه القطعة وطبعا ستلاحظ المدى الجيد الذى يصل إلى أكثر من 3 أمتار , واضغط على أحد الأزرة ثم قم بمشاهدة شكل الموجات على الأوسيلوسكوب , وسوف لا أتعرض لكيفية ضبط ال Time Base وال Trigger لأنه لو كان عندك هذا الجهاز فأكيد ستعرف كيف تستخدمه.

الملاحظة المهمة:

ستلاحظ أنه ليس هناك Carrier أو موجة حاملة, لأن المستقبل قد قام بفك الموجة المطلوبة وأعطاك إشارة TTL أى أنها نبضات بدون أى موجات وبالتالى سيسهل قرائتها.

والشكل الآتى يوضح شكل الموجة على الأوسيلوسكوب بعد توصيله بالخرج الخاص ب IR Module.



كيفية القراءة:

كما ترى بالأعلى طالما أنك تعرف أن الطريقة المستخدمة فى إرسال البيانات هى طريقة تعديل عرض الموجة PWM إذن فالذى يهمك هو عرض كل نبضة, وللقياس ابدأ من اليسار ولاحظ جيدا أن هناك نبضة البداية وهى التى تخير الميكرو الذى سيقرأ متى يبدأ بالعد.
من بعد هذه النبضة ابدأ بالعد - ستجد أنه هناك نبضة عريضة وأخرى ضيقة سجل عرض كل نبضة بالميلى ثانية ولا تنسى تسجيل الوقت بين النبضات أيضا.

بالنسبة لسونى فهذه هى بياناتهم وهى طبعا موجودة على الإنترنت:


هى عبارة عن 12 bit مقسمة إلى 7 بت بيانات و 5 عنوان Address bits طبعا نبضة البداية غير محسوبة

- نبضة البداية عرضها 2.4 ميلى ثانية
- "1" يتم التعبير عنه بنبضة عرضها 1.2 ميلى ثانية ثم فراغ أو Space عرضه 0.6 ميلى ثانية
- "0" نبضة عرضها 0.6 ميلى ثانية ثم فراغ بنفس المدة

لاحظ أيضا أن الخمسة بت الخاصين بال Address هم دائما 10000 فى كل الريموتات

كيف أقرأ البيانات باستخدام كارت الصوت:


بعد التوصيل كما أوضحت سابقا, انت محتاج إلى برنامج مثل PC Scope
http://www.zeitnitz.de/Christian/scope_en
ويمكنك تسجيل الموجة , أى قم بالتسجيل ثم اضغط على زر بسرعة ثم أوقف التسجيل وافتح الملف فى أى Sound Editor وأنا استخدمت هذا البرنامج ووجدته جيد
http://audacity.sourceforge.net/

ومن خلال البرنامج يمكنك قياس عرض الموجة باستخدام الماوس وتسجيلها
View -> Set Selection Format - Sec

ملحوظة:

سوف تلاحظ أن شكل الموجة ليس مربعا تماما ويمكن أن تجد الإشارة مشوهة قليلا Distorted وهذا متوقع حيث أن مدخل كارت الصوت به مكثفات ربط مما يؤدى لتشويه الموجات المربعة قليلا , وأيضا يجي الإشارة إلى أنك لا تستطيع قياس الجهد المستمر وأن أعلى جهد يمكن قياسه هو فى حدود ال 1 فولت.

إن قررت استخدام الكود الخاص بسونى فى حالة تصنيع ريموت أو جهاز يتحكم بالتليفزيون مثلا , يمكنك الحصول على الأكواد من اللينك :
http://www.hifi-remote.com/sony/Sony_tv.htm
الأكواد مكتوبة Decimal طبعا حولها إلى Binary وقارنها بالموجات التى ستقرئها ستجدها متطابقة

الصورة المأخودة أعلى للإشارات نتجت بالضغط على الزر 2 من الريموت



سوف أكتفى بهذا القدر الآن , وفى المشاركة القادمة سنكمل إن شاء الله
ونوضح كيف نكتب الكود الذى سيولد هذه الإشارت مع الدوائر وفيديو عملى

ثم بعد ذلك بمشيئة الله نبدأ بالجزء الثانى وهو كيفية فهم واستقبال البيانات وبعدها أستطيع القول بأنك قادر على بناء أى مشروع يعمل بالأشعة تحت الحمراء

أرجو الرد إن كنت قد وفقت بتوضيح الفكرة , وأعتذر إن كان هناك أى أخطاء

أنا مستعد لتوضيح أى جزء قد سقط سهوا

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:390
قديم 23-10-2009, 11:55 PM المشاركة 2   
افتراضي


شكرا لك اخي حسام على الشرح المفصل .
اقترح ان يكون الدرس على هيئة ملف word او pdf ليتسنى للجميع تحميله و قرائته متى ماشاء . وللاحتفاظ به لكي يصبح عندنا في النهاية كتاب كامل عن الموضوع . و اخيرا سيسهل عليك اعداد الدرس كثيرا .
تقبل تحياتي و شكرا مرة اخرى

حيدر علاج حسن
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

Eagle69
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 114
نشاط [ Eagle69 ]
قوة السمعة:0
قديم 24-10-2009, 03:23 AM المشاركة 3   
افتراضي


لو سمحت طريقة توصيل IR reciver مع Osiliscope
لمعرفة شكل الموجة
لحسن الحظ عندي ريموت تلفاز سوني وعندي اوسيلسكوب بالبيت
وسوف اجربهم بس كيف الطريقة ؟ لو سمحت ؟
ومشكور ....


الصورة الرمزية Tech Master
Tech Master
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
الدولة: egypt,qena
المشاركات: 58
نشاط [ Tech Master ]
قوة السمعة:0
قديم 24-10-2009, 07:06 AM المشاركة 4   
افتراضي


بارك الله فيك....أخى الكريم
أتفق مع أخى حيدر فى اقتراحة لعمل الموضوع فى pdf
حيث فى ذلك سهولة على الاعضاء وحفظ لحقوق كاتب الموضوع
بالنسبة للميكروكونترولر أى نوع سوف نستخدم إن شاء الله


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:98
قديم 24-10-2009, 09:09 AM المشاركة 5   
افتراضي


السلام عليكم
بداية موفقة جدا اخى حسام وشرح رائع
- فالآن نتفق على أنه عند ذكر أننا نريد أن نرسل مجموعة من البيانات أو Serial Data نتذكر دائما أنها ليست اشارة ديجيتال عادية وانما هى نبضات مكونة من اشارة ترددها من 38 إلى 40 كيلو هرتز لمدة معينة.
هذه المعلومة كانت مصدر ازعاج دائم لى لانى كنت استغرب كيف يتم ارسال 12 نبضة بتردد 38KHZ ولم افكر ابدا فى التضمين modulation الحمد لله الان اتضحت الصورة فجزاك الله كل خير.
لاحظ أيضا أن الخمسة بت الخاصين بال Address هم دائما 10000 فى كل الريموتات
هل يلزم ان تكون دائما هكذا يعنى مثلا اذا اردت صنع جهاز ارسال يعمل بنفس طريقة سونى هل لا بد ان اجعل البتات الخاصة بال address دائما 10000؟
ومرة اخرى شكرا جزيلا لك


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:98
قديم 24-10-2009, 09:16 AM المشاركة 6   
افتراضي


هذه الخطوة مهمة وانا غير مسؤول عن أى خسائر, اللهم بلغت اللهم فاشهد
ما هى نوع الخسائر المحتملة
بالنسبة للدائرة اسفل هذه الجملة اعتقد انك عكست التوصيل يعنى الذى يجب ان يوصل الى الدائرة جعلته يوصل الى الSound card والعكس .


التعديل الأخير تم بواسطة : robota بتاريخ 24-10-2009 الساعة 09:31 AM

hosam_eldin
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2008
المشاركات: 185
نشاط [ hosam_eldin ]
قوة السمعة:0
قديم 24-10-2009, 10:37 AM المشاركة 7   
افتراضي


ما هى نوع الخسائر المحتملة
بالنسبة للدائرة اسفل هذه الجملة اعتقد انك عكست التوصيل يعنى الذى يجب ان يوصل الى الدائرة جعلته يوصل الى الSound card والعكس .

السلام عليكم,

شكرا لكل من قرأ المشاركة, وشكرا للأخ Robota على التصحيح , فى الأسفل التوصيلة الصحيحة



- وبالنسبة للأخ Eagle لو كان عندك أوسيلوسكوب فكما شرحت قم بتوصيل طرف الأرضى للأوسيلوسكوب بالطرف الأرضى للدائرة والطرف الآخر عن طرف ال Vout الخاص بمستقبل الأشعة تحت الحمراء, الدائرة هى فقط المستقبل مع Regulator 5 volt

- والسؤال الآخر بخصوص ال Address فهذا مطلوب فقط لو كنت ستتعامل مع أى جهاز سونى, أما إن كنت ستستخدم طريقة التكويد فى صنع جهاز خاص بك, فأنت تحتاج فقط Start bit + the Data bits وليس هناك حاجة لإضافة Address

ولكن لننتبه جيدا إلى فائدة هذا ال Address فتخيل أنك عندك عدد من الأجهزة التى تريد التحكم بها 5 أو 6 مثلا , وكلهم تم تصميمهم ليعملو بأكواد سونى, وتريد أن تتحكم بهم بريموت واحد من صنعك, الآن تأتى قيمة ال 5 bits Address
فبها يمكن ضبط كل جهاز على Address معين بحيث يعمل Check على ال Address ولو كان صحيح يبدأ فى استقبال البيانات الخاصة به.

وشكرا على الإقتراحات الخاصة بعمل Document منفصلة , أعتقد أنها حل جيد فعلا

أرجو أن أكون قد وضحت وأرحب بأى أسئلة



hosam_eldin
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2008
المشاركات: 185
نشاط [ hosam_eldin ]
قوة السمعة:0
قديم 24-10-2009, 10:44 AM المشاركة 8   
افتراضي


عذرا لقد نسيت الإجابة على بعض الأسئلة:

- سوف نستخدم إن شاء الله PIC16f628A أو أى ميكرو به Built in PWM Function
- أما بخصوص الخسائر المحتملة فهى حقيقة بسيطة فى حالة أنك تتعامل مع 5 فولت , أنا شخصيا كنت أوصلها مباشرة طالما أن أعلى جهد هو 5 , وليس 12 مثلا

ولكن طبعا هذا غير صحيح , دائما استعمل مقاومة لتقليل الجهد , حتى هناك دوائر أخرى تستخدم 2 ديود 1N4184 موصلين بالعكس لضمان أن الجهد سوف لا يرتفع عن 0.7 Volt ولكنى لم أضعها للتبسيط.

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:57 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2024