پروژه ریموت کنترل کد لرنینگ توسط میکرو STM

به نام خدا و با سلام خدمت همه دوستان

در این مطلب یکی از پروژه هایی که یه خرده اذیتم کرد رو باهاتون به اشتراک میذارم

این پروژه قراره ریموت های کد لرن موجود در بازار رو دیکد کنه و و کد اونها رو در حافظه EEPROM میکروکنترلر STM32 ذخیره کنه.

در این مطب من یک اموزش واقعی یادتون میدم که خودتون بتونید کدشو بزنید.تقریبا همه سایتاهای ایرانی و خارجی رو بررسی کردم هیچ کدوم واضح بیان نکرده بودن.

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

ریموت 4 کانال 433MHz بدنه فلزی کد لرن مدل استاندارد

لینک بررسی این ریموت

ای سی فرستنده سیگنال این ریموت ها معمولا EV1527 هستش که البته با IC های مشابه هم مشکلی نداریم.

تراشه EV1527 یکی از محبوب ترین IC های انکدر به جهت کد گذاری داده های ارسالی توسط ریموت کنترلر های ماشین و درب های کنترلی است که می تواند اطلاعات را به شیوه لرنینگ ، کد گذاری نماید . این تراشه دارای ۴ ورودی کلید است که با اعمال ورودی به آن ، یک خروجی سریال تولید می شود و می توان آن را به یک فرستنده ASK یا FSK اعمال نمود .

فرمت سیگنال خروجی در این تراشه از سه قسمت سیگنال آغاز گر ، کد امنیتی و اطلاعات تشکیل می شود که سیگنال امنیتی از یک پالس ۱ منطقی و ۳۱ پالس صفر منطقی تشکیل شده است . بعد از سیگنال راه انداز ۹۶ پالس ارسال می شود که ۸۰ پالس مربوط به کد امنیتی و ۱۶ پالس مربوط به اطلاعات می شود . به این صورت که هر بیت از سیگنال کد امنیتی و یا اطلاعات توسط ۴ پالس کد می شود . روش کار به این صورت است که اگر یک پالس ۱ منطقی و سه پالس صفر منطقی ارسال شود منظور عدد ۰ و در صورتی که سه پالس یک منطقی و یک پالس صفر منطقی ارسال شود ، منظور ۱ منطقی است . بنابر این در کل می توان برای ارسال یک داده ۴ بیتی باینری که توسط کلید به تراشه اعمال شده است ، ۱۲۸ پالس ارسال می شود که ۳۲ پالس کد آغاز گر ، ۸۰ پالس کد امنیتی و ۱۶ پالس مربوط به سیگنال اطلاعات می باشد .

طبق گفته دیتاشیت ، تراشه دارای یک مدار نوسان ساز RC داخلی است که مقاومت و خازن آن به صورت خارجی به آن متصل می شود و طبق جدولی که در دیتا شیت آمده فرکانس نوسان ساز مشخص می شود . همچنین لازم به ذکر است که برای ایجاد هر پالس نیاز به یک پالس ساعت است که از دو قسمت صفر و یک تشکیل شده و می توان گفت برای ارسال هر کدام از ۱۲۸ پالس ارسالی نیاز به یک پالس صفر و یک پالس یک است که از سوی واحد نوسان ساز تولید می شود و در کل برای ارسال یک بسته اطلاعاتی نیاز به ۲۵۶ پالس ساعت می شود .

فرکانس کاری این ریموت فرستنده ۴۳۳ مگا هرتز هستش پس برای ریسیور گیرنده هم ما باید از ریسیور ۴۳۳ مگاهرتز استفاده کنیم

ریسیور های گیرنده قدیمی به صورت شکل زیر هستن:

ماژول گیرنده ASK DX-RF 433

این ریموت یکم دقت پایینی دارن که در ادامه  ریموت های سوپر هیترودین تولید شدن:

این گیرنده ها از یه کریستال خارجی استفاده میکنن که دقتشونو خیلی بالا میبره

مشخصاتشونم به صورت زیر هستش:

Receiver Module Key Feature:

Receiving method: superheterodyne reception
Power supply voltage: DC5V + 0.5V
Working current: <2.5mA (315M) <4.5mA (433M)
Receiving frequency: 315/433.92MHZ+ 100KHZ
Receive sensitivity: -107dBm
Rate: 10 Kbps
Size: 30mm*9.3mm*4mm

 PT226x , FP527 And HCSXXX Remote control

خروجی پایه دیتای ریموت به چه صورت است؟

توجه کنید که خروجی پایه DATA این گیرنده از پروتکل خاصی استفاده نمیکنه و شما باید با بررسی سیگنالش دیتای صفر و یک رو در بیارید

موقعی که تغذیه ریموت رو متصل میکنیدخروجی ریموت به این صورته و چیز خاصی نداره:

 

 

به محض اینکه دکمه ای توسط ریموت فشار داده شد دیتا به صورت زیر پریود میشه و این پریود تا زمانی که دستمون رو دکمه باشه ادامه داره:

تصویر بعدی با جزئیات بیشتر:

به تصویر بالا که دیتای ریموت زوم شده نگاه کنید.

عرض یه سری از پالس ها زیاد و عرض یه سری کمه.

پالسهایی که عرض یک بودنشون بیشتره به عنوان دیتای ۱ و پالس هایی که عرض یک بودنشون کمتره به عنوان دیتای صفر از طریق پایه دیتا به میکرو کنترلر منتقل میشن

شما به روش های مختلف تایمر کپچر.وقته و تایمر . دوتایمر میتونید دیتارو بخونید.

فیلم توضیحات دیتای خروجی ریموت رو هم براتون اپلود کردم که ببینید:

چه زمانی باید شروع به خوندن دیتای ریموت کنیم؟

به محض اینکه یک کلید از از ریموت فشرده میشه شما یک پالس دریافت میکنید و بعدش به مدت حدودا ۱۲ میلی  ثانیه صفر دارید که به این حالت میگن paramble

وقتی که پارامبل رو شناسایی کردین باید شروع کنید به اندازه گیری عرض پالس ها تا دیتای ادرس ریموت و بعد دیتای کلید فشرده رو در بیارید

هر ریموت۲۰ بیت آدرس داره + ۴ بیت کلید

به عنوان مثال:

k1:010101100111101011111000
k2:010101100111101011110100‌
k3:010101100111101011110010‍
k4:010101100111101011110001

شما باید ادرس رو بگیرید در میکرو ذخیره کنید که میشه عملیات لرنینگ.

بعد دوباره که ادرس ریموتی رو خوندید با ادرس ذخیره شده مقایسه کنید اگر اوکی بود بیایید وضعیت دیتای کلیدهارو چک کنید که به صورت باینری هستن به خاطر همین بعضی ریموت ها ۱۶ تا کلید دارن چون با ۴ حالت باینری میتونید ۱۶ حالت داشته باشید.

ریموت کنترلر کد لرن ۴۳۳MHZ توسط میکرو STM32F1 

برنامه به زبان سی در کیوب و هال و در کیل نوشته شده است که از لینک زیر میتوانید تهیه کنید.

در فیلم زیر هم نحوه عملکرد ریموت کنترلر کد لرن توسط stm32  رو میبینید که دیتا و ادرس ریموت پرینت و ذخیره میشه

برای تهیه پروژه میتوانید از طریق لینک زیر اقدام کنید:

به راحتی کد رو میشه برای هر میکرویی از چنج کرد.

این برنامه بسیار حرفه ای نوشته شده و برای خواندن ریموت فقط از یک تایمر استفاده شده که کمترین محاسبات رو روی میکروی شما میذاره.

ریموت کنترلر کد لرن ۳۱۵MHZ توسط میکرو STM32F0 

در ادامه راه اندازی ریموت کنترلر کد لرن را داریم با ریسیور ۳۱۵ MHz و ریموت ۳۱۵Mhz که توسط میکروی stm32f0 انجام شده.
این پروژه به زبان سی و در کامپایلر keil نوشته شده و از توابع hal و کیوب استفاده شده است.
قابلیت کنترلر ۴ عدد رله به صورت تاگل را دارد و همچنین کد ریموت در حافظه EEPROM داخلی میکرو که یک EEPROM emulation است ذخیره می‌شود.
برای لرن کردن ریموت کافیست دکمه لرن را نگه دارید و یکی از دکمه های ریموت را فشار دهید، در این حالت lcd روی برد ۵ بار چمشمک می‌زند و ریموت لرن می‌شود.
برای پاک کردن ریموت هم دکمه دیلیت را فشار دهید و یکی از دکمه های ریموت را بزنید، کد ریموت پاک از حافظه ایپرام پاک می‌شود.
در ویدئو زیر نحوه عملکرد ریموت و ریسیور ۳۱۵mhz را توسط میکرو stm32f0 می‌بینید:

ریموت کنترلر کد لرن ۴۳۳MHZ توسط میکرو STM8S003F3

در پروژه زیر ریموت کنترلر ۴۳۳ مگاهرتز توسط میکروی STM8  راه اندازی شده است.

کد این پروژه به زبان سی و در کامپایلر IAR FOR STM8  نوشته شده است که اموزش نصب و برنامه نویسی و پروگرام میکرو STM8 در سایت قرار دارد.

پروژه در دو حالت زنگی و پالسی نوشته شده است.

حالت زنگی: تا زمانی که کلید ریموت فشرده شده است رله فعال میماند.

حالت پالسی: با هر بار فشار دکمه ریموت رله یک لحظه وصل میشود.

حالت تاگلی رو هم خودتون میتونید اضافه کنید که یکبار کلیدو زدید رله وصل شه و یکبار که زدید قطع شه کد کاملا واضحست.

فیلم عملکرد پروژه:

 

موفق باشید.

 

mehdi sehati

در این سایت پروژه و آموزش های انواع ماژول ها و میکروکنترلر ها و نحوه ارتباط سخت افزار با نرم افزار (برنامه نویسی اندروید برای گوشی و برنامه نویسی سی شارپ برای کامپیوتر) و برنامه نویسی پایتون و رسبری پای و ماژول های وای فای قرار میگیرد همچنین دوستان برای توضیحات بیشتر و سفارش پروژه میتوانند به آی دی تلگرام بنده مراجعه کنند

مطالب مرتبط

Subscribe
Notify of
guest

28 نظرات
Inline Feedbacks
View all comments
yaser fathi
yaser fathi
3 years ago

سلام خسته نباشید میخاستم ببینم شماتیکشم داخل فایل stm8 قرار داره؟؟

ramin
ramin
3 years ago

سلام
هر ریموت چقدر از حافظه میکرو رو اشغال میکنه؟ ۹۶بیت؟ یعنی ۱۲ بایت؟

محمد
محمد
1 year ago
Reply to  mehdi sehati

مهندس ۲۰بیت ادرس و ۴بیت دیتا

mohammad
mohammad
3 years ago

سلام جناب مهندس ببخشید قصد خرید دارم و فیلم رو که دیدم شما کدوم پایه گیرنده رو متصل کردید اخه رو دو تا پایه گیرنده RX22 زده DATA کدومش باید متصل کنیم شما تو فیلم فقط از PA0 استفاده کردید که اشاره می کنید با تشکر ممنون میشم راهنمایی بفرمایید

محمد
محمد
3 years ago

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

امين
امين
3 years ago

سلام مهندس من اين پروژه رو انجام دادم منتها ديتاي من به اين صورتي كه شما ميگين نيست…من بابت كليدهام اين ديتاها رو گرفتم… ممنون ميشم راهنماييم كنيد…
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۱۱۰۰۰۰۰۰۰
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۰۰۱۱۰۰۰۰۰
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۰۰۰۰۱۱۰۰۰
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۰۰۰۰۰۰۱۱۰

امين
امين
3 years ago

حل شد مهندس

علی
علی
3 years ago

سلام .
کد مربوط به stm32f103 با فرکانس ۳۱۵ را خریداری کنم . برای تغییر به فرکانس ۴۳۰ کار دشواری یا به راحتی شدنیه؟؟؟ یکم توضیح میدین؟

Last edited 3 years ago by علی
مهدی فتحی
مهدی فتحی
3 years ago

سلام فقط سورس برنامه هست یا فیلم یا پی دی اف اموزشی هم داره

سید مهدی خاتمی
سید مهدی خاتمی
3 years ago

سلام خسته نباشید کارتان عالی هست. من سورس کد کامل ریموت ۴۳۳ با میکرو stm8s003f3 گرفتم .

اکبر
اکبر
2 years ago

سلام خسته نباشید . من این محصول شمارو خریداری کردم ولی داخلش فایل کیوب نداره میشه برام بفرستید

عباش
عباش
2 years ago

سلام وقت بخیر در این پروژه ریموت های لرن شده در حافظه eeprom ذخیره میشن؟

عباس
عباس
2 years ago

سلام ریموت های لرن شده در حافظه eeprom ذخیره میشوند؟

حسین
حسین
1 year ago

سلام وقت شما بخیر
۱- روی میکرو مگا ۱۶ یا ۳۲ کد فایل را دارید؟
۲ – چند عدد ریموت کد میگیره؟
۳-اگر بخواهیم ریموتشماره سه را بتنهایی پاک کنیم امان داره ؟

حسین
حسین
1 year ago

سلام وقت شما بخیر
۱- روی میکرو مگا ۱۶ یا ۳۲ کد فایل را دارید؟
۲ – چند عدد ریموت کد میگیره؟
۳-اگر بخواهیم ریموتشماره سه را بتنهایی پاک کنیم امان داره ؟

رضا
رضا
1 year ago

با سلام
مهندس بنده قصد خرید مورد دوم رو دارم اما هر دفعه سایت پذیرنده ارور میده.
آیا روش دیگه مثل کارت به کارت میتونم ازتون خریدکنم؟
یه روش به غیر از روش اصلی معرفی کنید
ممنون.

28
0
Would love your thoughts, please comment.x