جدول المحتويات:

UChip - المسلسل عبر IR !: 4 خطوات
UChip - المسلسل عبر IR !: 4 خطوات

فيديو: UChip - المسلسل عبر IR !: 4 خطوات

فيديو: UChip - المسلسل عبر IR !: 4 خطوات
فيديو: خشابه سنوات الضياع 2024, يوليو
Anonim
UChip - المسلسل أكثر من IR!
UChip - المسلسل أكثر من IR!
UChip - المسلسل أكثر من IR!
UChip - المسلسل أكثر من IR!

أصبح الاتصال اللاسلكي ميزة أساسية في مشاريعنا في الوقت الحاضر والحديث عن اللاسلكي ، وأول ما يتبادر إلى ذهني هو Wi-Fi أو BT ، لكن التعامل مع بروتوكولات اتصال Wi-Fi أو BT ليس بالمهمة السهلة ويستهلك الكثير من موارد MCU ، مما يترك مساحة صغيرة لترميز تطبيقي. لذلك ، عادةً ما أختار وحدة Wi-Fi / BT خارجية متصلة تسلسليًا بالمتحكم الدقيق لتقسيم الأدوار والحصول على حرية أعلى.

ومع ذلك ، أحيانًا تكون شبكات Wi-Fi و BT "مبالغة" في بعض التطبيقات التي تتطلب معدل نقل بيانات منخفضًا ومسافة اتصال قصيرة. علاوة على ذلك ، فإن استخدام Wi-Fi أو BT يعني ضرورة توصيل هاتفك الذكي أو جهازك بمصادقة مناسبة.

تخيل أنك تحتاج ببساطة إلى تشغيل / إيقاف ضوء خارجي ، أو تغيير شدة المصباح ، أو فتح بوابة كهربائية. هل يستحق استخدام Wi-Fi أو BT؟

اعتمادًا على البيئة والتطبيقات ، قد يكون الاتصال اللاسلكي عبر الطول الموجي للأشعة تحت الحمراء في متناول اليد. يمكن أن يكون المسلسل عبر IR ، الذي يتم تنفيذه باستخدام مكونات خارجية قليلة (3 مكونات منفصلة!) ، و uChip (لوحة صغيرة جدًا متوافقة مع Arduino) هو الحل الذي كنت تبحث عنه!

فاتورة المواد (لجهاز واحد Tx-Rx):

1 × يو شيب

1 x IR LED: وجود ذروة انبعاث عند 950 نانومتر

1 × TSOP-38238 (ما يعادله)

1 × 1 كيلو أوم المقاوم

المعدات

1 × لوح / لوح بروتو

1 × أنبوب بلاستيكي أسود: القطر الداخلي بنفس حجم IR LED ، الأنبوب ضروري لمنع التداخل مع مستقبل TSOP.

1 × ورق ألومنيوم (3 سم × 3 سم)

1 × شريط

تلميح: يمكنك إنشاء جهاز TX فقط أو جهاز RX فقط في حالة احتياجك إلى اتصال أحادي الاتجاه عن طريق إزالة أجهزة RX / TX غير الضرورية من الدائرة أو تمكين / تعطيل الكود ذي الصلة في الرسم التخطيطي.

الخطوة 1: الأسلاك

الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك

قم بتوصيل المكونات معًا وفقًا للتخطيطي.

بعض الملاحظات على التخطيطي البسيط. نظرًا لأن TSOP-38238 يسمح بإمداد طاقة من 2.5 فولت إلى 5 فولت ويمتص 0.45 مللي أمبير على الأكثر (تجد ورقة البيانات هنا) ، فسوف أقوم بتشغيل جهاز الاستقبال باستخدام دبابيس ، والتي ستوفر مصدرًا أرضيًا ومصدرًا للطاقة على التوالي. هذا يسمح بتشغيل / إيقاف تشغيل جهاز الاستقبال عند الطلب وإعداد بسيط للغاية لأسلاك الأجهزة. علاوة على ذلك ، في حالة احتياجك إلى اتصال أحادي الاتجاه ، يمكنك اختيار ما إذا كنت تريد إنشاء جهاز (Tx / Rx) فقط عن طريق تعطيل / تمكين TSOP-38238.

كيف تعمل الدائرة؟

الأمر بسيط للغاية. يتم سحب دبوس خرج TSOP منخفضًا عندما يكتشف المستشعر قطارًا من 6 نبضات أو أكثر عند 38 كيلو هرتز ، ومن ناحية أخرى يتم سحبه عالياً عندما لا تكون هناك مثل هذه الإشارة. لذلك ، من أجل نقل البيانات التسلسلية عبر الأشعة تحت الحمراء ، فإن ما تفعله الدائرة هو تشغيل أنود LED بـ 38 كيلو هرتز PWM مُعدَّل بإشارة TX التسلسلية التي تسحب كاثود LED منخفضًا.

وبالتالي ، على مستوى عالٍ من TX0 التسلسلي ، لا يكون مؤشر LED متحيزًا أو متحيزًا في الاتجاه المعاكس (بدون نبضات) ويتم سحب دبوس خرج TSOP عالياً. إرسال مستوى منخفض على المسلسل ، يتم تشغيل LED ويولد نبضات IR وفقًا لإشارة PWM المطبقة ؛ لذلك ، يتم سحب خرج TSOP منخفضًا.

نظرًا لأن الإرسال مباشر (0-> 0 و 1> 1) ، فلا داعي للعاكسات أو أي منطق آخر على جانب المستقبِل.

أقوم بتنظيم طاقة الخرج البصري LED عن طريق تحديد دورة عمل PWM وفقًا للتطبيق. كلما زادت دورة العمل ، زادت طاقة الخرج البصري ، وبالتالي ، كلما زادت نقل رسالتك.

ضع في اعتبارك أننا ما زلنا بحاجة إلى توليد البقول! وبالتالي ، يجب ألا تتجاوز دورة العمل 90٪ ، وإلا فلن يكتشف TSOP الإشارة كنبضات.

هل تريد المزيد من القوة؟

من أجل زيادة التيار ، هل يمكننا ببساطة تقليل قيمة المقاوم 1 كيلو أوم؟

ربما ، لا تكن متطلبًا جدًا! يقتصر الحد الأقصى للتيار الذي تحصل عليه من دبوس MCU على 7 مللي أمبير عند قيادة دبوس المنفذ أقوى من المعتاد (PINCFG. DRVSTR = 1 و VDD> 3V) كما هو مذكور في ورقة بيانات SAMD21.

ومع ذلك ، فإن التكوين القياسي (وهو التكوين المعتمد من قبل مكتبات Arduino IDE كإعداد افتراضي) يحد من التيار إلى 2mA. لذلك ، فإن استخدام 1 كيلو أوم يعطي بالفعل الحد الحالي بالإعدادات الافتراضية!

زيادة التيار ليست مجرد مسألة مكونات كهربائية. موجز:

  • قم بتغيير المقاوم (الذي تقتصر قيمته الدنيا على 470 أوم تقريبًا -> VDD / 470 ~ 7mA) ؛
  • اضبط المنفذ المقابل-> PINCFG-> DRVSTR إلى 1 ؛

سأقدم الكود بما في ذلك هذه الميزة في تحديث مستقبلي.

لكن تذكر أن غرق واستنزاف التيار من دبابيس MCU بالقرب من حدوده ليس أسلوبًا جيدًا. في الواقع ، إنه يقلل من عمر وموثوقية MCU. لذلك ، أقترح الحفاظ على قوة محرك الأقراص العادية للاستخدام على المدى الطويل.

الخطوة الثانية: البرمجة

قم بتحميل الرسم التخطيطي "IRSerial.ino" في uChip (أو لوحة Arduino المتوافقة التي تستخدمها).

في حالة احتياجك إلى تغيير الدبوس الذي ينشئ PWM ، تأكد من أنك تستخدم دبوسًا متصلًا بمؤقت TCC ، نظرًا لأن هذا الإصدار من الكود يعمل فقط مع مؤقتات TCC (تحقق من "variant.c" لوحتك للحصول على هذه المعلومات). سأضيف الكود لاستخدام مؤقتات TC أيضًا في التحديثات المستقبلية.

الكود بسيط للغاية. بعد ضبط PIN_5 منخفض (يوفر TSOP GND) و PIN_6 مرتفع (تشغيل TSOP) ، يبدأ MCU PWM على PIN_1 ، مع ضبط فترة المؤقت والتقاط مقارنة وفقًا لتعديل التردد الضروري (في حالتي هو 38 كيلو هرتز) والواجب دورة (12.5٪ كإعداد افتراضي). يتم ذلك باستخدام وظيفة analogWrite () القياسية على دبابيس PWM وتغيير فقط PER_REG (سجل الفترة) وسجل CC (مقارنة الالتقاط) (الرمز المكتوب هو مجرد قص ولصق من مكتبة wiring_analog). يمكنك ضبط التردد اللازم وفقًا لتغيير مستشعر TSOP PER_REG (وهو الحد الأعلى لإعادة ضبط عداد المؤقت) ، مع ضبط CC بالتناسب مع قيمة الفترة إلى النسبة المئوية المرغوبة لدورة العمل.

بعد ذلك ، يقوم الكود بتعيين المنفذ التسلسلي باستخدام معدل الباود الصحيح وهو 2400 بت في الثانية. لماذا هذا المعدل المنخفض للباود ؟! الإجابة موجودة في ورقة بيانات TSOP التي يمكنك أن تجدها هنا. نظرًا لأن TSOP يتميز بمرشحات رفض الضوضاء العالية لمنع التبديل غير المرغوب فيه ، فمن الضروري إرسال قطار من نبضات متعددة من أجل سحب دبوس خرج TSOP (يعتمد عدد النبضات على إصدار TSOP ، 6 هي القيمة النموذجية). وبالمثل ، يتم سحب خرج TSOP عالياً بعد حد أدنى من الوقت يعادل 10 نبضات أو أكثر. وبالتالي ، من أجل ضبط خرج TSOP كإشارة تعديل TX0 ، من الضروري ضبط معدل البث بالباود مع مراعاة المعادلة التالية:

المسلسل باود <PWM_frequency / 10

يؤدي استخدام 38 كيلو هرتز إلى معدل باود أقل من 3800 بت في الثانية ، مما يعني أن معدل البث بالباود الأعلى "القياسي" المسموح به هو 2400 بكسل في الثانية ، كما كان متوقعًا سابقًا.

هل تريد زيادة معدل الباود؟ هناك خياران.

الخيار الأسهل هو تغيير TSOP إلى إصدار تردد أعلى (مثل TSOP38256) ، مما يسمح لك بمضاعفة معدل الباود (4800 بت في الثانية)

ليس كافي؟! ثم تحتاج إلى إنشاء الارتباط البصري الخاص بك باستخدام IR LED + photodiode ودائرة التضخيم. ومع ذلك ، فإن هذا الحل يتطلب الكثير من الخبرة في الترميز والإلكترونيات لمنع الضوضاء من التأثير على البيانات المرسلة وبالتالي فإن تنفيذه ليس بالأمر السهل على الإطلاق! ومع ذلك ، إذا كنت تشعر بالثقة الكافية ، فنحن نرحب بك لمحاولة إنشاء نظام TSOP الخاص بك!:)

أخيرًا ، قمت بتعيين منفذ SerialUSB (2400 بت في الثانية) الذي أستخدمه لإرسال واستقبال البيانات على الشاشة التسلسلية.

تتضمن الوظيفة loop () الكود اللازم لعبور البيانات عبر المسلسلتين ويتم نسخها مباشرة من مثال رسم SerialPassth من خلال تغيير أسماء المسلسلات فقط.

الخطوة 3: حماية IR LED

التدريع IR LED
التدريع IR LED
التدريع IR LED
التدريع IR LED

إذا قمت بتشغيل الدائرة المذكورة أعلاه بعد تحميل رمز "IRSerial.ino" ، فتحقق من Serial Monitor على Arduino IDE وحاول إرسال سلسلة. من المحتمل أن ترى أن uChip يتلقى بالضبط ما يرسله! يوجد تداخل في الدائرة بسبب الاتصال البصري بين IR LED و TSOP للجهاز نفسه!

هنا يأتي الجزء الصعب من هذا المشروع ، منع الحديث المتبادل! يجب كسر الحلقة لإجراء اتصال تسلسلي ثنائي الاتجاه عبر الأشعة تحت الحمراء.

كيف نكسر الحلقة؟

الخيار الأول ، يمكنك خفض دورة عمل PWM ، وبالتالي خفض خرج الطاقة الضوئية لمصباح LED. ومع ذلك ، فإن هذا النهج يقلل أيضًا من المسافة التي تحصل من خلالها على قناة IR تسلسلية موثوقة. الخيار الثاني هو حماية IR LED ، وبالتالي إنشاء "شعاع" IR اتجاهي. إنها مسألة محاولة وخطأ. أخيرًا ، باستخدام قطعة من خرطوم هواء هوائي أسود ملفوف بورق وشريط ألومنيوم (يوفر عزلًا كهربائيًا) تمكنت من كسر الحديث المتقاطع. وضع IR LED للإرسال داخل الأنبوب يمنع الاتصال بين TX و RX لنفس الجهاز.

انظر إلى الصورة لترى الحل الخاص بي ، لكن لا تتردد في تجربة طرق أخرى و / أو اقتراح طرق أخرى لك! لا يوجد حل مطلق لهذه المشكلة (ما لم تكن بحاجة إلى قناة أحادية الاتجاه بسيطة) وربما تحتاج إلى ضبط تخطيط الدوائر ودورة عمل PWM ودرع الأشعة تحت الحمراء وفقًا لاحتياجاتك.

بمجرد كسر الحديث المتقاطع ، يمكنك التحقق من أن جهازك لا يزال يعمل عن طريق إنشاء حلقة على الجهاز Tx-Rx تستغل انعكاس الطول الموجي للأشعة تحت الحمراء على الأسطح العاكسة للأشعة تحت الحمراء.

الخطوة الرابعة: تواصل

نقل!
نقل!
نقل!
نقل!

هذا كل شيء

جهاز الأشعة تحت الحمراء التسلسلي الخاص بك جاهز للتواصل ، استخدمه لإرسال البيانات عبر الأشعة تحت الحمراء ، أو تشغيل / إيقاف تشغيل أي شيء تريده أو التحقق من حالة المستشعر الذي تخفيه سرًا!

المسافة التي يمكن الاعتماد عليها في الاتصال ليست بقدر جهاز WiFi أو BT. ومع ذلك ، فهو اتجاهي (اعتمادًا على فتحة LED ونظام حماية الأشعة تحت الحمراء المطبق) ، والذي يمكن أن يكون مفيدًا جدًا في بعض التطبيقات!

سأقوم قريبًا بتحميل مقطع فيديو حيث يمكنك رؤية بعض الأمثلة للتطبيقات التي قمت بإنشائها. يتمتع!

موصى به: