সুচিপত্র:
ভিডিও: গার্ডেন ট্রেন - Arduino Wireless NMRA DCC: 4 ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
মৃত রেল সিস্টেমে ডিসিসির সাথে পূর্ববর্তী নির্দেশাবলীর আরও, আমি কিপ্যাড এবং এলসিডি ডিসপ্লে সহ একটি হাত ধরে ডিসিসি কমান্ড স্টেশন দিয়ে এই ধারণাটি আরও উন্নত করেছি। কমান্ড স্টেশনে এনএমআরএ ডিসিসি নির্দেশাবলীর জন্য প্রয়োজনীয় সমস্ত কোডিং রয়েছে, তবে রেলগুলির সাথে সংযোগ স্থাপনের পরিবর্তে, ডেটা রেডিও মডিউল RF24L01+ দ্বারা ট্রাকে বা লোকোর অধীনে রিসিভারে স্থানান্তরিত হয় - যেখানে রুম অনুমতি দেয়।
অবশ্যই, আপনার লোকোগুলি ইঞ্জিন মোটরগুলির জন্য উপযুক্ত লোড ক্ষমতার একটি ডিকোডার লাগাতে হবে।
ধাপ 1: সিস্টেম ডিজাইন
আরডুইনো প্রো মিনি ডিজাইনের কেন্দ্রবিন্দুতে রয়েছে। সার্কিট বিকাশ এবং পিসিবি উত্পাদন করতে ফ্রিজিং ব্যবহার করা।
আমি ট্রান্সমিটার এবং রিসিভার উভয়ের জন্য একই পিসিবি ব্যবহার করতে পেরেছিলাম এইভাবে কিছু খরচ সাশ্রয় হয়েছিল।
ট্রান্সমিটারে কিপ্যাড এবং এলসিডি সংযোগ থাকে যখন রিসিভারের প্রয়োজন হয় না এবং লোকের জন্য ডিসিসি আউটপুট সরবরাহ করতে এইচ-ব্রিজ ব্যবহার করে।
আরও শক্তিশালী লোকেসের জন্য প্রয়োজন হলে একটি বৃহত্তর এইচ-সেতুর জন্য সংযোগগুলি অন্তর্ভুক্ত করা হয়।
PCF8574 মুছে ফেলা যায় যদি আপনি একটি LCD ডিসপ্লে ব্যবহার করেন যা ব্যাকপ্যাকের সাথে আসে যা Arduino- এ SCA / SCL সংযোগের অনুমতি দেয় শুধুমাত্র 2 টি তারের মাধ্যমে ডিসপ্লে খাওয়ানোর জন্য। = £ 10.00 প্রায় প্রতিটি। + ব্যাটারি
আরডুইনো প্রো মিনি। x 2 = £ 4.00
4x3 ঝিল্লি কীপ্যাড = £ 3.00
20 x 4 LCD ডিসপ্লে = £ 7.00
PCF5874 = £ 1.80
NRF24L01+। রেডিও মডিউল x 2 = £ 5.80
10 অফের জন্য PCB উত্পাদন (অথবা ভেরো বোর্ড ব্যবহার করা যেতে পারে) = £ 24 বা 2off এর জন্য 80 4.80
3.3 v রেগুলেটর = £ 0.17 (RS Comp থেকে 25 এর প্যাক)
5v রেগুলেটর LM7805 = £ 0.30
এইচ-ব্রিজ SN754410ne = £ 3.00
Lloytron পুনরায় চার্জযোগ্য 2700 maH AA ব্যাটারী x 12 = £ 22.00। (নিম্ন এমএএইচ রেটযুক্ত ব্যাটারি সস্তা)
ক্যাপাসিটর, পাত্র, পিন, সংযোগকারী ইত্যাদি = £ 2.00 প্রায়
ঘের 190x110x60 মিমি = £ 8.00
ট্রান্সমিটার - ফোন চার্জার / ব্যাটারি = £ 2.00
ধাপ 2: ট্রান্সমিটার
সার্কিট ডায়াগ্রামটি দেখানো হয়েছে যেখানে Arduino Pro Mini- এর D2 থেকে D8 পিনগুলি কীপ্যাডের সাথে সংযুক্ত থাকে। 100k ohm potentiometer সংযুক্ত করা হয় এনালগ পিন A0 কে স্পীড অ্যাডজাস্টমেন্টের জন্য। A5 Arduino Pro Mini- এর মাধ্যমে Pro Mini- এর উপরের স্তরের পিনগুলিতে সোল্ডেড তারের মাধ্যমে।
আরডুইনো স্কেচ ডাউনলোডের জন্য সংযুক্ত।
আমি একটি 20 x 4 এলসিডি ডিসপ্লে ব্যবহার করেছি যাতে প্রতি লাইনে 20 অক্ষরের সাথে 4 লাইনের তথ্যের অনুমতি দেওয়া হয়। কীপ্যাড নিম্নলিখিত মেনু প্রদান করে:
1 থেকে 9 = লোকো ঠিকানা * = দিক 0 = আলো # = কী 1 থেকে 8 এর জন্য ফাংশন মেনু
আরডুইনো প্রো মিনি স্কেচের প্রাথমিক বর্ণনা: কোডের এই লাইনটি ডিসিসি মেসেজকে হেক্স ফরম্যাটে সাজিয়েছে। struct বার্তা বার্তা [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // idle msg
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 বাইট ঠিকানা
};
প্রতিটি লোকোর জন্য সেটিংস সংরক্ষণ করার জন্য, অ্যারের একটি সিরিজ নিম্নরূপ সেট আপ করা হয়:
int la [20]; // লোকো নম্বর ধরে রাখার জন্য অ্যারে
int sa [20]; // গতির মান ধরে রাখার জন্য অ্যারে
int fda [20]; // অ্যারে dir রাখা
int fla [20]; // লাইট রাখার জন্য অ্যারে
int f1a [20]; // অ্যারে ফান 1 রাখার জন্য…..
int f8a [20]; // মজা 8 রাখার জন্য অ্যারে
আমরা যেতে যেতে ডিসিসি নির্দেশাবলী সংশোধন করতে সক্ষম করতে:
গতি নির্দেশাবলীর জন্য: অকার্যকর সংশোধন_স্পিড (কাঠামো বার্তা এবং x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // 28 গতির ধাপ সহ locoMsg}
ফাংশন নির্দেশাবলীর জন্য:
অকার্যকর সংশোধন_গ্রুপ 1 (কাঠামো বার্তা এবং x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg গ্রুপ এক নির্দেশনা 0x80}
স্কেচের প্রধান লুপ:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // ওয়্যারলেস দ্বারা ডেটা পাঠান
বিলম্ব (10);
send_data_3 (); // এলসিডি ডিসপ্লেতে ডেটা প্রদর্শন করুন
send_data_4 (); // সিরিয়াল মনিটরে ডেটা প্রদর্শন করুন}
যদি (read_function ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
বিলম্ব (10);
send_data_3 (); }}
গতি পরিবর্তন হলে ডেটা আপডেট করুন:
বুলিয়ান read_locoSpeed () এটি একটি নতুন লোকো ঠিকানা, গতি বা দিকনির্দেশনা সনাক্ত করে এবং সেই অনুযায়ী HEX 'ডেটা' সংশোধন করে। এখানে আমি 28 গতির ধাপ নির্দিষ্ট করেছি এবং NMRA স্ট্যান্ডার্ড S 9.2 পূরণের জন্য, স্পিড ডেটা একটি লুক আপ টেবিল থেকে খুঁজে পেতে হবে 'speed_step ()' এ
অকার্যকর speed_step () {সুইচ (locoSpeed) {
কেস 1: ডেটা | = 0x02; বিরতি;
কেস 2: ডেটা | = 0x12; বিরতি;
কেস 3: ডেটা | = 0x03; বিরতি;
………
কেস 28: ডেটা | = 0x1F; বিরতি; }}
ফাংশন পরিবর্তনের সময় ডেটা আপডেট করুন:
বুলিয়ান read_function ()
যদি (fla [locoAdr] == 0) {data = 0x80;
} // হেড লাইট বন্ধ
যদি (fla [locoAdr] == 1) {
ডেটা = 0x90;
} // হেড লাইট জ্বলছে
প্রতিটি ফাংশনের জন্য:
যদি (f2a [locoAdr] == 0) {data | = 0; }। // ফাংশন 2 বন্ধ
যদি (f2a [locoAdr] == 1) {
তথ্য | = 0x02; // ফাংশন 2 অন 'ডেটা' প্রতিটি ফাংশনের জন্য ['| =' যৌগিক বিটওয়াইজ বা] হেক্স কোডগুলিকে একত্রিত করে তৈরি করা হয়েছে।
ধাপ 3: রিসিভার
সার্কিট ডায়াগ্রাম দেখানো হয়েছে যেখানে আরডুইনো প্রো মিনিয়ের পিন 5 এবং 6 এইচ-ব্রিজে সরবরাহকৃত ডিসিসি সিগন্যাল সরবরাহ করতে ব্যবহৃত হয়। H- ব্রিজ জোড়া বর্তমান ক্ষমতা বৃদ্ধি সমান্তরালভাবে সংযুক্ত করা হয়। লোকো দ্বারা আঁকা বর্তমানের উপর নির্ভর করে, 16 পিন ডিআইপি ডিভাইসের সাথে একটি হিটসিংক সংযুক্ত করার প্রয়োজন হতে পারে, অথবা একটি ভারী দায়িত্ব এইচ-ব্রিজ বাহ্যিকভাবে সংযুক্ত হতে পারে।
আরডুইনো স্কেচটি ডাউনলোডের জন্য সংযুক্ত করা হয়েছে।
void SetupTimer2 () এই কাজটি করে।
ঘড়ির মধ্যে রয়েছে DCC ডেটাতে '1' এর জন্য 'ছোট ডাল' (58us) এবং DCC ডেটাতে '0' এর জন্য 'লম্বা ডাল' (116us)।
লুপ অকার্যকর, রেডিও থেকে তথ্য পায় এবং যদি একটি বৈধ স্ট্রিং পাওয়া যায়, ডেটাটি ডিসিসি ডেটাতে রূপান্তরিত হয়।
void loop (void) {if (radio.available ()) {bool done = false; সম্পন্ন = radio.read (inmsg, 1); // প্রাপ্ত ডেটা পড়ুন
char rc = inmsg [0]; // এই অ্যারেতে পড়া অক্ষর রাখুন
যদি (rc! = 0) {। // যদি অক্ষর শূন্যের সমান না হয়
inString.concat (rc); // বার্তা তৈরি করুন}
if (rc == '\ 0') {// যদি অক্ষর হয় '/0' বার্তার শেষ
Serial.println (inString); // একত্রিত বার্তা মুদ্রণ করুন
স্ট্রিং (); // ডিসিসি নির্দেশনা পেতে স্ট্রিং বার্তাটি ডি-কনস্ট্রাক্ট করুন
} } }
ধাপ 4: লোকোস চালান
একই ট্র্যাকে একাধিক ট্রেন চালানো থেকে ডেটার বাধা এড়াতে, আপনাকে অবশ্যই প্রতিটি লোকো এবং ট্রাক নিযুক্ত চাকার সাথে ট্র্যাকের মধ্যে যোগাযোগ বিচ্ছিন্ন করতে হবে।
ট্র্যাকের অবস্থা নির্বিশেষে বিনামূল্যে চলমান ট্রেনগুলি উপভোগ করুন - কী পার্থক্য! কোনও ঝামেলা নেই, কোনও স্টার্ট-স্টপ নেই এবং কোনও পরিষ্কারের প্রয়োজন নেই।
আমার ব্যবহৃত ব্যাটারিগুলি আবার চার্জযোগ্য LLoytron AA x 12। (নির্দেশযোগ্য দেখুন)
প্রস্তাবিত:
Steampunk ট্রেন: 5 ধাপ (ছবি সহ)
স্টিমপঙ্ক ট্রেন: আমার বন্ধুর কাছ থেকে ব্যবহৃত হুইলচেয়ার বেস পাওয়ার সৌভাগ্য হয়েছিল। ব্যাটারি দুটি চালু করার জন্য আমার প্রতিস্থাপনের প্রয়োজন ছিল কিন্তু এই ধরনের একটি বহুমুখী প্রপ বিল্ডিং প্ল্যাটফর্মের জন্য এটি একটি ছোট মূল্য ছিল। আমি সিদ্ধান্ত নিয়েছি যে
হ্যালো ট্রেন! ATtiny 1614: 8 ধাপ (ছবি সহ)
হ্যালো ট্রেন! ATtiny 1614: আমার ফ্যাব একাডেমি ক্লাসের জন্য আমাকে একটি মাইক্রোকন্ট্রোলার, একটি বোতাম এবং একটি LED দিয়ে একটি বোর্ড তৈরি করতে হবে। আমি এটি তৈরি করতে agগল ব্যবহার করব
সরল স্বয়ংক্রিয় পয়েন্ট টু পয়েন্ট মডেল রেলরোড দুটি ট্রেন চলছে: 13 টি ধাপ (ছবি সহ)
সিম্পল অটোমেটেড পয়েন্ট টু পয়েন্ট মডেল রেলরোড দুটি ট্রেন চালাচ্ছে: Arduino মাইক্রোকন্ট্রোলারগুলি তাদের কম খরচে প্রাপ্যতা, ওপেন সোর্স হার্ডওয়্যার এবং সফটওয়্যার এবং আপনাকে সাহায্য করার জন্য একটি বৃহৎ সম্প্রদায়ের কারণে মডেল রেলরোড লেআউট স্বয়ংক্রিয় করার একটি দুর্দান্ত উপায়। মডেল রেলপথের জন্য, আরডুইনো মাইক্রোকন্ট্রোলারগুলি একটি জিআর হিসাবে প্রমাণিত হতে পারে
কীবোর্ড নিয়ন্ত্রিত মডেল ট্রেন V2.0 - PS/2 ইন্টারফেস: 13 টি ধাপ (ছবি সহ)
কীবোর্ড নিয়ন্ত্রিত মডেল ট্রেন V2.0 | PS/2 ইন্টারফেস: আমার আগের নির্দেশাবলীর একটিতে, আমি আপনাকে দেখিয়েছি কিভাবে একটি কীবোর্ড ব্যবহার করে একটি মডেল রেলওয়ে লেআউট নিয়ন্ত্রণ করতে হয়। এটি দুর্দান্ত কাজ করেছিল কিন্তু কম্পিউটার চালানোর জন্য এটির একটি ত্রুটি ছিল। এই নির্দেশনায়, আসুন দেখি কী -বোর্ড ব্যবহার করে একটি মডেল ট্রেন কীভাবে নিয়ন্ত্রণ করা যায়
ট্রেন ক্রসিং মনিটর সিস্টেম: 5 টি ধাপ (ছবি সহ)
ট্রেন ক্রসিং মনিটর সিস্টেম: এই নির্দেশনাটি আপনাকে শেখাবে কিভাবে একটি রেলপথ ব্যবস্থার অংশ নিয়ন্ত্রণ করতে একটি Arduino কোড করার জন্য ম্যাটল্যাব ব্যবহার করতে হয়