সুচিপত্র:

ATtiny85 RF রিমোট কন্ট্রোল: 3 টি ধাপ
ATtiny85 RF রিমোট কন্ট্রোল: 3 টি ধাপ

ভিডিও: ATtiny85 RF রিমোট কন্ট্রোল: 3 টি ধাপ

ভিডিও: ATtiny85 RF রিমোট কন্ট্রোল: 3 টি ধাপ
ভিডিও: How to Make # IR 4 Channel Remote Control System for your Room Appliances (Very Easiest Way) 2024, নভেম্বর
Anonim
ATtiny85 RF রিমোট কন্ট্রোল
ATtiny85 RF রিমোট কন্ট্রোল

দ্রষ্টব্য: আমার নির্দেশযোগ্য "ভার্চুয়াল হাইড-অ্যান্ড-সিক গেম" দেখায় কিভাবে এই ধরনের রিমোটকে RXC6 মডিউল দিয়ে ব্যবহার করতে হয় যা স্বয়ংক্রিয়ভাবে বার্তা ডিকোড করে।

আমি একটি পূর্ববর্তী Instructable উল্লেখ হিসাবে আমি সম্প্রতি কিছু ATtiny85 চিপ সঙ্গে খেলা শুরু। আমার মনে যে প্রাথমিক প্রকল্পটি ছিল তা হল একটি আরএফ রিমোট কন্ট্রোল তৈরি করা যা একটি মুদ্রা ব্যাটারিতে কাজ করতে পারে। আমি একটি কাঁচা চিপ সঙ্গে যেতে প্রয়োজন কারণ আমি Arduinos কেউ নেই খুব কম শক্তি এবং অপেক্ষাকৃত ছোট আকার উভয় প্রয়োজন মেটাতে পারে। একটি পরিবর্তিত লিলিপ্যাড কাছে এসেছিল কিন্তু চিপটি একটি ভাল উত্তর। ধারণাটি এতটুকু ছিল না যে একটি বিদ্যমান রিমোটের নকল করা কিন্তু আপনি কীভাবে আপনার নিজের ট্রান্সমিটার এবং রিসিভার সেট তৈরি করতে পারেন তা প্রদর্শন করার জন্য। একটি মজার শেখার প্রকল্প হওয়ার পাশাপাশি, এটি আপনাকে আপনার নিজের "গোপন" কোড সমন্বয় তৈরি করতে দেয়। আমি উদ্ধৃতিগুলিতে "গোপন" রাখি কারণ এই সাধারণ কোডগুলি ক্র্যাক করা বেশ সহজ।

ধাপ 1: আরএফ বার্তা বিন্যাস

আরএফ বার্তা বিন্যাস
আরএফ বার্তা বিন্যাস

এই প্রকল্পের জন্য আমি আমার ইটেকসিটি আরএফ ওয়্যারলেস সুইচগুলির জন্য সংকেতগুলি প্রতিলিপি করা বেছে নিয়েছি (সেই মডিউলগুলিতে আমার নির্দেশাবলী পড়ুন)। আমি এটা করেছি কারণ আমি যাচাই করতে পেরেছিলাম যে আমার ট্রান্সমিটার Etekcity রিসিভারের সাথে কাজ করে এবং আমার রিসিভার Etekcity রিমোটের সাথে কাজ করে। আমি সেই ডিভাইসগুলির জন্য সঠিক কোড এবং ফরম্যাট ঠিক কী তা জানতে পারি কারণ আমি সেগুলি আগে ধরেছিলাম। কোড ক্যাপচার স্কেচের জন্য আমার "Arduino RF সেন্সর ডিকোডার" নির্দেশযোগ্য পড়ুন।

Etekcity আউটলেটের কোড এবং ফরম্যাটগুলি সস্তা RF ডিভাইসের খুব সাধারণ। আমার সস্তা সিকিউরিটি ডিভাইস আছে যা কিছু টাইমিং ভেরিয়েশনের সাথে খুব অনুরূপ ফরম্যাট ব্যবহার করে। বার্তার দৈর্ঘ্য একটি সুবিধাজনক 24 বিট যা একটি লম্বা স্টার্ট বিট এবং একটি শর্ট স্টপ বিট। আপনি আরও বাইট ডেটা যোগ করতে এবং সিঙ্ক এবং ডেটা বিটের সময় পরিবর্তন করতে কোডটি সহজেই পরিবর্তন করতে পারেন। আবার, এই স্কেচটি কেবল একটি শুরু টেমপ্লেট।

ধাপ 2: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

ট্রান্সমিটার একটি মুদ্রা ব্যাটারিতে (2032) চলে তাই কম বিদ্যুৎ খরচ কী। এর বেশিরভাগই সফটওয়্যারে সম্পন্ন হয় কিন্তু এটি সাহায্য করে যে ATtiny85 সাধারণত 1-MHz অভ্যন্তরীণ ঘড়িতে চলে। নিয়ম হল যে নিম্ন ঘড়ির ফ্রিকোয়েন্সি কম শক্তি প্রয়োজন এবং 1-MHz ট্রান্সমিটার লজিকের জন্য নিখুঁত।

আমি যে RF ট্রান্সমিটার মডিউল ব্যবহার করতে চাই তা হল FS1000A যা সাধারণত পাওয়া যায়। এটি 433-MHz এবং 315-MHz উভয় সংস্করণে আসে। আপনি কোনটি ব্যবহার করেন তা সফ্টওয়্যারটি গুরুত্ব দেয় না, তবে আপনাকে নিশ্চিত করতে হবে যে রিসিভার বোর্ড একই ফ্রিকোয়েন্সিতে কাজ করে। আমার বেশিরভাগ প্রকল্প 433-মেগাহার্টজ ডিভাইস ব্যবহার করে কারণ এটি আমার জমা করা বিভিন্ন সস্তা ওয়্যারলেস ডিভাইস দ্বারা ব্যবহৃত হয়। ছবিতে দেখানো ট্রান্সমিটার বোর্ড লেআউট একটি পুরানো বড়ির বোতলে সুন্দরভাবে ফিট করে। এটি সুন্দর নয় কিন্তু একটি প্রমাণ-ধারণার জন্য যথেষ্ট ভাল।

রিসিভার একটি সোল্ডারলেস ব্রেডবোর্ডে আছে কারণ এর একমাত্র উদ্দেশ্য হল কিভাবে সিগন্যাল গ্রহণ করতে হয় এবং কিভাবে প্রাপ্ত কোডের উপর ভিত্তি করে কিছু চালু/বন্ধ করতে হয়। এটি একটি LED ব্যবহার করে যা চালু/বন্ধ অবস্থা নির্দেশ করে কিন্তু আপনি এটিকে রিলে ড্রাইভার ইত্যাদি দিয়ে প্রতিস্থাপন করতে পারেন। যেকোনো Arduino রিসিভারের জন্য ব্যবহার করা যেতে পারে কারণ এটি ব্যাটারি বন্ধ করার প্রয়োজন নেই। যদি আকার এখনও বিবেচনা করা হয় তবে আপনি অন্য ATtiny85 চিপ ব্যবহার করতে পারেন। মূল হল ATTiny85 রিসিভারে 8-MHz এ চালানো দরকার। একটি সহজ স্কেচের জন্য আমার আগের ATtiny85 ইন্সট্রাকটেবল পড়ুন যা যাচাই করে যে আপনি অভ্যন্তরীণ ঘড়িটি সফলভাবে 8-MHz এ পরিবর্তন করেছেন। সেন্সর ডিকোডিংয়ের উপর আমার নির্দেশনার শেষে আমি রিসিভার সফটওয়্যারের একটি Arduino Nano সংস্করণ অন্তর্ভুক্ত করি। এটি এখানে অন্তর্ভুক্ত ATtiny85 সংস্করণের অনুরূপ যা কিছু চিপ রেজিস্টার পার্থক্য ছাড়া।

আমি আমার আগের RF Instructables- এ বিস্তারিত বলেছি, আমি সাধারণ RXB6 এর মত একটি রিসিভার ব্যবহার করতে পছন্দ করি। এটি একটি সুপার-হেটারোডিন রিসিভার যা সাধারণত FS1000A ট্রান্সমিটারের সাথে একত্রিত সুপার-রিজেনারেটিভ রিসিভারের চেয়ে অনেক ভাল কাজ করে।

ট্রান্সমিটার এবং রিসিভার মডিউল উভয়ই সঠিক অ্যান্টেনার সাথে ভাল কাজ করে কিন্তু সেগুলি প্রায়ই সরবরাহ করা হয় না। আপনি সেগুলি কিনতে পারেন (সঠিক ফ্রিকোয়েন্সি পান) অথবা আপনি নিজের তৈরি করতে পারেন। 433-MHz এ, একটি সোজা তারের অ্যান্টেনার জন্য সঠিক দৈর্ঘ্য প্রায় 16 সেমি। একটি কুণ্ডলী তৈরি করতে, প্রায় 16 সেন্টিমিটার ইনসুলেটেড, সলিড কোর ওয়্যার নিন এবং এটিকে একক স্তরে 5/32-ইঞ্চি ড্রিল বিট শ্যাঙ্কের মতো কিছু দিয়ে মোড়ান। একটি প্রান্তে একটি ছোট সোজা অংশের অন্তরণ বন্ধ করুন এবং এটি আপনার ট্রান্সমিটার/রিসিভার বোর্ডের সাথে সংযুক্ত করুন। আমি খুঁজে পেয়েছি যে স্ক্র্যাপ ইথারনেট কেবল থেকে তারটি অ্যান্টেনার জন্য ভাল কাজ করে। ট্রান্সমিটার বোর্ডে সাধারণত অ্যান্টেনা সোল্ডার করার জায়গা থাকে কিন্তু রিসিভার বোর্ডে কেবল পিন থাকতে পারে (যেমন RXB6)। শুধু নিশ্চিত করুন যে সংযোগটি সুরক্ষিত যদি আপনি এটি বিক্রি না করেন।

ধাপ 3: সফটওয়্যার

ট্রান্সমিটার সফ্টওয়্যার চিপকে স্লিপ মোডে রাখার জন্য সাধারণ কৌশল ব্যবহার করে। সেই মোডে এটি 0.2ua এর কম কারেন্ট আঁকে। সুইচ ইনপুটগুলি (D1-D4) এর অভ্যন্তরীণ পুল-আপ প্রতিরোধক চালু আছে কিন্তু সুইচটি না চাপানো পর্যন্ত তারা কারেন্ট আঁকবে না। ইনপুটগুলি ইন্টারাপ্ট-অন-চেঞ্জ (আইওসি) এর জন্য কনফিগার করা হয়েছে। যখন একটি সুইচ চাপানো হয়, একটি বাধা সৃষ্টি হয় এবং এটি চিপকে জাগতে বাধ্য করে। ইন্টারাপ্ট হ্যান্ডলার সুইচ ডিবাউন্স করার অনুমতি দিতে প্রায় 48msec বিলম্ব করে। কোন সুইচটি চাপানো হয়েছিল তা নির্ধারণ করার জন্য একটি চেক করা হয় এবং উপযুক্ত রুটিন বলা হয়। প্রেরিত বার্তাটি বেশ কয়েকবার পুনরাবৃত্তি করা হয়েছে (আমি 5 বার বেছে নিয়েছি)। এটি বাণিজ্যিক ট্রান্সমিটারের সাধারণ কারণ এখানে 433-মেগাহার্টজ এবং 315-মেগাহার্টজ-এ প্রচুর আরএফ ট্র্যাফিক রয়েছে। বারবার বার্তাগুলি নিশ্চিত করতে সাহায্য করে যে কমপক্ষে একজন রিসিভারের কাছে যায়।

ট্রান্সমিটার সফটওয়্যারের সামনে সিঙ্ক এবং বিট টাইম সংজ্ঞায়িত করা হয় কিন্তু ডেটা বাইট চারটি বোতাম রুটিনের প্রতিটিতে এম্বেড করা থাকে। এগুলি সুস্পষ্ট এবং পরিবর্তন করা সহজ এবং দীর্ঘ বার্তা তৈরি করতে বাইট যোগ করাও সহজ। একই সংজ্ঞা সব রিসিভার সফ্টওয়্যার পাশাপাশি ডেটা বাইট সংজ্ঞা অন্তর্ভুক্ত করা হয়। আপনি যদি আপনার বার্তায় ডেটা বাইট যোগ করেন, তাহলে আপনাকে "Msg_Length" এর সংজ্ঞা পরিবর্তন করতে হবে এবং "RF_Message" ভেরিয়েবলে বাইট যোগ করতে হবে। অতিরিক্ত বাইটগুলির যথাযথ প্রাপ্তি যাচাই করতে এবং সেই বাইটগুলি সংজ্ঞায়িত করতে আপনাকে "লুপ" -এ "RF_Message" চেক -এ কোড যোগ করতে হবে।

প্রস্তাবিত: