সুচিপত্র:

Arduino 2-in-1 মডেল ট্রেন কন্ট্রোলার: 4 টি ধাপ
Arduino 2-in-1 মডেল ট্রেন কন্ট্রোলার: 4 টি ধাপ

ভিডিও: Arduino 2-in-1 মডেল ট্রেন কন্ট্রোলার: 4 টি ধাপ

ভিডিও: Arduino 2-in-1 মডেল ট্রেন কন্ট্রোলার: 4 টি ধাপ
ভিডিও: ৫০ লাখ টাকার ড্রোনের কি হাল| Dji Drone crash | #travel #shorts #Eat&Travelwithmamun 2024, জুলাই
Anonim
Arduino 2-in-1 মডেল ট্রেন কন্ট্রোলার
Arduino 2-in-1 মডেল ট্রেন কন্ট্রোলার

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

ধাপ 1: পালস প্রস্থ মডুলেশন (PWM)

পালস প্রস্থ মডুলেশন (PWM)
পালস প্রস্থ মডুলেশন (PWM)

আপনারা যারা PWM এর সাথে পরিচিত নন, এটি যতটা শোনাচ্ছে ততটা ভীতিকর নয়। আমাদের সাধারণ মোটর কন্ট্রোল অ্যাপ্লিকেশনের জন্য এর প্রকৃত অর্থ হল আমরা কিছু ফ্রিকোয়েন্সি বর্গাকার তরঙ্গ উৎপন্ন করি এবং তারপরে আমরা শুল্ক চক্র পরিবর্তন করি। ডিউটি চক্রটি সময়ের অনুপাত হিসাবে সংজ্ঞায়িত করা হয় যে আউটপুট তরঙ্গাকাল সময়ের তুলনায় একটি যৌক্তিক উচ্চ। 10% ডিউটি চক্রের উপরের তরঙ্গাকৃতি, 50% শুল্ক চক্রে মধ্য তরঙ্গ এবং 90% শুল্ক চক্রের নিচের তরঙ্গরূপটি আপনি বেশ স্পষ্টভাবে দেখতে পাচ্ছেন। প্রতিটি তরঙ্গাকৃতিতে আচ্ছাদিত ড্যাশ লাইন মোটর দ্বারা দেখা সমতুল্য ডিসি ভোল্টেজকে উপস্থাপন করে। Arduino- এর একটি PWM সক্ষমতা আছে, এই ধরনের ডিসি মোটর নিয়ন্ত্রণ তৈরি করা সত্যিই সহজ। পিডব্লিউএম ব্যবহারের আরেকটি সুবিধা হল যে এটি মোটরকে লার্চিং স্টার্টআপ থেকে রক্ষা করতে সাহায্য করে যা সোজা ডিসি ব্যবহার করার সময় ঘটতে পারে। PWM এর একটি অসুবিধা হল যে PWM এর ফ্রিকোয়েন্সি এ মাঝে মাঝে মোটর থেকে একটি শ্রবণযোগ্য শব্দ হয়।

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

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

প্রথম ছবিটি সুইচ এবং LM298 মোটর ড্রাইভার মডিউলের জন্য Arduino সংযোগ দেখায়। Arduino এর অভ্যন্তরে দুর্বল পুল-আপ প্রতিরোধক রয়েছে তাই সুইচগুলির জন্য কোন পুল-আপ প্রতিরোধক প্রয়োজন হয় না। দিকনির্দেশ সুইচ একটি সহজ SPST (একক মেরু একক নিক্ষেপ) সুইচ। থ্রোটল এবং ব্রেক সুইচগুলি সাধারণত খোলা, ক্ষণস্থায়ী যোগাযোগ পুশ বোতাম হিসাবে দেখানো হয়।

দ্বিতীয় ছবিটি ব্লুটুথ মডিউল এবং LM298 মোটর ড্রাইভার মডিউলের জন্য Arduino সংযোগ দেখায়। ব্লুটুথ TXD আউটপুট সরাসরি Arduino RX সিরিয়াল ইনপুটের সাথে সংযোগ স্থাপন করে।

তৃতীয় ছবিটি একটি L298N দ্বৈত এইচ-ব্রিজ মডিউল। LM298 মডিউলটিতে একটি অনবোর্ড 5 ভোল্ট রেগুলেটর রয়েছে যা একটি জাম্পার দ্বারা সক্ষম করা যায়। আরডুইনো এবং ব্লুটুথের জন্য আমাদের +5 ভোল্ট দরকার কিন্তু আমরা মোটর চালানোর জন্য +12 ভোল্ট চাই। এই ক্ষেত্রে আমরা L298N এর " +12V পাওয়ার" ইনপুটটিতে +12 ভোল্ট প্রয়োগ করি এবং আমরা "5V সক্ষম" জাম্পারটি রেখে দেব। এটি 5-ভোল্ট রেগুলেটরকে মডিউলের "+5 পাওয়ার" সংযোগে আউটপুট করতে দেয়। এটিকে আরডুইনো এবং ব্লুটুথের সাথে সংযুক্ত করুন। +12 ইনপুট এবং +5 আউটপুট "পাওয়ার GND" মডিউলের সাথে স্থল তারের সংযোগ করতে ভুলবেন না।

আমরা চাই মোটরটিতে আউটপুট ভোল্টেজটি আরডুইনো দ্বারা উত্পন্ন PWM এর উপর ভিত্তি করে পরিবর্তিত হতে পারে, কেবল পূর্ণ বা সম্পূর্ণ বন্ধ হওয়ার পরিবর্তে। এটি করার জন্য, আমরা "ENA" এবং "ENB" থেকে জাম্পারগুলি সরিয়ে ফেলি এবং মডিউলে আমাদের Arduino PWM আউটপুটটিকে "ENA" এর সাথে সংযুক্ত করি। মনে রাখবেন যে প্রকৃত সক্ষম পিনটি বোর্ড প্রান্তের সবচেয়ে কাছের ("ইনপুট" পিনের পাশে)। প্রতিটি সক্ষমের পিছনের পিন +5 ভোল্ট তাই আমরা নিশ্চিত করতে চাই যে আমরা এর সাথে সংযুক্ত নই।

মডিউলের "IN1" এবং "IN2" পিনগুলি সংশ্লিষ্ট Arduino পিনের সাথে সংযুক্ত। সেই পিনগুলি মোটরের দিক নিয়ন্ত্রণ করে এবং হ্যাঁ, মডিউলে কেবল একটি সুইচ সংযুক্ত করার পরিবর্তে আরডুইনোকে তাদের নিয়ন্ত্রণ করার একটি ভাল কারণ রয়েছে। সফটওয়্যার আলোচনায় কেন আমরা তা দেখব।

ধাপ 3: ব্লুটুথ মডিউল

ব্লুটুথ মডিউল
ব্লুটুথ মডিউল

এখানে দেখানো ছবিটি উপলব্ধ ব্লুটুথ মডিউলগুলির সাধারণ। কেনার জন্য একজনের সন্ধান করার সময়, আপনি "HC-05" এবং HC-06 পদে অনুসন্ধান করতে পারেন। দুইয়ের মধ্যে পার্থক্য ফার্মওয়্যারে এবং সাধারণত বোর্ডে পিনের সংখ্যায়। উপরের ছবিটি একটি HC-06 মডিউলের এবং এটি সরলীকৃত ফার্মওয়্যারের সাথে আসে যা শুধুমাত্র খুব মৌলিক কনফিগারেশনের অনুমতি দেয়। এটি একটি "স্লেভ" শুধুমাত্র ব্লুটুথ ডিভাইস হিসাবে সেট করা হয়েছে। সহজ ভাষায় এর মানে হল যে এটি শুধুমাত্র একটি "মাস্টার" ডিভাইস থেকে কমান্ডের সাড়া দিতে পারে এবং নিজে থেকে কমান্ড ইস্যু করতে পারে না। HC-05 মডিউলটিতে আরও কনফিগারেশনের সম্ভাবনা রয়েছে এবং এটিকে "মাস্টার" বা "স্লেভ" ডিভাইস হিসাবে সেট করা যেতে পারে। HC-05 সাধারণত HC-06 এর জন্য উপরের চারটির পরিবর্তে ছয়টি পিন থাকে। স্টেট পিনটি সত্যিই গুরুত্বপূর্ণ নয় তবে আপনি যদি কোন কনফিগারেশন করতে চান তবে কী পিন (কখনও কখনও "এন" এর মতো অন্যান্য নাম দিয়ে যায়) প্রয়োজন। সাধারণত, যদি আপনি 9600 এর ডিফল্ট বড রেটের সাথে ঠিক থাকেন এবং মডিউলটির একটি নির্দিষ্ট নাম দিতে যত্নবান না হন তবে মডিউলগুলির কোনও কনফিগারেশনের প্রয়োজন নেই। আমার বেশ কয়েকটি প্রকল্প আছে যেখানে আমি এইগুলি ব্যবহার করি তাই আমি সে অনুযায়ী তাদের নাম দিতে পছন্দ করি।

ব্লুটুথ মডিউলগুলি কনফিগার করার জন্য প্রয়োজন হয় যে আপনি একটি RS-232 সিরিয়াল পোর্ট বা একটি USB পোর্টে একটি ইন্টারফেস কিনুন বা তৈরি করুন। আমি এই পোস্টে কীভাবে একটি তৈরি করব তা কভার করব না তবে আপনার ওয়েবে তথ্য খুঁজে পেতে সক্ষম হওয়া উচিত। অথবা শুধু একটি ইন্টারফেস কিনুন। কনফিগারেশন কমান্ডগুলি AT কমান্ড ব্যবহার করে যা পুরোনো দিনে টেলিফোন মডেমের সাথে ব্যবহৃত হত। আমি এখানে একটি ইউজার ম্যানুয়াল সংযুক্ত করেছি যার মধ্যে প্রতিটি মডিউল টাইপের AT কমান্ড রয়েছে। একটি বিষয় লক্ষনীয় যে, HC-06 এর জন্য UPPERCASE কমান্ড প্রয়োজন এবং কমান্ড স্ট্রিং 1 সেকেন্ডের মধ্যে সম্পন্ন করতে হবে। এর মানে হল যে বড রেট পরিবর্তন করার মতো কিছু দীর্ঘ স্ট্রিংগুলিকে আপনার টার্মিনাল প্রোগ্রামে কাটা এবং আটকানো প্রয়োজন হবে অথবা পাঠানোর জন্য আপনাকে পাঠ্য ফাইল সেট আপ করতে হবে। UPPERCASE প্রয়োজন শুধুমাত্র যদি আপনি কনফিগারেশন কমান্ড পাঠানোর চেষ্টা করছেন। নিয়মিত যোগাযোগ মোড যেকোন 8-বিট ডেটা গ্রহণ করতে পারে।

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

সফ্টওয়্যারটি ম্যানুয়াল সংস্করণ এবং ব্লুটুথ সংস্করণ উভয়ের জন্যই বেশ সহজ। ব্লুটুথ সংস্করণটি নির্বাচন করতে কেবল "#ডিফাইন BT_Ctrl" স্টেটমেন্টটি অস্বীকার করুন।

যখন আমি PIC কোড লিখেছিলাম তখন আমি PWM ফ্রিকোয়েন্সি নিয়ে পরীক্ষা করেছিলাম এবং অবশেষে 500-Hz এ স্থির হয়ে গিয়েছিলাম। আমি আবিষ্কার করেছি যে যদি ফ্রিকোয়েন্সি খুব বেশি হয় তবে LM298N মডিউল ডালগুলিতে দ্রুত প্রতিক্রিয়া জানাতে সক্ষম ছিল না। এর মানে হল যে ভোল্টেজ আউটপুট রৈখিক ছিল না এবং বড় জাম্প নিতে পারে। আরডুইনোতে পিডব্লিউএম কমান্ডগুলি অন্তর্নির্মিত রয়েছে তবে তারা কেবল আপনাকে ডিউটি চক্রের পরিবর্তনের অনুমতি দেয় এবং ফ্রিকোয়েন্সি নয়। সৌভাগ্যবশত, ফ্রিকোয়েন্সি প্রায় 490-হার্জ তাই এটি পিআইসিতে ব্যবহৃত 500-হার্জের যথেষ্ট কাছাকাছি।

ট্রেন থ্রোটলগুলির একটি "বৈশিষ্ট্য" হল একটি বাস্তব ট্রেন কীভাবে কাজ করে তা অনুকরণ করার জন্য ত্বরণ এবং ব্রেকিংয়ের গতিবেগ। এটি সম্পন্ন করার জন্য, সফ্টওয়্যারের ম্যানুয়াল সংস্করণের জন্য একটি সহজ সময় বিলম্ব লুপে োকানো হয়। দেখানো মান দিয়ে, 0 থেকে 12 ভোল্ট বা 12 ভোল্ট থেকে শূন্যে যেতে প্রায় 13 সেকেন্ড সময় লাগে। বিলম্বটি সহজেই দীর্ঘ বা স্বল্প সময়ের জন্য পরিবর্তন করা যেতে পারে। একমাত্র ক্ষেত্রে যেখানে গতিবেগ কার্যকর হয় না যখন দিকনির্দেশ সুইচ পরিবর্তন করা হয়। সুরক্ষার উদ্দেশ্যে PWM ডিউটি চক্র অবিলম্বে 0% এ সেট করা হয় যখনই এই সুইচ পরিবর্তন করা হয়। এটি, কার্যত, ইমার্জেন্সি ব্রেক হিসাবে দিকনির্দেশ সুইচকেও দ্বিগুণ করে তোলে।

ডাইরেকশন সুইচের অবিলম্বে হ্যান্ডলিং নিশ্চিত করার জন্য আমি এর কোডটি একটি ইন্টারাপ্ট হ্যান্ডলারে রেখেছি। এটি আমাদের "পরিবর্তনের উপর বাধা" ফাংশনটি ব্যবহার করতে দেয় যাতে পরিবর্তনটি নিম্ন থেকে উচ্চ বা উচ্চ থেকে নিম্ন হয় তা বিবেচ্য নয়।

সফটওয়্যারের ব্লুটুথ সংস্করণটি ফরওয়ার্ড, রিভার্স, ব্রেক এবং থ্রটল ফাংশন শুরু করতে একক অক্ষর কমান্ড ব্যবহার করে। বাস্তবে, প্রাপ্ত কমান্ডগুলি ম্যানুয়াল সুইচগুলি প্রতিস্থাপন করে তবে একই প্রতিক্রিয়া সৃষ্টি করে। ব্লুটুথ নিয়ন্ত্রণের জন্য আমি যে অ্যাপটি ব্যবহার করি তাকে নেক্সট প্রোটোটাইপস দ্বারা "ব্লুটুথ সিরিয়াল কন্ট্রোলার" বলা হয়। এটি আপনাকে একটি ভার্চুয়াল কীপ্যাড কনফিগার করতে এবং প্রতিটি কী এর জন্য আপনার নিজস্ব কমান্ড স্ট্রিং এবং নাম সেট করতে দেয়। এটি আপনাকে একটি পুনরাবৃত্তি হার সেট করার অনুমতি দেয় তাই আমি ব্রেক এবং থ্রোটল বোতামগুলিকে 50ms তে সেট করি যাতে প্রায় 14 সেকেন্ডের গতিবেগ থাকে। আমি ফরওয়ার্ড এবং রিভার্স বোতামগুলির জন্য পুনরাবৃত্তি ফাংশন অক্ষম করেছি।

এই পোস্টের জন্য এটিই। আমার অন্যান্য নির্দেশাবলী দেখুন। আপনি যদি পিআইসি মাইক্রোকন্ট্রোলার প্রকল্পগুলিতে আগ্রহী হন তবে আমার ওয়েবসাইট www.boomerrules.wordpress.com এ দেখুন

প্রস্তাবিত: