مجله مطالب خواندنی

سبک زندگی، روانشناسی، سلامت،فناوری و ....

مجله مطالب خواندنی

سبک زندگی، روانشناسی، سلامت،فناوری و ....

با وسایل ساده و ارزان رسیور مادون قرمز USB بسازید

[ad_1]

در این ساختنی یاد می‌گیرید چطور یک رسیور مادون قرمز USB کوچک و ارزان بسازید. از این رسیور می‌توانید در پروژه‌های مختلف مثل ربات‌ها، کوادکوپترها و سایر دستگاه‌های کنترلی استفاده کنید. این رسیور مادون قرمز کیبورد هم دارد و به همین خاطر می‌توانید از آن بدون کامپیوتر استفاده کنید.پس با ساختنی همراه باشید!

رسیور مادون قرمز USB بسازید
رسیور مادون قرمز USB بسازید

میکروکنترلری که برای ساخت رسیور استفاده می‌کنید، کار یک کیبورد استاندارد را می‌کند و به همین خاطر می‌توانید از آن به همراه هر کامپیوتری استفاده کنید. این یعنی با این رسیور مادون قرمز و یک کنترل می‌توانید کامپیوترتان را کنترل کنید.

گام اول : وسایل مورد نیاز

وسایل مورد نیاز
وسایل مورد نیاز
  • برد digispark
  • رسیور مادون قرمز ۳۸kHz
  • یک ریموت کنترل
  • دستگاه لحیم کاری
  • یک کامپیوتر با نرم افزار Arduino IDE

گام دوم : رسیور مادون قرمز را لحیم کنید

ابتدا یکی از پایه‌های رسیور (OUT) را خم کنید تا داخل پین P2 فرو برود. پایه‌های دیگر را هم داخل پین‌های ۵V و GND فرو کنید.

سپس یک تکه کوچک هیت شرینک (یا چسب) به قسمت افقی رسیور مادون قرمز وصل کنید.

دوباره رسیور را روی digispark قرار بدهید و هر سه پایه را بهم لحیم کنید. سپس قسمت‌های اضافی پایه‌ها را ببرید. بخش سخت افزاری رسیور USB آماده است.

گام سوم : کد دکمه‌های کنترل را دریافت کنید

کدهای دکمه‌های ریموت کنترل را پیدا کنید
کدهای دکمه‌های ریموت کنترل را پیدا کنید

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

اما اگر برد آردوینو نداشته باشید، کارتان کمی‌سخت می‌شود. در این صورت باید با همین قطعاتی که دارید، کدهای به خصوص هر دکمه را پیدا کنید. برای اینکار، ابتدا باید درایورهای digiusb را دانلود کنید. به این لینک بروید و روی دکمه download zipکلیک کنید. بعد از دانلود، محتوای پوشه DigisparkExamplePrograms-master را در هر دایرکتوری که می‌خواهید اکسترکت کنید.

سپس به مسیر DigisparkExamplePrograms-master/C++/DigiUSB Windows Driver بروید و روی installdriver کلیک کنید. حالا با کمک این راهنما، بردهای مناسب را در نرم افزار Arduino IDE نصب کنید.

کدهای زیر را در قالب یک پروژه آردوینوی جدید کپی کنید و آن را روی برد digispark آپلود کنید:

/************************************* * This code is written by Laurens Wuyts * For questions: laurens.wuyts@gmail.com *  *  * Microcontroller: ATtiny85 * Dev board:       Digispark *  *************************************/ #include <DigiUSB.h>  uint8_t situation = 0; uint8_t START = 0; uint8_t x = 0; uint8_t BIT = 0; uint8_t Id = 0; uint8_t Id_inv = 0; uint8_t Data = 0; uint8_t Data_back = 0; uint8_t Data_inv = 0; uint8_t Repeat = 0; uint8_t sended = 0;  uint16_t Time_old = 0; uint16_t Time = 0; uint16_t TimeDelta = 0;   void setup(void)    attachInterrupt(0, IR_Read, FALLING);      pinMode(1,OUTPUT);   digitalWrite(1,LOW);    DigiUSB.begin();    void loop(void)    if(sended == 1)      DigiUSB.println(Data_back, DEC);     sended = 0;    else      DigiUSB.delay(10);      void IR_Read(void) {   digitalWrite(1,HIGH);   Time = micros();   if (Time_old != 0)      TimeDelta = Time - Time_old;     if ((TimeDelta > 12000)&&(TimeDelta < 14000))        START = 1;       x = 0;       situation = 1;       Id = 0;       Id_inv = 0;       Data = 0;       Data_inv = 0;      else if ((TimeDelta > 10000)&&(TimeDelta < 12000))        situation = 2; // repeat      else if ((TimeDelta > 1500)&&(TimeDelta < 2500))        situation = 3; //"1"       BIT = 1;      else if ((TimeDelta > 1000)&&(TimeDelta < 1500))        situation = 3; //"0"       BIT = 0;      else situation = 5;      if (situation == 3)        if (x < 8)          Id  else if (x < 16) = BIT;         if (x < 15) Id_inv <<= 1;         x++;        else if (x < 24) = BIT;         if (x < 23) Data <<= 1;         x++;        else if (x < 32) = BIT;         if (x < 31)            Data_inv <<= 1;          else                       /* DO SOMETHING HERE */           sended = 1;                      Data_back = Data;           Repeat = 0;                  x++;             else if (situation == 2)        if(Repeat == 1)                   /* DO SOMETHING HERE */         /*sended = 1;*/                 else          Repeat = 1;                  Time_old = Time;   digitalWrite(1,LOW); }

بعد از آپلود کدها، به مسیر DigisparkExamplePrograms-master/Python/DigiUSB/Windows/ بروید و فایل monitor.exe را باز کنید. حالا یک پنجره جدید باز می‌شود که با فشردن هر دکمه، کد مخصوص دکمه در آن نمایش داده خواهد شد. کد هر دکمه را بنویسید چون بعداً به آن نیاز خواهید داشت.

گام چهارم : کدهای Digispark را آپلود کنید

برد Digispark را برنامه ریزی کنید
برد Digispark را برنامه ریزی کنید

حالا باید کدهای اصلی را روی Digispark آپلود کنید. در این کدها باید کدهای مخصوص ریموت کنترل خودتان که در مرحله قبل پیدا کرده اید را وارد کنید. برای مثال اگر کد دکمه mute کنترل شما ۱۰۰ باشد، باید کدهایی که دانلود می‌کنید را به این شکل تغییر بدهید:

#define mute	۲۴۰
این کد اصلی است که باید به حالت زیر تغییر پیدا کند:
#define mute	۱۰۰

دقت کنید که وقتی می‌خواهید یک دکمه جدید تعریف کنید، نمی‌توانید از فاصله در نام استفاده کنید.

برای اضافه کردن کارکردهای جدید، از loop function استفاده کنید و کارکرد دکمه‌ها را تغییر بدهید یا برای دکمه‌های جدید کارکرد تعریف کنید.

/************************************* * This code is written by Laurens Wuyts * For questions: laurens.wuyts@gmail.com *  *  * Microcontroller: ATtiny85 * Dev board:       Digispark *  *************************************/  /**** Define Remote control keys ****/ #define Power     64 #define key_1     32 #define key_2     160 #define key_3     96 #define key_4     16 #define key_5     144 #define key_6     80 #define key_7     48 #define key_8     176 #define key_9     112 #define key_0     136 #define vol_up    224 #define vol_down  208 #define ch_up     72 #define ch_down   8 #define mute      240 #define next      172 #define prev      164 #define up        6 #define down      134 #define left      166 #define right     70 #define playpause 156 #define key_stop  180 /************************************/  #include "TrinketHidCombo.h"  uint8_t situation = 0; uint8_t START = 0; uint8_t x = 0; uint8_t BIT = 0; uint8_t Id = 0; uint8_t Id_inv = 0; uint8_t Data = 0; uint8_t Data_back = 0; uint8_t Data_inv = 0; uint8_t Repeat = 0; uint8_t sended = 0;  uint16_t Time_old = 0; uint16_t Time = 0; uint16_t TimeDelta = 0;   void setup(void)    /* Use INT0(P2) on the Digispark */   attachInterrupt(0, IR_Read, FALLING);      pinMode(1,OUTPUT);   digitalWrite(1,LOW);    TrinketHidCombo.begin();    void loop(void)    if(sended == 1)      /* Assign functions to the buttons */     if(Data_back == vol_up)        TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_UP);      else if(Data_back == vol_down)        TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_DOWN);      else if(Data_back == next)        TrinketHidCombo.pressMultimediaKey(MMKEY_SCAN_NEXT_TRACK);      else if(Data_back == prev)        TrinketHidCombo.pressMultimediaKey(MMKEY_SCAN_PREV_TRACK);      else if(Data_back == key_stop)        TrinketHidCombo.pressMultimediaKey(MMKEY_STOP);      else if(Data_back == playpause)        TrinketHidCombo.pressMultimediaKey(MMKEY_PLAYPAUSE);      else if(Data_back == mute)        TrinketHidCombo.pressMultimediaKey(MMKEY_MUTE);      else if(Data_back == Power)        TrinketHidCombo.pressSystemCtrlKey(SYSCTRLKEY_SLEEP);      else if(Data_back == key_0)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_0);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_1)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_1);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_2)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_2);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_3)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_3);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_4)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_4);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_5)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_5);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_6)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_6);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_7)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_7);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_8)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_8);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == key_9)        TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_9);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == up)        TrinketHidCombo.pressKey(0, KEYCODE_ARROW_UP);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == down)        TrinketHidCombo.pressKey(0, KEYCODE_ARROW_DOWN);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == left)        TrinketHidCombo.pressKey(0, KEYCODE_ARROW_LEFT);       TrinketHidCombo.pressKey(0, 0);      else if(Data_back == right)        TrinketHidCombo.pressKey(0, KEYCODE_ARROW_RIGHT);       TrinketHidCombo.pressKey(0, 0);          sended = 0;    else        TrinketHidCombo.poll();      /* Read the IR code */ void IR_Read(void) {   digitalWrite(1,HIGH);   Time = micros();   if (Time_old != 0)      TimeDelta = Time - Time_old;     if ((TimeDelta > 12000)&&(TimeDelta < 14000))        START = 1;       x = 0;       situation = 1;       Id = 0;       Id_inv = 0;       Data = 0;       Data_inv = 0;      else if ((TimeDelta > 10000)&&(TimeDelta < 12000))        situation = 2; // repeat      else if ((TimeDelta > 1500)&&(TimeDelta < 2500))        situation = 3; //"1"       BIT = 1;      else if ((TimeDelta > 1000)&&(TimeDelta < 1500))        situation = 3; //"0"       BIT = 0;      else situation = 5;      if (situation == 3)        if (x < 8)          Id  else if (x < 16) = BIT;         if (x < 15) Id_inv <<= 1;         x++;        else if (x < 24) = BIT;         if (x < 23) Data <<= 1;         x++;        else if (x < 32) = BIT;         if (x < 31)            Data_inv <<= 1;          else                       /* DO SOMETHING HERE */           sended = 1;                      Data_back = Data;           Repeat = 0;                  x++;             else if (situation == 2)        if(Repeat == 1)                   /* DO SOMETHING HERE */         sended = 1;                 else          Repeat = 1;                  Time_old = Time;   digitalWrite(1,LOW); }

بعد از اینکه کدها را روی برد digispark آپلود کردید، رسیور مادون قرمز را یکبار از کامپیوتر جدا کنید و دوباره به آن وصل کنید. ۵ ثانیه صبر کنید و سپس ریموت کنترل و رسیور را تست کنید.

رسیور مادون قرمز USB آماده است

رسیور مادون قرمز آماده است
رسیور مادون قرمز آماده است

این رسیور بخاطر اندازه کوچکش تقریباً در هر پروژه ای قابل استفاده است. کارکردهای بسیار گسترده ای هم دارد و می‌توانید کلید حل مشکل بسیاری از پروژه‌های الکترونیکی باشد.

رمز فایل‌های دریافتی saakhtani.ir است.

منبع

نوشته با وسایل ساده و ارزان رسیور مادون قرمز USB بسازید - #کاردستی #علمی #خبر


[ad_2]
لینک منبع
بازنشر: مفیدستان



لینک منبع :با وسایل ساده و ارزان رسیور مادون قرمز USB بسازید

Images for با وسایل ساده و ارزان رسیور مادون قرمز USB بسازید با وسایل ساده و ارزان رسیور مادون قرمز USB بسازید | ساختنی saakhtani.ir/archive/1395/09/49585‎Cached6 دسامبر 2016 ... در این ساختنی یاد می‌گیرید چطور یک رسیور مادون قرمز USB کوچک و ارزان بسازید. از این رسیور می‌توانید در پروژه‌های مختلف مثل ربات‌ها، ... Images about #رسیور tag on instagram - The Picta www.pictaram.com/.../رسیور/J0HWPswrwAAAF0HWIpVgwAAAFr4BAA%253D%253D‎CachedImage on instagram about #رسیور. ... 24- ساپورت تله تکست فارسی 25- قابلیت خروجی COAXIAL 26- ساپورت انواع USB WiFi قدیمی ... ✳️با قطعات الکترونیکی ارزان رسیور مادون قرمز FLIRC بسازید✳ برای دریافت فایل آموزش ساخت به کانال تلگرام مراجعه کنید. ... ست کامل آیینه و کنسول و دو عدد پروانه یکی جا حوله ای یکی ساده. سر - شرکت نمک پاینده - سامانه جامع بازرگانی صنعتی ایران namak.sanaatgar.com/sch-all-سر.html توضیحات: نام عمومی:خریدار زهر مار دو سر قرمز نام تجاری : نام علمی: مشخصات فنی: توضیحات تکمیلی: محل تخلیه:. ...... شدن مواد با تراکم بالا وقیمت ارزان سایزها واندازههای متنوع توضیحات تکمیلی: . ...... کود سوپر فسفات ساده 17% و با اسید محلول8 - 12% که در آب نسبتا محلول است و از ...... (فروشنده) وسایل تولید درب رادیاتور و وایر خودرو. اموزش باز کردن قفل بدون کلید با سنجاق unlock.iran.sc/page/register.php با آموختن آموزش های فوق العاده ساده و کاربردی باز کردن انواع قفل ... حتی آموزش ساخت وسایل لازم به طور کامل نشان داده شده ..... همچنین CDهای ارزان نامرغوب حتی با رعایت 9 شرط بالا باز هم عمر کوتاهی خواهند داشت. ..... دیود مادون قرمز دیودهای مخصوص فرستنده ها و کنترول های از راه دور است که قدرت بالای ...... سایت ماهواره|رسیور,ایکلاس,استارست. اخبار دنیای فناوری اطلاعات [بایگانی] - انجمن مورتال کمبت | Mortal ... www.forum.mkcenter.ir/archive/index.php/t-2619.html‎Cached Similar6 فوریه 2013 ... محققان این نتایج جالب را با طیف مهارتهایی که در این بازی ساده مورد نیاز است، ..... همه مردم حراج یا خرید کالاهای ارزان قیمت را دوست دارند اما در کل برای چیزی که می ...... USB 2 و USB 3 ،حداکثر سرعت انتقال اطلاعات با USB 3 تا ...... اینفرارد یا اشعه مادون قرمز از قدیمیترین سنسورهاست که در وسایل الکترونیکی استفاده شد. راحت|راحت - سایت تبلیغاتی ادم www.adem.ir/tag/راحت تگ ها : فروش کانکس ویونا قیمت کانکس ویونا کانکس ارزان خرید کانکس ویونا کانکس ..... ای که بتواند هم مهرهای ساده و هم مهرهای اتومات را بسازید چند گام دیگر فاصله دارید. ...... در جهان ،کلیه سازه های رستوران و وسایل داخل آن را به مدت 10 سال تضمین می کند. ...... با کیفیت پخش بالا بدنه استیل دارای 3 دستبند مشکی - قرمز - ابی با قابلیت ... ام - شمع دکوری و تزئینی - اریسفا iso.arisfa.com/ام/‎Similarتوجه داشته باشید کلیه محصولات این شرکت بصورت رسمی و با مجوز ..... ساعت مچی سامورائی رنگ قرمز ، یک ساعت شیک و مدرن برای آنهایی که می خواهند به روز باشند ...... وسیله ای ساده و مناسب برای تقویت عضلات و اندامهای مختلف ..... دارای درگاه USB جهت اتصال انواع Cool disk و پخش فایل های صوتی های ذخیره شده در آن حتی در فولدرها حافظه میلی razer صفحه گیگابایتی متری میلی متری صفحه نمایش ... zendegi.xyz/.../حافظه+میلی+razer+صفحه+گیگابایتی+متری+میلی+متری+صفحه+نمایش+کارت+گرافیک+میکروفون+array+پورت+hdmi+می...‎Cachedانجام آرایش تیره روی چشمان درشت کار ساده و راحتی است. .... قادر است با انتقال صدا در جهت عکس صدا را از تلویزیون به دستگاه دیجیتال یا رسیور a/v و از آنجا ..... همچنین این مادربرد دارای درگاه usb 3.1 نسل دوم با پهنای باند 10 گیگابیت بر ثانیه است. ... کیبرد aorus k9 optical در گونه مجهز به سویچ های آبی و قرمز flaretech عرضه می شود. آموزشی - گام یازدهم : مدار ربات خورشیدی را بسازید - بلاگ sajad25.blog.ir/?page=14‎Cached20 مارس 2017 ... تعمیر رسیور رایگان در منزل ... پس با ما باشید تا توضیحی درباره نحوه کار پردازنده CPU و نحوه خرید آن .... این مرحله نیز بسیار ساده است خروجی های رم روی مادربرد را میبینید که .... ب ) ارزان قیمت و گران قیمت : تقسیم بندی مواد و وسایل آموزشی بر اساس .... در این این الگوریتم میتواند از سنسور های مادون قرمز مانند مدار زیر ...