সুচিপত্র:

একটি অ্যাকসিলরোমিটার এবং একটি আরএফ ট্রান্সমিটার-রিসিভার পেয়ার ব্যবহার করে অঙ্গভঙ্গি নিয়ন্ত্রিত রোভার: 4 টি ধাপ
একটি অ্যাকসিলরোমিটার এবং একটি আরএফ ট্রান্সমিটার-রিসিভার পেয়ার ব্যবহার করে অঙ্গভঙ্গি নিয়ন্ত্রিত রোভার: 4 টি ধাপ

ভিডিও: একটি অ্যাকসিলরোমিটার এবং একটি আরএফ ট্রান্সমিটার-রিসিভার পেয়ার ব্যবহার করে অঙ্গভঙ্গি নিয়ন্ত্রিত রোভার: 4 টি ধাপ

ভিডিও: একটি অ্যাকসিলরোমিটার এবং একটি আরএফ ট্রান্সমিটার-রিসিভার পেয়ার ব্যবহার করে অঙ্গভঙ্গি নিয়ন্ত্রিত রোভার: 4 টি ধাপ
ভিডিও: 5 সর্বাধিক উদ্ভাবনী বৈদ্যুতিক যানবাহন 2021 (বিশ্বের প্রথম) 2024, জুলাই
Anonim
একটি অ্যাকসিলরোমিটার এবং একটি আরএফ ট্রান্সমিটার-রিসিভার পেয়ার ব্যবহার করে অঙ্গভঙ্গি নিয়ন্ত্রিত রোভার
একটি অ্যাকসিলরোমিটার এবং একটি আরএফ ট্রান্সমিটার-রিসিভার পেয়ার ব্যবহার করে অঙ্গভঙ্গি নিয়ন্ত্রিত রোভার

এই যে, কখনো এমন একটি রোভার তৈরি করতে চেয়েছিলেন যা আপনি সহজ হাতের ইশারায় চালাতে পারেন কিন্তু ইমেজ প্রসেসিংয়ের জটিলতা এবং আপনার মাইক্রোকন্ট্রোলারের সাথে একটি ওয়েবক্যামকে ইন্টারফেস করার সাহস যোগাতে পারেননি, দরিদ্র পরিসীমা এবং লাইন-অফকে অতিক্রম করার জন্য চড়াই উতরাইয়ের কথা উল্লেখ না করে দৃষ্টি সমস্যা? আচ্ছা, ভয় পাবেন না … কারণ একটি সহজ উপায় আছে! দেখুন, আমি আপনার কাছে শক্তিশালী অ্যাকসেলরোমিটার উপস্থাপন করছি! *বা দম টিএসএস*

একটি অ্যাকসিলরোমিটার একটি সত্যিই শীতল যন্ত্র যা একটি রৈখিক অক্ষ বরাবর মহাকর্ষীয় ত্বরণ পরিমাপ করে। এটি স্থল এবং সরবরাহ ভোল্টেজের মধ্যে ওঠানামা করে এমন একটি ভোল্টেজ স্তর হিসাবে প্রতিনিধিত্ব করে, যা আমাদের মাইক্রোকন্ট্রোলার একটি এনালগ মান হিসাবে পড়ে। আমরা যদি আমাদের মস্তিষ্ককে একটু প্রয়োগ করি (শুধু একটু গণিত এবং কিছু নিউটনীয় পদার্থবিজ্ঞান), আমরা কেবল এটিকে অক্ষ বরাবর রৈখিক গতি পরিমাপ করতে ব্যবহার করতে পারি না, বরং আমরা এটিকে কাত এবং ইন্দ্রিয় কম্পনের কোণ নির্ধারণ করতেও ব্যবহার করতে পারি। মন খারাপ করো না! আমাদের গণিত বা পদার্থবিজ্ঞানের প্রয়োজন হবে না; আমরা শুধু কাঁচা মান নিয়ে কাজ করতে যাচ্ছি যে অ্যাকসিলরোমিটার ছিটকে যায়। প্রকৃতপক্ষে, এই প্রকল্পের জন্য অ্যাকসিলরোমিটারের প্রযুক্তিগত বিষয়ে আপনাকে আসলেই খুব বেশি চিন্তা করার দরকার নেই। আমি শুধু কয়েকটি সুনির্দিষ্ট স্পর্শ করব এবং বড় ছবিটি বোঝার জন্য আপনাকে যতটা প্রয়োজন হবে ততটা বিস্তারিতভাবে বলব। যদিও, যদি আপনি এর অভ্যন্তরীণ মেকানিক্স অধ্যয়ন করতে আগ্রহী হন তবে এখানে দেখুন।

আপনাকে শুধু এই মুহূর্তে মনে রাখতে হবে: একটি অ্যাকসিলরোমিটার হল গিজমো (প্রায়শই একটি জাইরোস্কোপের সাথে যুক্ত) যা আমাদের স্মার্টফোনে যে সমস্ত মোশন সেন্সর গেম খেলে তার জন্য দরজা খুলে দেয়; উদাহরণস্বরূপ একটি গাড়ি রেসিং গেম, যেখানে আমরা আমাদের ডিভাইসগুলিকে উভয় দিকে কাত করে কেবল গাড়িকে চালিত করি। এবং, আমরা একটি গ্লাভসে একটি অ্যাকসিলরোমিটার (অবশ্যই কিছু সহায়ক সহ) লাগিয়ে এই প্রভাবটি অনুকরণ করতে পারি। আমরা শুধু আমাদের ম্যাজিক গ্লাভস লাগাই এবং বাম বা ডান, সামনে বা পিছনে হাত কাত করি এবং দেখি আমাদের রোভাররা আমাদের সুরে নাচছে। আমাদের এখানে যা করতে হবে তা হল অ্যাকসিলরোমিটারের রিডিংগুলিকে ডিজিটাল সিগন্যালে অনুবাদ করা যা রোভারের মোটর ব্যাখ্যা করতে পারে এবং এই সিগন্যালগুলিকে রোভারে প্রেরণের জন্য একটি পদ্ধতি তৈরি করতে পারে। এটি সম্পন্ন করার জন্য, আমরা আজকের পরীক্ষার জন্য ভাল অরডুইনো এবং এর সহযোগীদের প্রতি আহ্বান জানাই, 434MHz এ পরিচালিত একটি RF ট্রান্সমিটার-রিসিভার জোড়া যার ফলে খোলা জায়গায় প্রায় 100-150 মিটার পরিসীমা পাওয়া যায়, যা আমাদের লাইন-অফ-থেকেও বাঁচায়। দৃষ্টি সমস্যা।

বেশ নিফটি হ্যাক, তাই না? ডুব দেওয়া যাক…

ধাপ 1: আপনার সরবরাহ সংগ্রহ করুন

আপনার সরবরাহ সংগ্রহ করুন
আপনার সরবরাহ সংগ্রহ করুন
আপনার সরবরাহ সংগ্রহ করুন
আপনার সরবরাহ সংগ্রহ করুন
আপনার সরবরাহ সংগ্রহ করুন
আপনার সরবরাহ সংগ্রহ করুন
আপনার সরবরাহ সংগ্রহ করুন
আপনার সরবরাহ সংগ্রহ করুন
• আরডুইনো ন্যানো x1
• অ্যাকসিলেরোমিটার (ADXL335) x1
• 5V ডিসি মোটর + চাকা x2 প্রতিটি
• গরুর চাকা* x1
• L293D মোটর ড্রাইভার + 16 পিন আইসি সকেট x1 প্রতিটি
• 434 MHz RF Transmitter x1
• 434 MHz RF রিসিভার x1
• HT-12E এনকোডার IC + 18 পিন IC সকেট x1 প্রতিটি
• HT-12D ডিকোডার IC + 18 পিন IC সকেট x1 প্রতিটি
• LM7805 ভোল্টেজ রেগুলেটর x1
Ush পুশবাটন সুইচ x2
• লাল LED + 330O প্রতিরোধক x2 প্রতিটি
হলুদ LED + 330O প্রতিরোধক x1 প্রতিটি
• সবুজ LED + 330O প্রতিরোধক (চ্ছিক) x4 প্রতিটি
• 51kO এবং 1MO প্রতিরোধক x1 প্রতিটি
• 10µF রেডিয়াল ক্যাপাসিটার x2
ব্যাটারি, ব্যাটারি সংযোগকারী, ইউএসবি কেবল, জাম্পার তার, মহিলা হেডার, 2-পিন স্ক্রু টার্মিনাল, পিসিবি, চ্যাসি এবং আপনার স্বাভাবিক সোল্ডারিং আনুষাঙ্গিক

আপনি যদি ভাবছেন যে আমরা কেন একটি গবাদি পশু ব্যবহার করছি, জিনিসটি হল যে, আরএফ ট্রান্সমিটার এবং রিসিভার মডিউলগুলি কেবলমাত্র 4 টি ডেটা পিন পেয়েছে, যার অর্থ হল আমরা কেবল 2 টি মোটর চালাতে পারি এবং সেইজন্য একটি গরুর চাকার ব্যবহার কাঠামো সমর্থন। যাইহোক, যদি আপনি মনে করেন যে আপনার রোভার চার চাকার সাথে একটু বেশি শীতল দেখাবে, চিন্তা করবেন না, চারপাশে একটি কাজ আছে! এই ক্ষেত্রে, তালিকার বাইরে শুধু বোভাইন চাকাটি আঁচড়ান এবং 5V ডিসি মোটরগুলির আরেকটি জোড়া যুক্ত করুন, প্রতিটি চাকা সহ, এবং ধাপ 3 এর শেষের দিকে আলোচিত সহজ হ্যাকটি দেখুন।

অবশেষে, সাহসী হৃদয়ের জন্য, ডিজাইনে আরেকটি সামান্য পরিবর্তনের সুযোগ রয়েছে, যার মধ্যে আপনার নিজের আরডুইনো ইঞ্জিনিয়ারিং জড়িত। পরবর্তী ধাপে বোনাস বিভাগে যান এবং নিজের জন্য দেখুন। আপনার আরও কিছু অতিরিক্ত সরবরাহের প্রয়োজন হবে: একটি ATmega328P, একটি 28pin IC সকেট, একটি 16Mhz স্ফটিক দোলক, দুটি 22pF সিরামিক ক্যাপ, আরেকটি 7805 ভোল্টেজ রেগুলেটর, আরও দুটি 10μF রেডিয়াল ক্যাপ এবং 10kΩ, 680Ω, 330Ω প্রতিরোধক, এবং হ্যাঁ, বিয়োগ আরডুইনো!

ধাপ 2: ট্রান্সমিটারটি ওয়্যার আপ করুন

ট্রান্সমিটার ওয়্যার আপ
ট্রান্সমিটার ওয়্যার আপ
ট্রান্সমিটার ওয়্যার আপ
ট্রান্সমিটার ওয়্যার আপ
ট্রান্সমিটার ওয়্যার আপ
ট্রান্সমিটার ওয়্যার আপ
ট্রান্সমিটার ওয়্যার আপ
ট্রান্সমিটার ওয়্যার আপ

আমরা প্রকল্পটি দুটি অংশে বিভক্ত করব: ট্রান্সমিটার এবং রিসিভার সার্কিট। ট্রান্সমিটারে একটি অ্যাকসিলরোমিটার, একটি আরডুইনো এবং একটি আরএফ ট্রান্সমিটার মডিউল রয়েছে যার সাথে একটি HT-12E এনকোডার আইসি রয়েছে, যা সমস্ত সংযুক্ত পরিকল্পনামাফিক তারযুক্ত।

অ্যাক্সিলরোমিটার, যা আগে চালু করা হয়েছিল, আমাদের হাতের অঙ্গভঙ্গি চিনতে সাহায্য করে। আমরা আমাদের প্রয়োজন মেটাতে তিন অক্ষের অ্যাক্সিলারোমিটার (মূলত তিনটি একক-অক্ষের অ্যাক্সেলরোমিটার) ব্যবহার করতে যাচ্ছি। এটি তিনটি মাত্রায় ত্বরণ পরিমাপ করতে ব্যবহার করা যেতে পারে, এবং আপনি যেমন অনুমান করতে পারেন, এটি একটি নয়, বরং তার তিনটি অক্ষের (x, y এবং z) আপেক্ষিক তিনটি এনালগ মানের একটি সেট। প্রকৃতপক্ষে, আমাদের কেবল x এবং y অক্ষের সাথে ত্বরণ প্রয়োজন কারণ আমরা কেবল চার দিকে রোভার চালাতে পারি: ফ্রোয়ার্ড বা পিছনে (যেমন y অক্ষ বরাবর) এবং বাম বা ডান (যেমন x অক্ষ বরাবর)। আমরা যদি একটি ড্রোন তৈরি করতাম তাহলে আমাদের z অক্ষের প্রয়োজন হতো, যাতে আমরা ইশারার মাধ্যমে এর আরোহণ বা অবতরণকে নিয়ন্ত্রণ করতে পারি। যাই হোক না কেন, এই এনালগ মানগুলি যে মোটর চালাতে সক্ষম হওয়ার জন্য অ্যাকসিলরোমিটার উৎপাদনকে অবশ্যই ডিজিটাল সিগন্যালে রূপান্তরিত করতে হবে। এটি Arduino দ্বারা যত্ন নেওয়া হয় যা RF ট্রান্সমিটার মডিউলের মাধ্যমে রোভারে রূপান্তর করার সময় এই সংকেতগুলি প্রেরণ করে।

আরএফ ট্রান্সমিটার শুধুমাত্র একটি কাজ পেয়েছে: পিন 3 এ অ্যান্টেনার বাইরে পিন 3 এ উপলব্ধ "সিরিয়াল" ডেটা প্রেরণ করা। এটি HT-12E, 12 বিট প্যারালাল-টু-সিরিয়াল ডেটা এনকোডার, যা সংগ্রহ করে আরডুইনো থেকে AD11 থেকে AD11 লাইনে 4 বিট সমান্তরাল ডেটা, যার ফলে আমরা আরএফ ট্রান্সমিটারে একক ডেটা পিনের বিপরীতে 24 = 16 পর্যন্ত বিভিন্ন I/O সংমিশ্রণের জন্য জায়গা তৈরি করতে সক্ষম হই। এনকোডারে A0 থেকে A7 লাইন থেকে টানা বাকি 8 টি বিট, অ্যাড্রেস বাইট গঠন করে, যা সংশ্লিষ্ট আরএফ রিসিভারের সাথে আরএফ ট্রান্সমিটারকে যুক্ত করার সুবিধা দেয়। 12 টি বিট একসাথে রাখা হয় এবং সিরিয়াল করা হয়, এবং আরএফ ট্রান্সমিটারের ডেটা পিনে প্রেরণ করা হয়, যা পরিবর্তে, ASK- একটি 434MHz ক্যারিয়ার ওয়েভে ডেটা সংশোধন করে এবং পিন 1 এ অ্যান্টেনার মাধ্যমে এটি বের করে দেয়।

ধারণাগতভাবে, 434Mhz এ শোনা যেকোনো RF রিসিভার এই ডেটাকে আটকাতে, ডিমোডুলেট করতে এবং ডিকোড করতে সক্ষম হওয়া উচিত। যাইহোক, HT-12E এর ঠিকানা লাইন, এবং HT-12D প্রতিপক্ষের (12 বিট সিরিয়াল-টু-প্যারালাল ডেটা ডিকোডার), আমাদের শুধুমাত্র একটি RF ট্রান্সমিটার-রিসিভার পেয়ারকে ডেটা রাউটিং করে অনন্য করার অনুমতি দেয় উদ্দেশ্যপ্রাপ্ত রিসিভার যার ফলে অন্য সকলের সাথে যোগাযোগ সীমিত। আমাদের যা প্রয়োজন তা হল উভয় ফ্রন্টে সমানভাবে ঠিকানা লাইন কনফিগার করা। উদাহরণস্বরূপ, যেহেতু আমরা আমাদের HT-12E এর জন্য সমস্ত ঠিকানা লাইন গ্রাউন্ড করেছি, তাই আমাদের অবশ্যই HT-12D এর জন্য গ্রহন শেষে করতে হবে, অন্যথায় রোভার সিগন্যাল গ্রহণ করতে পারবে না। এইভাবে, আমরা একক ট্রান্সমিটার সার্কিটের মাধ্যমে একাধিক রোভার নিয়ন্ত্রণ করতে পারি প্রতিটি রিসিভারে HT-12Ds এ ঠিকানা লাইনগুলি একইভাবে কনফিগার করে। অথবা, আমরা দুটি গ্লাভস পরতে পারতাম, প্রতিটি একটি ট্রান্সমিটার সার্কিটের সাথে লাগানো থাকে যার মধ্যে একটি আলাদা ঠিকানা লাইন কনফিগারেশন থাকে (বলুন, একটি সব অ্যাড্রেস লাইন গ্রাউন্ডেড এবং অন্যটি সব হাই হোল্ডেড, অথবা একটি লাইন গ্রাউন্ডেড থাকাকালীন বাকি সাতটি রাখা হচ্ছে উঁচু এবং অন্যটি দুটি লাইনের সাথে স্থির থাকে যখন বাকি ছয়টি উঁচুতে রাখা হয়, অথবা এর অন্য কোন সংমিশ্রণ) এবং প্রতিটি স্টিয়ারিং একাধিক অভিন্নভাবে কনফিগার করা রোভার। একটি অ্যান্ড্রয়েড সিম্ফনিতে উস্তাদ খেলুন!

সার্কিট একত্রিত করার সময় একটি গুরুত্বপূর্ণ বিষয় লক্ষ্য করা হল Rosc এর মান। HT-12E এর পিন 15 এবং 16 এর মধ্যে একটি অভ্যন্তরীণ অসিলেটর সার্কিট রয়েছে, যা সেই পিনের মধ্যে Rosc নামে একটি প্রতিরোধককে সংযুক্ত করে সক্ষম করা হয়। রোস্কের জন্য নির্বাচিত মান আসলে অসিলেটর ফ্রিকোয়েন্সি নির্ধারণ করে, যা সরবরাহ ভোল্টেজের উপর নির্ভর করে পরিবর্তিত হতে পারে। Rosc- এর জন্য উপযুক্ত মান নির্বাচন করা HT-12E এর কার্যকারিতার জন্য অত্যন্ত গুরুত্বপূর্ণ! আদর্শভাবে, HT-12E এর অসিলেটর ফ্রিকোয়েন্সি HT-12D সমতুল্যের 1/50 গুণ হওয়া উচিত। অতএব, যেহেতু আমরা 5V তে কাজ করছি, তাই আমরা যথাক্রমে HT-12E এবং HT-12D সার্কিটের জন্য Rosc হিসাবে 1MΩ এবং 51kΩ প্রতিরোধক বেছে নিয়েছি। আপনার যদি অন্য কোন সাপ্লাই ভোল্টেজে সার্কিটগুলি চালানোর পরিকল্পনা করা হয়, তাহলে সঠিক HT-12E ডেটশীটের 11 পৃষ্ঠায় "অসিলেটর ফ্রিকোয়েন্সি বনাম সাপ্লাই ভোল্টেজ" গ্রাফটি পড়ুন সঠিক দোলক ফ্রিকোয়েন্সি এবং প্রতিরোধক ব্যবহার করার জন্য।

এছাড়াও, একটি সাইড নোট হিসাবে, আমরা এখানে পিসিবিতে সরাসরি সোল্ডার করার পরিবর্তে অ্যাকসিলরোমিটার, আরএফ ট্রান্সমিটার এবং সার্কিটে আরডুইনো প্লাগ করার জন্য এখানে মহিলা হেডার (আইসি সকেটের মতো একই উদ্দেশ্য পরিবেশন করে) নিযুক্ত করব। উদ্দেশ্য একটি সামান্য উপাদান পুনর্ব্যবহারযোগ্য থাকার বাসস্থান। বলুন, কিছুক্ষণ হয়ে গেছে যখন আপনি আপনার অঙ্গভঙ্গি-নিয়ন্ত্রিত রোভারটি তৈরি করেছেন এবং এটি কেবল সেখানে বসে আছে, অর্ধেক ধুলোতে coveredাকা, আপনার ট্রফির তাকের উপরে এবং আপনি আরেকটি দুর্দান্ত নির্দেশের উপর হোঁচট খেয়েছেন যা একটি অ্যাকসিলরোমিটারের কার্যকারিতা বাড়ায়। তো তুমি কি কর? আপনি কেবল আপনার রোভার থেকে এটিকে ছুঁড়ে ফেলুন এবং এটি আপনার নতুন সার্কিটের দিকে ঠেলে দিন। আপনাকে একটি নতুন পাওয়ার জন্য "অ্যামাজন" তলব করার দরকার নেই:-p

বোনাস: আরডুইনো থেকে দূরে থাকুন, এবং এখনও করবেন না

শুধু যদি আপনি একটু বেশি দুurসাহসী বোধ করেন, এবং বিশেষ করে যদি আপনি মনে করেন যে এই সুন্দর নকশা করা বিস্ময় (অবশ্যই Arduino) ব্যয় করা যেমন একটি তুচ্ছ কাজের জন্য আমাদের মত একটি সামান্য অতিরিক্ত, আমার সাথে আরেকটু সহ্য করুন; এবং যদি না হয়, তাহলে পরবর্তী ধাপে নির্দ্বিধায় যান।

এখানে আমাদের লক্ষ্য হল Arduino (আসলে Arduino এর মস্তিষ্ক; হ্যাঁ, আমি ATmega IC এর কথা বলছি!) দলের স্থায়ী সদস্য। ATMEGA বারবার একটি স্কেচ চালানোর জন্য প্রোগ্রাম করা হবে যাতে এটি সার্কিটের একটি চিরস্থায়ী অংশ হিসাবে কাজ করতে পারে, ঠিক যেমন HT-12E-a নিছক IC, ঠিক সেখানে বসে, যা করা উচিত তা করে। এইভাবে কোন বাস্তব এমবেডেড সিস্টেম হওয়ার কথা নয়?

যাইহোক, এই আপগ্রেডের সাথে এগিয়ে যাওয়ার জন্য, সংযুক্ত দ্বিতীয় স্কিম্যাটিক অনুযায়ী সার্কিটটি সংশোধন করুন। এখানে, আমরা কেবলমাত্র Arduino এর জন্য মহিলা হেডারগুলি ATmega এর জন্য একটি IC সকেট দিয়ে প্রতিস্থাপন করি, IC এর রিসেট পিন (পিন 1) এ একটি 10K পুল-আপ প্রতিরোধক যোগ করুন এবং পিন 9 এবং 10 এর মধ্যে একটি বাহ্যিক ঘড়ি দিয়ে এটি পাম্প করুন দুর্ভাগ্যবশত, যদি আমরা আরডুইনো থেকে দূরে থাকি, তাহলে আমরা এর অন্তর্নির্মিত ভোল্টেজ নিয়ন্ত্রকদেরও ছেড়ে দেই; অতএব, আমাদের অবশ্যই LM7805-সার্কিটের প্রতিলিপি করতে হবে যা আমরা এখানে রিসিভারের জন্য নিযুক্ত করেছি। উপরন্তু, আমরা অ্যাকসিলরোমিটার পাওয়ার জন্য প্রয়োজনীয় 3.3V আঁকতে ভোল্টেজ ডিভাইডার ব্যবহার করি।

এখন, এখানে শুধুমাত্র অন্য ক্যাচ এটিমেগা প্রোগ্রামিং তার কাজ করতে। যদিও আপনাকে ধাপ 4 পর্যন্ত অপেক্ষা করতে হবে। সুতরাং সংগেই থাকুন…

ধাপ 3: এবং, প্রাপক

এবং, প্রাপক
এবং, প্রাপক
এবং, প্রাপক
এবং, প্রাপক
এবং, প্রাপক
এবং, প্রাপক
এবং, প্রাপক
এবং, প্রাপক

রিসিভারে একটি আরএফ রিসিভার মডিউল থাকে যার সাথে একটি HT-12D ডিকোডার আইসি এবং একটি L293D মোটর ড্রাইভারের সাহায্যে পরিচালিত ডিসি মোটরগুলির একটি জোড়া থাকে, যা সমস্ত সংযুক্ত পরিকল্পিত অনুযায়ী তারযুক্ত।

আরএফ রিসিভারের একমাত্র কাজ হল ক্যারিয়ার ওয়েভকে ডিমোডুলেট করা (পিন 1 এ তার অ্যান্টেনার মাধ্যমে প্রাপ্ত) এবং পুনরুদ্ধারকৃত "সিরিয়াল" ডেটা পিন 7 এ রেন্ডার করা যেখানে সেখান থেকে এটি HT-12D দ্বারা ডেসিরালাইজেশনের জন্য নেওয়া হয়। এখন, ধরে নিচ্ছি যে HT-12D এ ঠিকানা লাইনগুলি (A0 থেকে A7) তার HT-12E সমকক্ষের মতোই কনফিগার করা হয়েছে, 4 টি সমান্তরাল বিট ডেটা লাইনগুলির মাধ্যমে (D8 থেকে D11) HT-12D, মোটর চালকের কাছে, যা মোটর চালানোর জন্য এই সংকেতগুলিকে ব্যাখ্যা করে।

আবার, Rosc এর মূল্যের দিকে মনোযোগ দিন। HT-12D এরও 15 এবং 16 পিনের মধ্যে একটি অভ্যন্তরীণ অসিলেটর সার্কিট রয়েছে, যা সেই পিনের মধ্যে Rosc নামে একটি প্রতিরোধককে সংযুক্ত করে সক্ষম করা হয়। রোস্কের জন্য নির্বাচিত মান আসলে অসিলেটর ফ্রিকোয়েন্সি নির্ধারণ করে, যা সরবরাহ ভোল্টেজের উপর নির্ভর করে পরিবর্তিত হতে পারে। Rosc- এর জন্য উপযুক্ত মান নির্বাচন করা HT-12D এর কার্যকারিতার জন্য অত্যন্ত গুরুত্বপূর্ণ! আদর্শভাবে HT-12D এর অসিলেটর ফ্রিকোয়েন্সি HT-12E সমকক্ষের চেয়ে 50 গুণ বেশি হওয়া উচিত। অতএব, যেহেতু আমরা 5V তে কাজ করছি, আমরা যথাক্রমে HT-12E এবং HT-12D সার্কিটের জন্য 1MΩ এবং 51kΩ প্রতিরোধককে Rosc হিসেবে বেছে নিয়েছি। আপনার যদি অন্য কোন সাপ্লাই ভোল্টেজে সার্কিটগুলি চালানোর পরিকল্পনা করা হয়, তাহলে সঠিক HT-12D ডেটশীটের পৃষ্ঠা 5-এ "অসিলেটর ফ্রিকোয়েন্সি বনাম সাপ্লাই ভোল্টেজ" গ্রাফটি পড়ুন সঠিক দোলক ফ্রিকোয়েন্সি এবং প্রতিরোধক ব্যবহার করার জন্য।

এছাড়াও, আরএফ রিসিভারের জন্য মহিলা হেডারগুলি ভুলে যাবেন না।

Allyচ্ছিকভাবে, একটি LED 330Ω বর্তমান সীমাবদ্ধ প্রতিরোধকের মাধ্যমে HT-12D এর 4 টি ডেটা পিনের সাথে সংযুক্ত করা যেতে পারে যাতে সেই পিনে প্রাপ্ত বিট নির্ধারণ করতে সাহায্য করা যায়। যদি বিটটি উচ্চ (1) হয় তবে LED জ্বলবে এবং যদি বিটটি কম (0) হয় তবে তা কমবে। বিকল্পভাবে, একটি একক LED HT-12D এর VT পিন (আবার, 330Ω বর্তমান সীমাবদ্ধ প্রতিরোধকের মাধ্যমে) এর সাথে আবদ্ধ হতে পারে, যা বৈধ সংক্রমণ ঘটলে আলোকিত হবে।

এখন, যদি আপনি মোটরগুলির সাথে হ্যাকটি খুঁজছেন যার সম্পর্কে আমি প্রথম ধাপে কথা বলছিলাম, এটি খুব সহজ! দ্বিতীয় স্কিম্যাটিক দেখানো হিসাবে সমানভাবে প্রতিটি সেটের দুটি মোটরকে তারে সংযুক্ত করুন। এটি যেভাবে অনুমিত হয় সেভাবে কাজ করে কারণ প্রতিটি সেটের মোটর (বাম দিকে সামনের এবং পিছনের মোটর এবং ডানদিকে সামনের এবং পিছনের মোটর) কখনই বিপরীত দিকে চালিত হয় না। অর্থাৎ, রোভারটি ডানদিকে ঘুরানোর জন্য, বাম দিকে সামনের এবং পিছনের মোটর উভয়ই সামনের দিকে এবং ডানদিকে সামনের এবং পিছনের মোটর উভয়ই পিছনের দিকে চালিত হতে হবে। একইভাবে, রোভার বাম দিকে বাঁকতে, বাম দিকে সামনের এবং পিছনের মোটর উভয়ই পিছনের দিকে চালিত হতে হবে এবং ডানদিকে সামনের এবং পিছনের মোটর উভয়ই সামনের দিকে চালিত হতে হবে। অতএব, একটি সেটের উভয় মোটরকে একই জোড়া ভোল্টেজে খাওয়ানো নিরাপদ। এবং, এটি সম্পর্কে যাওয়ার উপায় কেবল তাদের সমান্তরালভাবে মোটরগুলিকে হুক করা।

ধাপ 4: কোডে যান

কোডে
কোডে

রোভারটি চালু এবং চালানোর জন্য কেবল একটি কাজ বাকি আছে। হ্যাঁ, আপনি এটা সঠিক অনুমান করেছিলেন! (আমি আশা করি আপনি করেছেন) আমরা এখনও অ্যাকসিলরোমিটার রিডিংগুলিকে এমন একটি ফর্মে অনুবাদ করতে পেরেছি যা মোটর চালক মোটর চালাতে সক্ষম হতে ব্যাখ্যা করতে পারে। আপনি যদি ভাবছেন যে যেহেতু অ্যাকসিলরোমিটার রিডিং এনালগ এবং মোটর চালক ডিজিটাল সিগন্যাল প্রত্যাশা করে, তাই আমাদের টেকনিক্যালি নয়, এডিসির কোন প্রকার বাস্তবায়ন করতে হবে, কিন্তু এটাই আমাদের করতে হবে। এবং এটি বেশ সহজবোধ্য।

আমরা জানি যে একটি অ্যাকসিলরোমিটার একটি রৈখিক অক্ষ বরাবর মহাকর্ষীয় ত্বরণ পরিমাপ করে এবং এই ত্বরণটি ভোল্টেজ স্তর হিসেবে স্থল এবং সরবরাহ ভোল্টেজের মধ্যে ওঠানামা করে, যা আমাদের মাইক্রোকন্ট্রোলার 0 থেকে 1023 এর মধ্যে পরিবর্তিত একটি এনালগ মান হিসাবে পড়ে। কিন্তু, যেহেতু আমরা 3.3V এ অ্যাকসিলরোমিটার চালাচ্ছেন, এটা যুক্তিযুক্ত যে আমরা 10-বিট ADC (যেটি একটি Arduino এ ATmeaga এ সংহত হয়ে আসে) এর জন্য 3.3V এ এনালগ রেফারেন্স সেট করি। এটি জিনিসগুলি বোঝার জন্য আরও সহজ করে তুলবে; যদিও, আমাদের সামান্য পরীক্ষা -নিরীক্ষার জন্য এটি খুব বেশি গুরুত্বপূর্ণ হবে না এমনকি যদি আমরা না করি (আমাদের কোডটি কিছুটা পরিবর্তন করতে হবে)। তবে এটি করার জন্য, আমরা কেবল আরডুইনো (ATmega এ 21 পিন) এ AREF পিনকে 3.3V এ সংযুক্ত করি এবং এনালগ রেফারেন্স (বহিরাগত) কল করে কোডের এই পরিবর্তনটি নির্দেশ করি।

এখন, যখন আমরা অ্যাকসিলরোমিটার সমতল এবং এনালগ রাখি x এবং y অক্ষ বরাবর ত্বরণ পড়ুন (মনে রাখবেন? আমাদের কেবল এই দুটি অক্ষের প্রয়োজন), আমরা প্রায় 511 (অর্থাৎ 0 থেকে 1023 এর মধ্যে অর্ধেক পথ) এর মান পাই, যা মাত্র একটি এই অক্ষ বরাবর 0 ত্বরণ আছে বলার উপায়। বাস্তবের খুঁটিনাটি খনন করার পরিবর্তে, এটি একটি গ্রাফে x এবং y অক্ষ হিসাবে কল্পনা করুন, যার মান 511 মূলকে নির্দেশ করে এবং 0 এবং 1023 চিত্রে দেখানো শেষ বিন্দুগুলি; অ্যাকসিলরোমিটারকে এমনভাবে নির্দেশ করুন যাতে এর পিনগুলি নিচে নির্দেশ করে এবং আপনার কাছাকাছি থাকে অথবা অন্যথায় আপনি অক্ষগুলি উল্টাতে/বিনিময় করতে পারেন। এর মানে হল যে, যদি আমরা ডানদিকে অ্যাকসিলরোমিটার কাত করি, তাহলে আমাদের x-axis বরাবর 511 এর চেয়ে বড় একটি মান পড়তে হবে এবং যদি আমরা অ্যাক্সিলেরোমিটারটি বাম দিকে কাত করি, তাহলে আমাদের x-axis বরাবর 511 এর চেয়ে কম মান পাওয়া উচিত । একইভাবে, যদি আমরা অ্যাকসিলরোমিটারকে সামনের দিকে কাত করি, আমাদের y-axis বরাবর 511 এর চেয়ে বড় একটি মান পড়তে হবে, এবং যদি আমরা অ্যাকসিলরোমিটারকে পিছনে কাত করি, তাহলে আমাদের y-axis বরাবর 511 এর চেয়ে কম একটি মান পড়তে হবে। এবং এইভাবে আমরা কোডে, রোভারকে যে দিক দিয়ে চালিত করা উচিত তা অনুমান করি। যাতে রোভারটি স্থির থাকে। এই কাজটিকে কিছুটা সহজ করার জন্য, আমরা একটি সীমানা গঠনের নির্দিষ্ট সীমানা নির্ধারণ করি, যেমন চিত্রটি দেখায়, যাতে রোভারটি স্থির থাকে যতক্ষণ x এবং y রিডিং সীমার মধ্যে থাকে এবং আমরা নিশ্চিতভাবে জানি যে রোভারটি অবশ্যই সেট করতে হবে গতি একবার সীমা অতিক্রম করা হয়।

উদাহরণস্বরূপ, যদি y- অক্ষ 543 পড়ে, আমরা জানি যে অ্যাকসিলরোমিটার সামনের দিকে কাত হয়ে আছে তাই আমাদের অবশ্যই রোভারকে এগিয়ে নিয়ে যেতে হবে। আমরা পিন D2 এবং D4 উচ্চ এবং পিন D3 এবং D5 LOW সেট করে এটি করি। এখন, যেহেতু এই পিনগুলি সরাসরি HT-12E তে যুক্ত করা হয়েছে, তাই সিগন্যালগুলি ক্রমানুসারে এবং RF ট্রান্সমিটারকে বের করে কেবল রোভারে বসে থাকা RF রিসিভার দ্বারা ধরা হয়, যা HT-12D এর সাহায্যে সিগন্যালগুলিকে deserializes এবং এগুলি L293D তে চলে যায়, যা এই সংকেতগুলিকে ব্যাখ্যা করে এবং মোটরগুলিকে এগিয়ে নিয়ে যায়

আপনি এই থ্রেশহোল্ড পরিবর্তন করতে চান, যদিও, সংবেদনশীলতা ক্রমাঙ্কন করার জন্য। এটি করার একটি সহজ উপায় হল আপনার অ্যাকসিলরোমিটারটি কেবল আপনার আরডুইনোতে সংযুক্ত করা এবং একটি স্কেচ চালানো যা সিরিয়াল মনিটরে x এবং y রিডিংগুলি ছড়িয়ে দেয়। এখন শুধু অ্যাকসিলরোমিটারটা একটু ঘুরে আসুন, রিডিংগুলো দেখে নিন এবং থ্রেশহোল্ডের উপর সিদ্ধান্ত নিন।

এবং এটাই! আপনার Arduino এ কোড আপলোড করুন এবং উপভোগ করুন !! অথবা, সম্ভবত এত তাড়াতাড়ি নয়:-(যদি আপনি বোনাস বিভাগটি এড়িয়ে না যান, তাহলে আপনার ATmega এ কোড আপলোড করার অর্থ হবে একটু বেশি কাজ। আপনার কাছে দুটি বিকল্প আছে:

বিকল্প A: একটি USB থেকে সিরিয়াল ডিভাইস ব্যবহার করুন যেমন FTDI FT232 বেসিক ব্রেকআউট বোর্ড। নীচের ম্যাপিং অনুসারে কেবল টিটিএল হেডার থেকে এটিমেগায় সংশ্লিষ্ট পিনগুলিতে তারগুলি চালান:

ব্রেকআউট বোর্ডে পিন মাইক্রোকন্ট্রোলারে পিন
ডিটিআর/জিআরএন 0.1µF ক্যাপের মাধ্যমে RST/রিসেট (পিন 1)
Rx Tx (পিন 3)
Tx Rx (পিন 2)
Vcc +5v আউটপুট
সিটিএস (অব্যবহৃত)
Gnd গ্রাউন্ড

এখন, একটি USB তারের এক প্রান্ত ব্রেকআউট বোর্ডে এবং অন্যটি আপনার পিসিতে প্লাগ করুন এবং কোডটি আপলোড করুন যেমন আপনি স্বাভাবিকভাবে করবেন: Arduino IDE চালু করুন, একটি উপযুক্ত সিরিয়াল পোর্ট নির্বাচন করুন, বোর্ডের ধরন সেট করুন, স্কেচ কম্পাইল করুন এবং আপলোড করুন ।

বিকল্প B: যদি আপনি কোথাও পড়ে থাকেন তবে UNO ব্যবহার করুন। শুধু আপনার ATmega কে UNO- এ প্লাগ করুন, আপনার সাধারনভাবে কোডটি আপলোড করুন, IC কে টানুন এবং ট্রান্সমিটার সার্কিটে ফিরিয়ে দিন। পাই হিসাবে সহজ!

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

Andddd, আমরা আনুষ্ঠানিকভাবে সম্পন্ন করেছি! আমি আশা করি আপনি এই উদ্ভটভাবে দীর্ঘ নির্দেশনা উপভোগ করেছেন। এখন, এগিয়ে যান, আপনার রোভার তৈরি করা শেষ করুন যদি আপনি ইতিমধ্যে সম্পন্ন না করেন, কিছুক্ষণ এটির সাথে খেলুন এবং নীচের মন্তব্য বিভাগে প্রশ্ন এবং/অথবা গঠনমূলক সমালোচনার সাথে ফিরে আসুন।

ধন্যবাদ

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

প্রস্তাবিত: