مشخصات:
- میکروکنترلر MEGA64 / MEGA128
-سه خروجی موتور DC با درایور DRV8870
- 5 ورودی اپتوکوپلری
- ارتباط RS485
- ماژول WiFi
- بیزر
- در اختیار قرار داشتن 18 پایه از میکروکنترلر
طراحی شده با EAGLE
به علت سوختن میکروکنترلر PIC دستگاه تردمیل، یک برد جایگزین با استفاده از میکروی AVR طراحی، ساخته و برنامه نویسی شد.
برنامه ای که قرار داده میشود تست شده و به خوبی کار میکند. منبع برنامه از سایت sisoog.com میباشد. با کمی تغییرات برای مگا64 تست شده.
تغییراتی که در برنامه باید ایجاد کنید با توجه به سخت افزار خودتان: 1- تغییر در شماره وقفه ( Any change وقفه مورد استفاده باید قابلیت تشخیص هر تغییر در پایه را داشته باشد) 2- تغییر در خواندن وضعیت پایه وقفه در کتابخانه EV17xx_Decoder.c خط 57.
از این کتابخانه برای خواندن ریموت های کد فیکس هم میتوانید استفاده کنید.
متن توضیح گرفته شده از سایت sisoog.com :
متأسفانه سورس های زیادی وجود دارند که از منابع متنباز (OpenSource) کپی شدهاند و بهصورت تجاری در فضای اینترنت به فروش میرسند. سورس ریموت های کدلرن نیز از این دسته است. اگر سورس های متنباز وجود نداشتند شاید این میزان از پیشرفت در حوزه علم و تکنولوژی حاصل نمیشد. پس شایسته است که بهجای منفعت شخصی خود به منفعت جمعی بیندیشم و سورس هایی ازایندست را بفروش نرسانیم و با انتشار رایگان آنها نقشی در بالا بردن سطح دانش داشته باشیم.
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است. بسترهای متفاوتی برای ارسال اطلاعات وجود دارد که از پرکاربردترین آنها، امواج مادونقرمز است که نمونهاش را همگی در ریموتهای تلویزیون و وسایل خانگی دیدهایم و نوع دیگر، ریموتهای رادیویی هستند که از امواج رادیویی برای ارسال دادهها استفاده میکنند. موضوع بحث ما، مورد دوم است: ریموتهای رادیویی. این ریموتها برای اینکه بتونند اطلاعات را منتقل کنند نیاز دارند که اول اطلاعات را روی یه موج دیگر که به آن موج حامل گفته میشود سوار (مدولاسیون) کنند. با این کار اطلاعات قابلیت انتشار در فضا را بهدست خواهند آورد.
مدلاسیون دو نوع آنالوگ و دیجیتال دارد که خود به انواع دیگری تقسیمبندی میشوند. در مدولاسیون، سیگنال فرکانس بالا (حامل) بر اساس سیگنال پیام تغییر داده میشود. سیگنال حامل خواص مختلفی ازجمله دامنه، فرکانس و فاز دارد که میتوانند بر اساس سیگنال پیام تغییر داده شوند و ازاینرو انواع مختلفی از مدولاسیون پدید میآید. (عکس زیر)
انواع مدلاسیون
همانطور که در عکس فوق مشاهده میکنید، در مدلاسیون AM سیگنال داده بر روی دامنهی موج حامل تأثیر میگذارد و در مدلاسیون FM سیگنال داده بر روی فشردگی سیگنال حامل (فرکانس) تأثیر میگذارد. این مدلایسون بهمراتب داری برد بیشتری نسبت به مدلاسیون AM است؛ چراکه در مدلاسیون AM کاهش دامنه به معنی کاهش توان فرستنده است. نوع بعدی مدلاسیون دیجیتال (Keying) است که درواقع نوعی از مدلاسیون FM محسوب میشود.
در مدارات دیجیتال ما با دو منطق صفر و یک سروکار داریم که برای انتقال به فرکانسهای F0 و F1 تبدیل میشوند. فرکانس F0 یعنی منطق 0 و فرکانس F1 یعنی منطق 1. در این روش کار گیرنده خیلی ساده است و باید بتواند تفاوت بین فرکانس F0 و F1 را تشخیص دهد و آشکار کند. در ریموتکنترلهای رادیویی برای ارسال داده از این نوع مدلاسیون یا مدلاسیون های مشابه استفاده میشود.
ریموتهای کدلرن از مدلایسون ASK برای ارسال داده استفاده میکنند. مدلاسیون ASK زیرشاخهی سادهشدهای از مدلاسیون دیجیتال است؛ فرکانس F0 از آن حذف شده است و فقط فرکانس F1 در آن استفاده میشود. یعنی وقتیکه منطق 1 باشد فرکانس F1 تولید میشود و وقتیکه منطق صفر است فرستنده خاموش میشود و هیچ سیگنالی تولید نمیشود.
مدلاسیون ASK
ترفند هم باعث سادهسازی فرستنده و هم گیرنده میشود؛ چراکه در فرستنده فقط باید فرکانس حامل با فرکانس F1 تولید شود و در گیرنده هم فقط باید فرکانس F1 شناسایی شود.
تا اینجا با نحوهی ارسال اطلاعات آشنا شدیم. برای ساخت یک ریموت کنترل ابتدا لازم است که امواج ارسالی از ریموت (فرستنده) را دریافت کنیم که بعد از پردازش بتوانیم عملی مناسب با درخواست کاربر را اجرا کنیم. با توجه به نوع فرستنده نیاز داریم که یک گیرنده ASK داشته باشیم که فرکانس آن با فرکانس ریموت یکی باشد، یعنی اگر از ریموت با فرکانس 433 مگاهرتز استفاده میکنیم گیرنده ASK نیز باید با همان فرکانس کار کند. در غیر این صورت مدار بهدرستی کار نخواهد کرد.
مطابق عکس زیر میتوانیم مدار گیرنده را خودمان بسازیم؛ اما با توجه به پیچیدگیهای بحث RF این کار توصیه نمیشود و بهتر است که از مدارها و ماژولهای آمادهی موجود در بازار استفاده کنید.
مدار گیرنده ask
معمولاً ریموتها در دو فرکانس 433 و 315 مگاهرتز موجود هستند. در خرید گیرنده دقت کنید که گیرندهی تهیهشده با فرکانس ریموت شما همخوانی داشته باشد. در حال حاضر دو نوع گیرنده ASK در بازار ایران یافت میشود:
مدل قدیمیتر درواقع یک گیرندهی ترانزیستوری ساده از نوع super regenerative است که دارای حساسیت و دقت کمتر و قیمت پایینتری است. این گیرنده نیاز به ولتاژ کاری 55 ولت دارد و خروجی داده صفر و یک دارد، ولی به دلیل ساختار و نحوه آشکارسازی، بسیار تحت تأثیر نویزهای محیطی قرار میگیرد. (عکس زیر)
مدل جدیدتر درواقع یک گیرنده super heterodyne است و دارای مدار پیچیدهتری برای آشکارسازی داده است. این گیرنده از کریستال کوارتز استفاده می کند؛ همین امر سبب میشود که هم کیفیت گیرندگی و هم دقت بالاتری داشته باشد.
این گیرندهها علاوه بر 5 ولت قادرند با 3.3 ولت نیز به خوبی کار کنند و خروجی داده هم دارند. درواقع چینش پایههای این دو نمونه گیرنده به نحوی است که بهراحتی میتوان آنها را جایگزین هم کرد. پس اگر گیرندهای دارید که از برد آن راضی نیستید میتوانید فقط ماژول ASK را به super heterodyne تغییر دهید و شاهد برد بهتر باشید.
بعد از دریافت دادهها و هموار شدن مسیر، نیاز است که پروتکل ارسال اطلاعات اینگونه ریموت ها را بشناسیم تا قادر به رمزگشایی آنها باشیم. اولین نکتهی مبهی که در خصوص ریموتهای کدلرن به ذهن میآید، خود واژه کدلرن است. درواقع تا قبل از فراگیر شدن این نوع ریموتها، ریموتهای کدفیکس وجود داشتند. ریموتهای کدفیکس دارای 8 پایه بودند که برای کد کردن آنها باید این پایهها را در حالات مختلفی به صفر و یک وصل میکردید و همین کار را در گیرنده نیز تکرار میکردید تا گیرنده و فرستنده باهم همخوانی داشته باشند و کار کنند. این عمل را کد دادن میگفتند.
کد دادن ریموت مد فیکس
دلیل نامگذاری کدفیکس هم این است که گیرندههای این نوع ریموت، کد ثابتی دارند و اگر بخواهید ریموت دیگری نیز با این گیرنده کار کند باید دقیقاً مطابق دیگر ریموتها کددهی شود. که البته این موضوع به لحاظ امنیتی مساله ساز است؛ چراکه اگر کد انتخابی شما را کسی متوجه شود بهراحتی میتواند یک ریموت سازگار با گیرنده شما بسازد.
اما ریموتهای کدلرن دارای امنیت بالاتری هستند. به این معنی که توسط شرکت یک کد 20 بیتی اتفاقی در حافظه آنها نوشته شده است. هر ریموت یک کد منحصربهفرد دارد و دو ریموت با کد یکسان وجود ندارد: بنابر این برای همگام کردن ریموتها با گیرنده، گیرنده باید قادر باشد که کد هر ریموت را در خود ذخیره کند تا در مواقع درخواست، چک کند که آیا ریموت معتبر هست یا نه. این عمل را اصطلاحاً لرن کردن میگویند. یعنی شما باید ریموت موردنظر خود را در گیرنده لرن کنید و برای همین هم به آنها ریموتهای کدلرن میگویند.
خوشبختانه پروتکل مورداستفاده در ریموتهای کد لرن مشابه است و فرقی نمیکند که شما از آیسی HS1527 یا EV1527 یا خانوادههای مشابه استفاده میکنید. همه از انکدر OTP استفاده میکنند.
OTP ENCODER
در این روش 24 بیت داده از ریموت ارسال میشود که بیست بیت اول همان کد منحصربهفرد برای هر ریموت است و 4 بیت انتهایی مربوط به وضعیت کلیدهای فشردهشده ریموت است. در ابتدای هر ارسال، یک وضعیت همزمانی (Preamble) ارسال میشود که ما با دریافت این همزمانی باید منتظر دریافت 24 بیت داده باشیم. با توجه به توضیحات ارائهشده، ما نیاز 3 حالت منحصربهفرد داریم: حالت اول برای ایجاد سیگنال همزمانی (Preamble)، حالت دوم برای ایجاد وضعیت 1 منطقی و حالت سوم برای ایجاد 0 منطقی.
توجه داشته باشید زمانهای ذکرشده بهعنوان مثال هستند. برای روشنتر شدن موضوع و درواقع میزان این زمانها با توجه به نوسانساز داخلی آیسی تعیین میشود ولی نسبتها بهصورت توضیح داده شده حفظ میشوند.
با توجه به اینکه کتابخانهی ریموت کدلرن در سال 2009 نوشته شده و بعدازآن هیچ تصحیحی روی آن صورت نگرفته بود، بخشهایی از کتابخانه برای عملکرد بهتر و اصولیتر شدن کد نوشتهشده، بازنویسی شد. اصلیترین قسمت بازنویسی شده مربوط به روال دکد کتابخانه است. در کتابخانهی قدیمی، حداکثر و حداقل طول پالس بر اساس میکروثانیه در برنامه تعریف شده بود. این مقادیر هنگام تغییر فرکانس کاری تایمر، مشکلساز میشدند و با تغییر این فرکانس، کد دیگر بهدرستی کار نمیکرد.
فرکانس 1 مگاهرتز و 2 مگاهرتز بهعنوان فرکانس شمارش تایمر مورد تست قرار گرفت که در هیچکدام مشکلی وجود نداشت و برنامه بهدرستی کار میکرد.
تغییر صورت گرفتهی بعدی، مربوط به روال ذخیرهسازی بیتهای دریافتی از ریموت است. در کتابخانه قدیمی از یک آرایه برای نگهداری هر بیت استفاده میشد که 24 بایت از حافظه Ram را اشغال میکرد.
برنامه دارای 3 حالت مختلف، جهت عملکرد است:
بعد از روشن شدن مدار، دستگاه در حالت نرمال است. در این حالت، LED بر روی برد، یک ثانیه روشن و یک ثانیه خاموش است.
در حالت نرمال، با فشردن هر یک از کلیدهای ریموت خروجی مربوطه تغییر وضعیت میدهد.
برای استفاده از یک یا چند ریموت خاص در کنترل خروجیها، لازم است ریموتها را به دستگاه معرفی کنیم. برای معرفی هر ریموت دستگاه باید در مود لرن باشد.
برای اینکه دستگاه وارد حالت لرن شود، کلید دستگاه را به مدت 1.5 ثانیه نگهدارید و سپس رها کنید. LED دستگاه شروع به چشمک زدن با سرعت زیاد خواهد کرد. بعدازآن یکی از کلیدهای ریموتی که قصد داریم از آن استفاده کنیم را میفشاریم تا دستگاه کد آن را به خاطر بسپارد. بعد از لرن کردن، ریموت دستگاه به حالت نرمال بازخواهد گشت.
برای حذف ریموتهای ذخیرهشده در حافظهی دستگاه، باید کلید را به مدت 10 ثانیه بفشارید و سپس رها کنید. LED به مدت 3 ثانیه روشن میشود و خاموش میشود. بعد از این کار تمام ریموتهای ذخیرهشده از حافظهی دستگاه پاک خواهند شد.
مانند:
OSCCAL = eeprom_read_byte(0);
کتابخانه استفاده از ماژول GPS:
دریافت و جداسازی داده های جغرافیایی
تبدیل از درجه دسیمال به درجه, دقیقه, ثانیه
تبدیل از درجه,دقیقه,ثانیه به درجه دسیمال
خطای کتابخانه رفع شد
کتابخانه i2c نرم افزاری برای اتمل استودیو.
از هر پایه ای که بخواهید میتونید به عنوان scl و sda استفاده کنید.
این کنترلر مجهز به شبکه محبوب Wi-Fi و دارای یک کانال RGB است که توانایی ترکیب سه رنگ اصلی را دارد و از این طریق میتوان رنگ دلخواه را ایجاد کرد.
با استفاده از آن می توانید منازل، اماکن و یا نمای ساختمان ها را نور پردازی کنید همچنین می توان تابلو های LED ویا چلنیوم چند رنگ را راه اندازی کرد.
با نصب اپلیکیشن اندروید یا وینفون بر روی گوشی هوشمند خود میتوانید رنگ دلخواه تان را به راحتی بسازید.
این کنترلر دارای 6 افکت مختلف برای ترکیب رنگ ها به صورت اتومات میباشد.
امکان کنترل سرعت افکتها
ایجاد رنگهای جذاب و زیبا بر روی نمای ساختمان و ویترین مغازه ها
استفاده در ساخت تابلو های چلنیوم و پلکسی و تغییر رنگ در آنها
استفاده در نوپردازی رنگی ساختمان ها , اماکن و پارک ها
استفاده و راه اندازی ال ای دی های نواری RGB
استفاده در ساخت تابلوهای LED تمام رنگ
پیام کنترل، یک سیستم کنترلی هوشمند مجهز به سیستم GSM و شبکه محبوبWI-FI میباشد.
توسط این سیستم کلیه دستگاه های الکتریکی موجود در منزل، ویلا، محل کار و ... را میتوان از راه دور و بدون محدودیت فاصله از طریق تلفن همراه کنترل (روشن-خاموش) کرد.
همچنین در صورت نزدیک بودن به دستگاه با استفاده از شبکه WI-FI ، میتوان بدون هزینه و سریع دستگاه های الکتریکی را کنترل کرد.
امکان برنامه ریزی خروجی ها برای کنترل دوره ای منظم، در ساعت و روز های مشخص از هفته محیا است، که کارکرد دستگاه بدون استفاده از تلفن همراه را ممکن میسازد و باعث صرفه جویی در هزینه ها میشود.
همچنین امکان اتصال سنسورهایی به ورودی دستگاه میباشد. در صورتی که سنسورها تغییر وضعیت دهند یک پیام برای شما ارسال میشود و شما را از وضعیت محیط مطلع میسازد.
دستگاه دارای نرم افزار اندروید و وینفون میباشد. که شما را قادر میسازد از طریق تلفن هوشمند خود دستگاه را به راحتی کنترل نمایید.
ویژگی های سیستم:
· دارای 8 ورودی
· دارای 6 خروجی
· دارای ساعت دقیق داخلی
· امکان تغییر نام شبکه WI-FI
· امکان تغییر رمز شبکه WI-FI
· دارای اپلیکیشن اندروید
· ارسال تغییر وضعیت ورودی ها
· امکان تغییر کد دریافت شارژ سیم کارت
· امکان دریافت باقی مانده شارژ سیم کارت
· امکان تعیین زمان بندی برای خروجی ها
· ذخیره و نمایش 12 رویداد اخیر سیستم
· امکان تعیین 8 شماره موبایل برای سیستم
· امکان حفظ حالت رله بعد از قطع-وصل برق
· امکان انتقال وضعیت ورودی ها به خروجی ها
· کنترل خروجی ها از طریق پیامک و WI-FI
· زمان دهی به خروجی ها از 1 ثانیه تا 24 ساعت
· پاسخ گویی به دستورات پیامکی به صورت فارسی
· نام گذاری دلخواه برای ورودی ها (فارسی و انگلیسی)
· نام گذاری دلخواه برای خروجی ها (فارسی و انگلیسی)
· امکان گزارش گیری از وضعیت ورودی ها و خروجی ها
· تغییر تنظیمات از طریق منوی سیستم، پیامک و WI-FI
· امکان بروز رسانی اتومات ساعت داخلی از طریق پیامک دریافتی
مشخصات فنی:
تغذیه دستگاه 12 ولت.
قابل نصب بر روی ریل
ورودی های ایزوله تا 4000 ولت.
خروجی ها از نوع رله ای تا 4 آمپر
ابعاد دستگاه 157x87x60 میلی متر
ولتاژ ورودی های دستگاه تا 24 ولت.
کنترل وسایل الکتریکی از راه دور
کنترل روشنایی محیط های وسیع
اعلام هشدار پیامکی حریق، سرقت
راه اندازی چاه های آب، آبیاری باغ ها
هوشمند سازی و کنترل منازل و ویلاها
کنترل تجهیزات گلخانه ها، مرغذاری ها
تجهیز تابلو های برق به سیستم پیامکی
سنسور دما و رطوبت دیجیتال dht11 ؛ با پروتکل 1wire .
مشخصات سنسور :
1- رطوبت:
16 بیتی
دقت در دمای 25 درجه = +/- 5%
2- دما:
16 بیتی
دقت در دمای 25 درجه = +/- 2 درجه
3- تغذیه: 3.5 - 5.5 ولت
The SIRC protocol uses a pulse width encoding of the bits. The pulse representing a logical "1" is a 1.2ms long burst of the 40kHz carrier, while the burst width for a logical "0" is 0.6ms long. All bursts are separated by a 0.6ms long space interval. The recommended carrier duty-cycle is 1/4 or 1/3
The picture above shows a typical pulse train of the SIRC protocol. With this protocol the LSB is transmitted first. The start burst is always 2.4ms wide, followed by a standard space of 0.6ms. Apart from signalling the start of a SIRC message this start burst is also used to adjust the gain of the IR receiver. Then the 7-bit Command is transmitted, followed by the 5-bit Device address. In this case Address 1 and Command 19 is transmitted
Commands are repeated every 45ms(measured from start to start) for as long as the key on the remote control is held down
The table below lists some messages sent by Sony remote controls in the 12-bit protocol. This list is by no means meant to be complete, as the assignment of functions is probably quite dynamic
|
|
مرجع: http://www.sbprojects.com/knowledge/ir/sirc.php
دانلود برنامه نوشته شده برای atmel studio
شیربرقی
SRF05
سنسور سیستم یک ماژول آلتراسونیک میباشد. SRF05 که تا فاصله 5 متری را اندازه گیری مینماید. از طریق این سنسور ارتفاع آب داخل مخزن به دست می آید و اگر از ارتفاعی که برای سیستم تعریف شده است بیشتر شده باشد به شیر برقی فرمان باز شدن میدهد تا سطح آب به مقدار تنظیم شده برسد.
PCB با نرم افزار EAGLE طراحی شده است.
برنامه با نرم افزار ATMEL STUDIO و به زبان C نوشته شده است.
mcu: mega16
lcd2x16
keypad= 4X4
valve = 24V AC که من با 12V DC بوبینش را تحریک میکنم
ultrasonic module= SRF05
یک کتابخانه عالی برای راه اندازی GLCD 240X128 - مدل TS240128D
رسم دایره و مستطیل و خط و ...
فارسی نویسی
کتابخانه را کمی تغییرات دادم تا در Atmel studio بتوان از آن استفاده کرد.
اول برنامه و قبل از اضافه کردن کتابخانه GLCD حتما تعریف و کتابخانه استفاده از حافظه فلش را قرار دهید.
#define __PROG_TYPES_COMPAT__ prog_char
#include <avr/pgmspace.h>
نکته دیگه این که برای نوشتن حرف "ی" از "SHIFT + X" استفاده کنید.
این کتابخانه توسط آقای نوربخش آماده شده است.