فهرست مطالب:
تصویری: UChip - Serial Over IR!: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
امروزه ارتباطات بی سیم به یک ویژگی کلیدی در پروژه های ما تبدیل شده است و صحبت از بی سیم است ، اولین چیزی که به ذهن من می رسد 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
اگر بعد از بارگذاری کد "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 اجرا شده) ، که می تواند در برخی از برنامه ها بسیار مفید باشد!
به زودی ویدئویی را بارگذاری می کنم که در آن می توانید چند نمونه از برنامه هایی را که ساخته ام مشاهده کنید. لذت بردن!
توصیه شده:
متن به گفتار بر روی UChip دارای ARMbasic Powered و سایر SBC های دارای قابلیت ARMbasic کلیک کنید: 3 مرحله
Text to Speech روی یک UChip دارای ARMbasic Powered و سایر SBC های دارای ARMbasic Powered کلیک کنید: معرفی: روز بخیر. اسم من تاد است. من یک متخصص هوا و فضا و دفاعی هستم که از نظر شخصیتی نیز علاقه مند هستم. الهام: از دوران dial-up BBS ، میکروکنترلرهای 8 بیتی ، رایانه های شخصی Kaypro/Commodore/Tandy/TI-994A ، هنگامی که R
UChip - طرح ساده برای کنترل از راه دور موتورها و/یا Servos از طریق 2.4GHz Radio Tx -Rx !: 3 مرحله
UChip - طرح ساده برای کنترل از راه دور موتورها و/یا Servos از طریق رادیو 2.4GHz Tx -Rx !: من واقعاً دنیای RC را دوست دارم. استفاده از اسباب بازی RC به شما این احساس را می دهد که با وجود یک قایق کوچک ، ماشین یا هواپیمای بدون سرنشین ، کنترل چیزی خارق العاده را در دست دارید! با این حال ، سفارشی کردن اسباب بازی های شما و واداشتن آنها به انجام هر کاری که دوست دارید آسان نیست
UChip-قایق RC از بطری های پلاستیکی و پخش کننده CD-ROM!: 4 مرحله
UChip-RC Boat خارج از بطری های پلاستیکی و پخش کننده CD-ROM!: پس از پیاده سازی سخت افزار و نرم افزار برای اتصال رادیو هواپیمای بدون سرنشین به موتورها/سرویس ها ، گام بعدی این بود که از کارهای سخت انجام شده به خوبی استفاده کنم و RC خود را بسازم. اسباب بازی ، که … قایق است! از آنجا که من مهندس مکانیک نیستم ، من آسان را انتخاب کردم
UChip Lightsaber - "باشد که نیرو با شما باشد": 6 مرحله
UChip Lightsaber - "باشد که نیرو با شما باشد": آیا تا به حال آرزو کرده اید که یک جدی یا Sith از جهان جنگ ستارگان باشید و یک تسمه نور قوی برای حمایت از طرف خود بچرخانید؟ پاسخ هرچه که می تواند باشد ، در اینجا این است: چگونه می توان با μChip یک DIY Lightsaber ساخت
UChip - BEEP سنسور سونار با انتقال داده بلوتوث: 4 مرحله
UChip - BEEP سنسور سونار با انتقال داده بلوتوث: اخیراً ، من یک BEEP مانند سونار اتومبیل و آداپتور سریال Bluetooth به USB با استفاده از uChip ایجاد کردم. هر پروژه به تنهایی بسیار جالب بود ، اما … آیا امکان ادغام آنها و ایجاد یک سنسور "BT از راه دور BT مانند ماشین" وجود دارد؟!؟ T