فهرست مطالب:

UChip - Serial Over IR!: 4 مرحله
UChip - Serial Over IR!: 4 مرحله

تصویری: UChip - Serial Over IR!: 4 مرحله

تصویری: UChip - Serial Over IR!: 4 مرحله
تصویری: (COLA-POTATO CHIPS)Who'stheBest?1,2,3 or 4?#shorts #tiktok #viral 2024, جولای
Anonim
UChip - سریال Over IR!
UChip - سریال Over IR!
UChip - سریال Over IR!
UChip - سریال Over IR!

امروزه ارتباطات بی سیم به یک ویژگی کلیدی در پروژه های ما تبدیل شده است و صحبت از بی سیم است ، اولین چیزی که به ذهن من می رسد Wi-Fi یا BT است ، اما مدیریت پروتکل های ارتباطی Wi-Fi یا BT کار آسانی نیست و مصرف زیادی دارد. منابع MCU ، فضای کمی برای برنامه نویسی برنامه من باقی می گذارد. بنابراین ، من معمولاً یک ماژول Wi-Fi/BT خارجی را که به طور پیوسته به میکروکنترلر متصل است انتخاب می کنم تا نقش ها را تقسیم کرده و آزادی بیشتری بدست آورم.

با این حال ، گاهی اوقات Wi-Fi و BT برای برخی از برنامه هایی که نیاز به سرعت بیت پایین و فاصله ارتباطی کوتاه دارند "بیش از حد" هستند. علاوه بر این ، استفاده از Wi-Fi یا BT نشان دهنده ضرورت اتصال تلفن هوشمند یا دستگاه شما با احراز هویت مناسب است.

تصور کنید که به سادگی نیاز به روشن/خاموش کردن یک چراغ خارجی ، یا تغییر شدت لامپ یا بازکردن یک درگاه برقی دارید. آیا ارزش استفاده از Wi-Fi یا BT را دارد؟

بسته به محیط و برنامه های کاربردی ، ارتباط بی سیم با طول موج IR (مادون قرمز) ممکن است مفید باشد. Serial over IR ، با چند جزء خارجی (3 جزء مجزا!) و uChip (یک برد بسیار کوچک سازگار با آردوینو) می تواند راه حلی باشد که به دنبال آن بودید!

صورت حساب مواد (برای یک دستگاه Tx-Rx):

1 x uChip

1 x IR LED: دارای اوج انتشار در 950 نانومتر

1 x TSOP-38238 (معادل آن)

1 x 1KOhm مقاومت

سخت افزار

1 عدد تخته نان/تخته اولیه

1 x لوله پلاستیکی سیاه: قطر داخلی همان اندازه IR IR ، لوله برای جلوگیری از مکالمه متقابل با گیرنده TSOP ضروری است.

1 x فویل آلومینیومی (3cm x 3 cm)

1 x نوار

نکته: در صورت نیاز به ارتباط یک جهته ، می توانید با حذف سخت افزار غیر ضروری RX/TX از مدار یا فعال کردن/غیرفعال کردن کد مربوطه در طرح ، یک دستگاه فقط TX یا only-RX بسازید.

مرحله 1: سیم کشی

سیم کشی
سیم کشی
سیم کشی
سیم کشی
سیم کشی
سیم کشی

مطابق شکل ، اجزاء را به هم وصل کنید.

چند نکته در مورد طرحواره ساده. از آنجا که TSOP-38238 منبع تغذیه 2.5 ولت تا 5 ولت را جذب می کند و حداکثر 0.45 میلی آمپر را جذب می کند (برگه اطلاعات را در اینجا پیدا کنید) ، من گیرنده را با دو پین تغذیه می کنم ، که به ترتیب منبع تغذیه و منبع تغذیه را تأمین می کند. این اجازه می دهد تا گیرنده را در صورت تقاضا روشن یا خاموش کنید و یک سیم کشی سخت افزاری بسیار ساده را تنظیم کنید. علاوه بر این ، در صورت نیاز به ارتباطات یک طرفه ، می توانید با خاموش/فعال کردن TSOP-38238 فقط دستگاه (Tx/Rx) را بسازید یا خیر.

مدار چگونه کار می کند؟

کاملا ساده است. پین خروجی TSOP وقتی سنسور قطار 6 پالس یا بیشتر را در 38KHz تشخیص می دهد ، پایین کشیده می شود ، از طرف دیگر وقتی چنین سیگنالی وجود ندارد ، بالا کشیده می شود. بنابراین ، برای انتقال داده های سریال از طریق IR ، آنچه مدار انجام می دهد تغذیه آند LED با PWM 38KHz مدوله شده با سیگنال سریال TX است که کاتد LED را پایین می آورد.

در نتیجه ، در سطح بالایی از سریال TX0 ، LED بی طرف یا جانبدار نیست (پالس ندارد) و پایه خروجی TSOP بالا کشیده می شود. LED با انتقال سطح پایینی به سریال ، تغذیه می شود و مطابق با سیگنال PWM اعمال شده ، پالس های IR تولید می کند. بنابراین ، خروجی TSOP پایین کشیده می شود.

از آنجا که انتقال مستقیم است (0-> 0 و 1-> 1) نیازی به اینورتر یا منطق دیگر در طرف گیرنده نیست.

من قدرت خروجی نوری LED را با انتخاب چرخه وظیفه PWM متناسب با برنامه تنظیم می کنم. هرچه چرخه کار بیشتر باشد ، قدرت خروجی نوری بیشتر است و بنابراین ، پیام خود را بیشتر منتقل می کنید.

به خاطر داشته باشید که ما هنوز نیاز به تولید پالس داریم! بنابراین ، نباید از چرخه وظیفه بالای 90 go عبور کنید ، در غیر این صورت TSOP سیگنال را به عنوان پالس تشخیص نمی دهد.

آیا به قدرت بیشتری نیاز دارید؟

آیا می توانیم به منظور افزایش جریان ، مقدار مقاومت 1 کیلو اهم را کاهش دهیم؟

شاید ، فقط زیاد مطالبه گر نباشید! حداکثر جریان دریافتی از یک پین MCU در هنگام حرکت پین پورت قوی تر از حد معمول به 7mA محدود می شود (PINCFG. DRVSTR = 1 و VDD> 3V) همانطور که در برگه داده SAMD21 بیان شده است.

با این حال ، پیکربندی استاندارد (که توسط کتابخانه های Arduino IDE به عنوان پیش فرض پذیرفته شده است) جریان را به 2mA محدود می کند. بنابراین ، استفاده از 1 کیلو اهم در حال حاضر محدودیت فعلی را با تنظیمات پیش فرض می دهد!

افزایش جریان فقط مربوط به قطعات الکتریکی نیست. به طور خلاصه:

  • مقاومت را تغییر دهید (حداقل مقدار آن حدود 470 اهم -> VDD/470 ~ 7mA) ؛
  • PORT-> PINCFG-> DRVSTR را به ترتیب 1 تنظیم کنید.

من کد مربوط به این ویژگی را در به روز رسانی بعدی ارائه می کنم.

اما به یاد داشته باشید ، غرق شدن و تخلیه جریان از پین های MCU نزدیک به محدوده آن روش خوبی نیست. در واقع ، طول عمر و قابلیت اطمینان MCU را کاهش می دهد. بنابراین ، من پیشنهاد می کنم قدرت درایو معمولی را برای استفاده طولانی مدت حفظ کنید.

مرحله 2: برنامه نویسی

طرح "IRSerial.ino" را در uChip (یا برد سازگار با آردوینو که از آن استفاده می کنید) بارگذاری کنید.

در صورت نیاز به تغییر پین تولید کننده PWM ، مطمئن شوید که از پینی متصل به تایمر TCC استفاده می کنید ، زیرا این نسخه از کد فقط با تایمرهای TCC کار می کند (برای اطلاع از این اطلاعات "variant.c" برد خود را بررسی کنید) من کد را برای استفاده از تایمرهای TC در به روز رسانی های بعدی اضافه می کنم.

کد بسیار ساده است. پس از تنظیم PIN_5 پایین (ارائه TSOP GND) و PIN_6 بالا (تغذیه TSOP) ، MCU PWM را در PIN_1 شروع می کند ، مدت زمان سنج را تنظیم و ضبط را مطابق با تعدیل فرکانس لازم (در مورد من 38 کیلوهرتز است) و وظیفه چرخه (12.5 as به طور پیش فرض). این کار با استفاده از تابع analogWrite () استاندارد در پین های PWM و تغییر فقط PER_REG (ثبت دوره) و CC (جذب مقایسه) انجام می شود (کد نوشته شده به سادگی یک برش و چسباندن از کتابخانه wiring_analog است). می توانید فرکانس لازم را بر اساس سنسور TSOP که PER_REG را تغییر می دهد (که حد بالا تنظیم مجدد شمارنده تایمر است) تنظیم کنید ، در حالی که CC را متناسب با مقدار دوره به درصد دلخواه چرخه کار تنظیم کنید.

در مرحله بعد ، کد ، پورت سریال را با استفاده از نرخ baud صحیح که 2400bps است ، تنظیم می کند. چرا چنین نرخ پایین باود ؟! پاسخ در برگه اطلاعات TSOP است که می توانید در اینجا پیدا کنید. از آنجایی که TSOP دارای فیلترهای رد نویز بالا برای جلوگیری از سوئیچینگ نامطلوب است ، لازم است یک قطار از چند پالس به منظور پایین کشیدن پین خروجی TSOP ارسال شود (تعداد پالس ها بستگی به نسخه TSOP دارد ، 6 مقدار معمولی است). به طور مشابه ، خروجی TSOP پس از حداقل زمان معادل 10 پالس یا بیشتر به بالا کشیده می شود. در نتیجه ، برای تنظیم خروجی TSOP به عنوان سیگنال تعدیل کننده TX0 ، لازم است نرخ baud را با توجه به معادله زیر تنظیم کنیم:

سریال Baud <PWM_frequency/10

با استفاده از 38 کیلوهرتز این میزان باودرات کمتر از 3800bps را در بر دارد ، به این معنی که نرخ استاندارد مجاز استاندارد بالاتر از 2400 پیکسل بر ثانیه است ، همانطور که قبلاً پیش بینی شده بود.

آیا می خواهید نرخ باود را افزایش دهید؟ دو گزینه وجود دارد.

ساده ترین گزینه تغییر TSOP به نسخه فرکانس بالاتر (به عنوان TSOP38256) است که به شما امکان می دهد نرخ باود (4800bps) را دو برابر کنید.

کافی نیست؟! سپس باید پیوند نوری خود را با استفاده از یک مدار ساده LED+فوتودیود و تقویت تقویت کنید. با این حال ، این راه حل نیاز به رمزگذاری و تخصص الکترونیکی زیادی دارد تا از تأثیر نویز بر داده های منتقل شده جلوگیری کند و بنابراین اجرای آن به هیچ وجه آسان نیست! با این حال ، اگر از اعتماد به نفس کافی برخوردار هستید ، می توانید سیستم TSOP خود را امتحان کنید!:)

در نهایت ، من پورت SerialUSB (2400bps) را که از آن برای ارسال و دریافت داده ها در مانیتور سریال استفاده می کنم ، تنظیم کردم.

تابع حلقه () شامل کد لازم برای عبور داده ها در دو سریال است و مستقیماً از مثال طرح SerialPassthrough فقط با تغییر نام سریال کپی می شود.

مرحله 3: محافظت از LED IR

IR محافظ IR
IR محافظ IR
IR محافظ IR
IR محافظ IR

اگر بعد از بارگذاری کد "IRSerial.ino" مدار بالا را فعال کردید ، Serial Monitor را در Arduino IDE بررسی کنید و سعی کنید یک رشته ارسال کنید. احتمالاً خواهید دید که uChip دقیقاً همان چیزی را که منتقل می کند دریافت می کند! به دلیل ارتباط نوری بین IR LED و TSOP همان دستگاه ، در مدار یک بحث متقابل وجود دارد!

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

چگونه حلقه را بشکنیم؟

گزینه اول ، چرخه کار PWM را کاهش می دهید ، بنابراین خروجی قدرت نوری LED را کاهش می دهید. با این حال ، این روش همچنین فاصله ای را که از طریق آن یک کانال IR سریال قابل اعتماد دریافت می کنید ، کاهش می دهد. گزینه دوم محافظت از LED IR است ، بنابراین یک "پرتو" IR جهت دار ایجاد می کند. مسئله امتحان و خطاست ؛ سرانجام ، با استفاده از یک قطعه شلنگ هوا پنوماتیک سیاه که در فویل و نوار آلومینیومی پیچیده شده بود (عایق الکتریکی را ارائه می دادم) موفق شدم بحث متقاطع را بشکنم. قرار دادن LED مادون قرمز فرستنده در داخل لوله از ارتباط بین TX و RX همان دستگاه جلوگیری می کند.

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

هنگامی که گفتگوی متقاطع را شکستید ، می توانید با ایجاد یک حلقه در دستگاه Tx-Rx که از بازتاب طول موج IR در سطوح بازتابنده IR استفاده می کند ، مطمئن شوید که دستگاه شما هنوز کار می کند.

مرحله 4: ارتباط برقرار کنید

برقراری ارتباط!
برقراری ارتباط!
برقراری ارتباط!
برقراری ارتباط!

فقط همین

سریال شما روی دستگاه IR آماده برقراری ارتباط است ، از آنها برای ارسال داده از طریق IR ، روشن/خاموش کردن هر چیزی که دوست دارید استفاده کنید یا وضعیت سنسوری را که مخفیانه مخفی کرده اید بررسی کنید!

فاصله ای که ارتباطات از طریق آن قابل اعتماد است به اندازه یک دستگاه WiFi یا BT نیست. با این حال ، جهت دار است (بسته به دیافراگم LED و سیستم محافظ IR اجرا شده) ، که می تواند در برخی از برنامه ها بسیار مفید باشد!

به زودی ویدئویی را بارگذاری می کنم که در آن می توانید چند نمونه از برنامه هایی را که ساخته ام مشاهده کنید. لذت بردن!

توصیه شده: