پروژه ریموت کنترل کد لرنینگ توسط میکرو STM
به نام خدا و با سلام خدمت همه دوستان
در این مطلب یکی از پروژه هایی که یه خرده اذیتم کرد رو باهاتون به اشتراک میذارم
این پروژه قراره ریموت های کد لرن موجود در بازار رو دیکد کنه و و کد اونها رو در حافظه EEPROM میکروکنترلر STM32 ذخیره کنه.
در این مطب من یک اموزش واقعی یادتون میدم که خودتون بتونید کدشو بزنید.تقریبا همه سایتاهای ایرانی و خارجی رو بررسی کردم هیچ کدوم واضح بیان نکرده بودن.
برای بخش فرستنده که تکلیف مشخصه قراره از ریموت های ۴۳۳مگاهرتز تو بازار استفاده کنیم که تصویرشو میبینید،البته فرستنده رو هم میشه خودمون طراحی کنیم که در آینده قرارش میدم.
ای سی فرستنده سیگنال این ریموت ها معمولا EV1527 هستش که البته با IC های مشابه هم مشکلی نداریم.
تراشه EV1527 یکی از محبوب ترین IC های انکدر به جهت کد گذاری داده های ارسالی توسط ریموت کنترلر های ماشین و درب های کنترلی است که می تواند اطلاعات را به شیوه لرنینگ ، کد گذاری نماید . این تراشه دارای ۴ ورودی کلید است که با اعمال ورودی به آن ، یک خروجی سریال تولید می شود و می توان آن را به یک فرستنده ASK یا FSK اعمال نمود .
فرمت سیگنال خروجی در این تراشه از سه قسمت سیگنال آغاز گر ، کد امنیتی و اطلاعات تشکیل می شود که سیگنال امنیتی از یک پالس ۱ منطقی و ۳۱ پالس صفر منطقی تشکیل شده است . بعد از سیگنال راه انداز ۹۶ پالس ارسال می شود که ۸۰ پالس مربوط به کد امنیتی و ۱۶ پالس مربوط به اطلاعات می شود . به این صورت که هر بیت از سیگنال کد امنیتی و یا اطلاعات توسط ۴ پالس کد می شود . روش کار به این صورت است که اگر یک پالس ۱ منطقی و سه پالس صفر منطقی ارسال شود منظور عدد ۰ و در صورتی که سه پالس یک منطقی و یک پالس صفر منطقی ارسال شود ، منظور ۱ منطقی است . بنابر این در کل می توان برای ارسال یک داده ۴ بیتی باینری که توسط کلید به تراشه اعمال شده است ، ۱۲۸ پالس ارسال می شود که ۳۲ پالس کد آغاز گر ، ۸۰ پالس کد امنیتی و ۱۶ پالس مربوط به سیگنال اطلاعات می باشد .
طبق گفته دیتاشیت ، تراشه دارای یک مدار نوسان ساز RC داخلی است که مقاومت و خازن آن به صورت خارجی به آن متصل می شود و طبق جدولی که در دیتا شیت آمده فرکانس نوسان ساز مشخص می شود . همچنین لازم به ذکر است که برای ایجاد هر پالس نیاز به یک پالس ساعت است که از دو قسمت صفر و یک تشکیل شده و می توان گفت برای ارسال هر کدام از ۱۲۸ پالس ارسالی نیاز به یک پالس صفر و یک پالس یک است که از سوی واحد نوسان ساز تولید می شود و در کل برای ارسال یک بسته اطلاعاتی نیاز به ۲۵۶ پالس ساعت می شود .
فرکانس کاری این ریموت فرستنده ۴۳۳ مگا هرتز هستش پس برای ریسیور گیرنده هم ما باید از ریسیور ۴۳۳ مگاهرتز استفاده کنیم
ریسیور های گیرنده قدیمی به صورت شکل زیر هستن:
این ریموت یکم دقت پایینی دارن که در ادامه ریموت های سوپر هیترودین تولید شدن:
این گیرنده ها از یه کریستال خارجی استفاده میکنن که دقتشونو خیلی بالا میبره
مشخصاتشونم به صورت زیر هستش:
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 در سایت قرار دارد.
پروژه در دو حالت زنگی و پالسی نوشته شده است.
حالت زنگی: تا زمانی که کلید ریموت فشرده شده است رله فعال میماند.
حالت پالسی: با هر بار فشار دکمه ریموت رله یک لحظه وصل میشود.
حالت تاگلی رو هم خودتون میتونید اضافه کنید که یکبار کلیدو زدید رله وصل شه و یکبار که زدید قطع شه کد کاملا واضحست.
فیلم عملکرد پروژه:
موفق باشید.
سلام خسته نباشید میخاستم ببینم شماتیکشم داخل فایل stm8 قرار داره؟؟
سلام، شماتیک خاصی براش نیاز نیست، کلا چند تا پایه داره که همشون در کد دیفاین شده
پایه ها شامل پین RF
پین دکمه لرن
پین دکمه دیلیت
و ۴ پین خروجی لرای کنترل رله
که در نهایت شما میتونید تمامی پایه ها رو به دلخواه خودتون تغییر بدید، کد کاملا تمیز و مرتب با دیفلین و توابع نوشته شده و میتونید هر تغییراتی رو اعمال کنید و گسترشش بدید
سلام
هر ریموت چقدر از حافظه میکرو رو اشغال میکنه؟ ۹۶بیت؟ یعنی ۱۲ بایت؟
سلام برای هر ریموت ۲۰ بایت ادرسه و ۴ بایت دیتا، که باید ۲۰ بایت رو ذخیره کنید
البته راههای دیگه ای هم داره که بحثش مفصله…
مهندس ۲۰بیت ادرس و ۴بیت دیتا
بله درسته، ماهم همینو گفتیم تو مطلب بالا
سلام جناب مهندس ببخشید قصد خرید دارم و فیلم رو که دیدم شما کدوم پایه گیرنده رو متصل کردید اخه رو دو تا پایه گیرنده RX22 زده DATA کدومش باید متصل کنیم شما تو فیلم فقط از PA0 استفاده کردید که اشاره می کنید با تشکر ممنون میشم راهنمایی بفرمایید
سلام، ببینید گیرنده کلا سه تا پایه داره،مثبت ،گراند و دیتا، اما شما روی ماژول ۴ تا پین میبینید که دوتا پین وسطی از داخل بهم وصل هستن و پین دیتا هستن،به دلخواه میتونید از یکی استفاده کنید
سلام و علیکم مهندس خسته نباشید
بنده یه سری اموزش از شما در یافت کرده بودم می خواستم ببینم که ایا شما در مورد اینکه امواج رادیویی را به صورت خطی در اورد اطلاعاتی دارید؟ یعنی بجای اینکه بصورت کروی ارسال و در یافت کند به صورت خط مشخص ارسال و در یافت کند.
ممنونم از تلاش های شما.
لطفا اگر امکانش هست جواب بدهید.
سلام، متاسفانه در حوزه فعالیت و مطالعاتی ندارم، دوستان در حوزه مخابرات میدان و امواج میتونن کمکتون کنند.
سلام مهندس من اين پروژه رو انجام دادم منتها ديتاي من به اين صورتي كه شما ميگين نيست…من بابت كليدهام اين ديتاها رو گرفتم… ممنون ميشم راهنماييم كنيد…
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۱۱۰۰۰۰۰۰۰
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۰۰۱۱۰۰۰۰۰
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۰۰۰۰۱۱۰۰۰
۱۰۰۱۱۱۱۱۱۰۰۱۱۰۰۱۱۰۰۱۱۱۱۰۰۰۰۰۰۱۱۰
حل شد مهندس
سلام .
کد مربوط به stm32f103 با فرکانس ۳۱۵ را خریداری کنم . برای تغییر به فرکانس ۴۳۰ کار دشواری یا به راحتی شدنیه؟؟؟ یکم توضیح میدین؟
بله شدنیه در صورت لزوم اگر برای ۴۳۳ کار نکرد یکم باید تایمینگ های تایمر اندازه گیر طول پالس رو تغییر بدین
سلام فقط سورس برنامه هست یا فیلم یا پی دی اف اموزشی هم داره
بله فقط سورس برنامه هست فایل های دیگری هم خواستید تلگرام تشریف بیارید و ثبت کنید سفارشتون رو و بنده هم راهنماییتون میکنم
سلام خسته نباشید کارتان عالی هست. من سورس کد کامل ریموت ۴۳۳ با میکرو stm8s003f3 گرفتم .
سلام .ممنون از شما ان شالله استفاده پر سودی ازش داشته باشید.
سلام خسته نباشید . من این محصول شمارو خریداری کردم ولی داخلش فایل کیوب نداره میشه برام بفرستید
سلام قطعا فایل کیوب ام ایکس داره راهنمایی بیشتر لازم دارید تلگرام پیام بدید انجام میدم
سلام وقت بخیر در این پروژه ریموت های لرن شده در حافظه eeprom ذخیره میشن؟
سلام ریموت های لرن شده در حافظه eeprom ذخیره میشوند؟
سلام بله در ایپرام داخای ذخیره میشوند
سلام وقت شما بخیر
۱- روی میکرو مگا ۱۶ یا ۳۲ کد فایل را دارید؟
۲ – چند عدد ریموت کد میگیره؟
۳-اگر بخواهیم ریموتشماره سه را بتنهایی پاک کنیم امان داره ؟
سلام، بله دوست عزیز شما هرکاری که بخواین براتون قابل انجامه، فقط چیزی که میخواین الان آماده تو سایت وجود نداره، میتونید تلگرام پیام بدین، جزئیات پروژه رو بفرمایید، براتون برآورد هزینه و زمان میکنم در صورت تمایل براتون انجام میدم.
سلام وقت شما بخیر
۱- روی میکرو مگا ۱۶ یا ۳۲ کد فایل را دارید؟
۲ – چند عدد ریموت کد میگیره؟
۳-اگر بخواهیم ریموتشماره سه را بتنهایی پاک کنیم امان داره ؟
با سلام
مهندس بنده قصد خرید مورد دوم رو دارم اما هر دفعه سایت پذیرنده ارور میده.
آیا روش دیگه مثل کارت به کارت میتونم ازتون خریدکنم؟
یه روش به غیر از روش اصلی معرفی کنید
ممنون.
بله میتونید،به تلگرام بنده پیام بدید میفرستم براتون