সাধারণ আরএফ সংযোগের উপরে সেন্সর রিডিং পাঠানোর সর্বোত্তম উপায়

আমি সহজ 315MHz একটি জোড়া কেনা আছে TX / RX মডিউল। আমি একটি ব্যাটারী চালিত ATTiny85 একটি Arduino বেস স্টেশন থেকে সংযোগ করার জন্য এই ব্যবহার করতে চান। ATTiny নিয়মিত ঘুম থেকে এবং বেস স্টেশন থেকে একটি সেন্সর পড়া পাঠাতে প্রয়োজন।

তত্ত্বে আমি কেবল TX- এ তথ্য লিখতে সক্ষম হই এবং এটি RX মডিউল থেকে পড়তে সক্ষম হই। যাইহোক, আমি কিভাবে সঠিক হারে লিখতে/পড়তে পারি তা কিভাবে নিশ্চিত করব? কোন বিশেষ গতিতে (বাইট/সেকেন্ড) প্রেরণ করতে কি কোড ব্যবহার করতে হবে? ভুল সংশোধন/সনাক্তকরণের সর্বোত্তম উপায় কী?

যেহেতু আমি ট্রান্সমিটারকে ব্যাটারি চালিত করতে চাই তাই আমি ট্রান্সজিস্টর ব্যবহার করতে পারি যখন VCC থেকে TX মডিউল বন্ধ করা যায় যখন নিষ্ক্রিয়। TX মডিউল নিচে চালিত হয় যখন কি RX মডিউল পাবেন?

5

7 উত্তর

যারা মডিউল মূলত আপনি ট্রান্সমিটার পিন ড্রাইভ কিভাবে প্রতিক্রিয়া রিসিভার পিন wiggle করা। তারা পিন মানে wiggling আপনি কি মনে করেন সম্পর্কে কিছুই জানতে, এবং একটি UART থাকে না আরো বিবরণ খনক ছাড়া অবিলম্বে স্পষ্ট ছিল না। এটা আপনার কাজ, তাই আমি আরও যেতে বিরক্ত না। আপনাকে ডেটাসিটের একটি লিঙ্ক প্রদান করতে হবে, না পণ্যের স্প্ল্যাশ পৃষ্ঠা।

এই মডিউল AM মড্যুলেশন কাজ। সংক্ষিপ্ত রচয়িতা ASK বলছেন, কিন্তু এটি সম্ভবত ট্রান্সমিটার (যা টেকনিক্যালি ASK এর একটি উপসেট) এর বন্ধ/চালু কি। এই স্কিমের সাথে সমস্যা হল যে ট্রান্সমিটার যখন চালু হয় তখন রিসিভার স্তরের স্তরে জানতে পারে না। এটি তাই সম্ভবত সাম্প্রতিক প্রাপ্ত সংকেত শক্তি দেখায় এবং মাঝখানে একটি মান বাড়াতে এবং বন্ধ মধ্যে সিদ্ধান্ত নিতে। এটি ডেটা স্লিংিং নামে পরিচিত।

যদি আপনি নিয়মিত নিয়মিত যোগাযোগ না করে থাকেন, তবে রিসিভারটি কি স্তরের এবং বন্ধ অবস্থানের ট্র্যাক হ্রাস করে, এবং তথ্য সঠিকভাবে নড়াতে পারে না এটি সাধারণত দুটি উপায়ে মোকাবিলা করা হয়। প্রথমে, একটি প্রস্তাবনা পাঠানো হয় এই দ্রুত উত্তরাধিকার মধ্যে ons এবং বন্ধ একটি গুচ্ছ রয়েছে যাতে রিসিভার একটি ভাল তথ্য slicer থ্রেশহোল্ড উপর স্থির করা যেতে পারে। আশা করা হয় যে এই বিটগুলির কিছু বা সমস্ত রিসিভার দ্বারা সঠিকভাবে ব্যাখ্যা করা হয় না, তাই এটি আসলে "প্রাপ্ত" নয়। দ্বিতীয় কৌশল হলো তথ্য প্রেরণ করা যাতে রিসিভারের জন্য সাম্প্রতিক সময়ে এবং বন্ধ থাকে। কিছু রিসিভার, বিশেষ করে কৌতুকপূর্ণ যে এনালগে ডাটা স্লাইসিং করে, শুধু নিম্ন পাস ফিল্টারের গড় পাওয়ার সংকেত শক্তি। এই ধরনের রিসিভারের জন্য, আপনার ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন পরিবর্তন করার প্রয়োজন হয় না, তবে গড় প্রয়োজন 1/2 এর কাছাকাছি।

এই কারণেই ম্যানচেস্টার এনকোডিং এই ধরনের আরএফ লিঙ্কগুলির জন্য এত জনপ্রিয়। আমি এখানে ম্যানচেস্টার এনকোডিংয়ে যেতে পারব না কারণ এটি সুপরিচিত এবং আপনাকে সেখানে প্রচুর তথ্য খুঁজে পেতে কোন সমস্যা হবে না। ম্যানচেস্টার কোডের একটি চমৎকার বৈশিষ্ট্য হল যে এটি প্রতিটি বিট উপর 1/2 গড়। একটি বিট দুটি অর্ধে বিভক্ত। বন্ধ অনুলিপি 1 এবং বন্ধ 0 হতে পারে। ম্যানচেস্টার সম্ভবত এনকোডিং স্কিম করতে সবচেয়ে সহজতম।

আপনি একটি UART ব্যবহার করতে পারেন, কিন্তু আপনি সতর্ক হতে হবে এবং আপনি কিছু ব্যান্ডউইথ (ব্যাটারি শক্তি) ছেড়ে দিতে হবে। দেখুন একটি UART কি প্রেরণ করা হবে। আপনি একে অপরের অনুসরণ অবিলম্বে অক্ষর পাঠাতে হলে, প্রতিটি 10 ​​বার সময় নিতে হবে। একটি শুরু বিট হবে, 8 তথ্য বিট, এবং একটি স্টপ বিট। শুরু এবং স্টপ বিট সবসময় বিপরীত মেরুতা। আপনি বাকি 8 টি বিটের মধ্যে কোডগুলি ব্যবহার করার ব্যবস্থা করতে পারেন যার মধ্যবর্তী স্লাইসার থ্রেশহোল্ড রাখার জন্য 0s এবং 1s এর সমান নম্বর থাকে। এর মানে আপনি প্রতিটি UART অক্ষরে 4 বিটের তথ্য পাঠাতে পারেন। আপনি সাবধানে প্রবলেম সম্পর্কে চিন্তা করতে হবে।

সাধারণভাবে, আপনি যে কোন একটি RF সংক্রমণ বিট ত্রুটি একটি উল্লেখযোগ্য সুযোগ আছে অনুমান করা উচিত। এর মানে কিছু চেকসাম একটি ভাল ধারণা। আপনি প্যাকেটগুলিতে ডেটা পাঠাতে পারেন, এবং প্রতিটি প্যাকেট সহ 16 বা 20 বিট সিআরসি চেকসামের মত কিছু অন্তর্ভুক্ত করতে পারেন। যদি প্যাকেটটি অক্ষত অবস্থায় পাওয়া না যায়, তবে এটি বাতিল করা হয় না।

ট্রান্সমিটার নিচে চালিত হয় যখন সিস্টেম এছাড়াও র্যান্ডম গোলমাল সঙ্গে মোকাবেলা করতে হয়েছে। সেই ক্ষেত্রে রিসিভার থ্রেশহোল্ডটি ড্রপ হবে এবং এটি যে কোনও র্যান্ডম গোলমাল বাড়াবে তা সরাতে ডাটা শুরু করবে। একটি সঠিকভাবে পরিকল্পিত প্রস্তাবনা এবং চেকসামের মাধ্যমে, আপনি অদৃশ্যভাবে ছোট ছোট তথ্য দেখতে চাইলে র্যান্ডম গোলমালের সুযোগ তৈরি করতে পারেন।

10
যোগ
@ এম সি আর আমি ব্যক্তিগতভাবে এটি ব্যবহার না করেও নির্ভরযোগ্যতার সাথে কথা বলতে পারি না, কিন্তু আমি VirtualWire (নোট যে একটি পিডিএফ দুর্ভাগ্যবশত) লাইব্রেরি Arduinos সঙ্গে মিলিত এই ধরনের মডিউল আলোচনা মধ্যে একটি বিট উল্লেখ করা এটা তাদের জন্য বিশেষভাবে লিখিত ছিল মনে হচ্ছে।
যোগ লেখক mattruma, উৎস
আমি সাধারণত পাওয়া যায় যে যখন আমি এই ধরনের কোড খুঁজে পাই, তার অনেকগুলি সমস্যা রয়েছে যা ডিবাগ করার জন্য এত সময় নেয় যে আমি আমার নিজস্ব লেখা লেখার চেয়ে ভাল থাকি।
যোগ লেখক Binarytales, উৎস
আমি ম্যানচেস্টার এনকোডিং এবং ডিকোডিং একটি সংখ্যা বার করেছি, কিন্তু প্রতিটি তার নিজস্ব wrinkles ছিল এবং তাই গ্রাহক কোড এম্বেড করা হয় আমি আউট করা যাচ্ছে না। চারপাশে তাকাও. এটা খুব সম্ভব কেউ কেউ এই পোস্ট এবং পোস্ট ছিল। মনে রাখবেন যে, যারা মনে করেন যে এই কোড পোস্ট করার জন্য একটি বড় যথেষ্ট চুক্তি যারা আপনি চান কোড না। কখনও কখনও আপনি সেখানে কিছু ভাল জিনিস খুঁজে যদিও। আমি বললাম, চারিদিকে তাকান।
যোগ লেখক Olin Lathrop, উৎস
@ কেলেনজ্ব: আমি সম্মত। আমি এমনকি অন্যদের 'কোড জন্য চারপাশে না তাকান। সবচেয়ে ভাল হয় স্তন্যপান না, এবং যে বিরল, কিন্তু আমার প্রকল্পের মধ্যে এটি একত্রিত করা কঠিন এবং ত্রুটি প্রবণ হয় যদি এটি আমার developement পরিবেশে প্রথম স্থানে লেখা ছিল না। আমি শুধু চারপাশে তাকান উল্লেখ করে কারণ এটি মনে হয় অন্য মানুষ এই ভাবে অনুভব করে না।
যোগ লেখক Olin Lathrop, উৎস
চমৎকার উত্তরের জন্য ধন্যবাদ কোন বিদ্যমান কোড নমুনা আছে যা এই সব কি? এটা সবচেয়ে মত মনে হয়/এই সব উপাদান যা এই মডিউল ব্যবহার করে সমাধান করতে হবে - অবশ্যই আমি প্রথম না।
যোগ লেখক TheBusyTypist, উৎস
ভার্চুয়াল ওয়্যার Arduino সঙ্গে RX মডিউল ব্যবহার করার জন্য নিখুঁত সমাধান হবে। যাইহোক, VW লাইব্রেরি একটি ATTiny85 সঙ্গে বক্স কাজ করতে বলে মনে হচ্ছে না। আমি মনে করি আমি porting/আমার ATTiny 85 চালানোর জন্য কোড সংশোধন করবে।
যোগ লেখক TheBusyTypist, উৎস
আমি কেবল একটি গ্রন্থাগারের সাথে সংযুক্ত করেছি যা ATTiny এবং ATmega- এ আমি যা করতে চাই তা দাবি করে - arduino.cc/forum/index.php/topic,63755.0.html
যোগ লেখক TheBusyTypist, উৎস

I have ended up using a Manchester encoding library. The latest version of this library has now been published here: https://github.com/mchr3k/arduino-libs-manchester

Details about my use of this library can be seen here: http://mchr3k-arduino.blogspot.com/

2
যোগ

আমি VirtualWire লাইব্রেরি তাকান সুপারিশ চাই, যা ISK পরিসীমা ট্রান্সমিটার/ASK আউটপুট সঙ্গে রিসিভার জোড়া জন্য আরএফ ট্রান্সমিশন বাস্তবায়ন http://www.open.com.au/mikem/arduino/ দেখুন। আমি সফলভাবে এটি আমার ঘরের চারপাশে বেতার সেন্সর থেকে তথ্য সংগ্রহ করার জন্য এটি ব্যবহার করেছি।

0
যোগ
দুর্ভাগ্যবশত, VirtualWire লাইব্রেরি ATTiny85 সমর্থন করে না।
যোগ লেখক TheBusyTypist, উৎস

বিদ্যমান ডিভাইসগুলির সাথে কত আন্তঃঅর্থনীয়তা নির্ভর করে, কিন্তু যদি আপনি অনেক কিছু চান, http://www.dealextreme.com/p/wireless-bluetooth-rs232-ttl-transceiver-module-80711 হয়তো মূল্যবান হতে পারে এটা শুধু একটি খুব সস্তা ব্লুটুথ সিরিয়াল লিঙ্ক এবং ব্লুটুথ সঙ্গে যে কোন কম্পিউটার এটি পড়তে পারে সম্পর্কে। ব্লুটুথ এছাড়াও চমত্কার কর্মক্ষমতা (অপেক্ষাকৃত) এমনকি খুব আওয়াজ 2.4GHz comms সঙ্গে পরিবেশে।

0
যোগ
লিঙ্কটির জন্য ধন্যবাদ - এটি একটি খুব সস্তা ব্লুটুথ মডিউল!
যোগ লেখক TheBusyTypist, উৎস

Though the original poster already found a solution. I will just add some info for people who end up here. There are basically 2 established ways to send wireless data between arduino's/Attiny's: VirtualWire and Manchester. Both have libraries available. Virtualwire I understand only can send characters (though there is a work around), Manchester can send numbers. In using the manchester library, make sure you have the latest one. Both VirtualWire and manchester can be put in an Attiny. With regard to switching the Transmitter on or Off to save battery use, I suggest you put the Attiny to sleep and when it wakes up, have it switch on the powersupply of the transmitter through a transistor (attiny pin to base, make high etc). There is an example (probably more than one) in instructables: http://www.instructables.com/id/Attiny85-RF-Transmitter-to-Arduino-Uno-Receiver-Ma/?comments=all#CWNVMX4I6RT1A1N

0
যোগ

এখানে একটি দেখুন:

https://www.sparkfun.com/datasheets/RF/KLP_Walkthrough.pdf

বেশিরভাগ উত্তর আপনি দস্তাবেজ এ চাওয়া হয়।

0
যোগ
আপনি আপনার উত্তর থেকে লিঙ্ক থেকে আরো কয়েকটি বিস্তারিত যোগ করতে পারেন? লিংক-শুধুমাত্র উত্তরগুলি নিরুৎসাহিত হয় কারণ ভবিষ্যতে লিঙ্কটি মারা গেলে তারা বেকার হয়ে যায়।
যোগ লেখক Timo002, উৎস